Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1096to1100
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

vorh. Bereichsmarkierung erweitern

vorh. Bereichsmarkierung erweitern
reiner
Hallo Leute,
mit der nachfolgenden Zeile
Range(Cells(4, 1), Cells(10, 13)).Select
wird der Bereich A4 bis M13 markiert
Zusätzlich zu vorstehender Markierung soll der Bereich X4 bis X10 gelichzeitig markiert werden.
Ich habe keine Idee wir der o.g Programmcode erweitert werden muss.
Hat jemand einen Vorschlag?
mfg
reiner

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: vorh. Bereichsmarkierung erweitern
30.08.2009 14:18:52
Tino
Hallo,
versuche es mal so
Range("A4:M13,X4:X10").Select
Gruß Tino
AW: vorh. Bereichsmarkierung erweitern
30.08.2009 14:27:52
reiner
hallo,
danke dir für den Vorschlag aber wie sieht die Schreibweise deines Vorschlags im vorgegebenen Programmcode aus, zumal ich die Zeile10 hier im Beispiel variabel eingeben will.
Range(Cells(4, 1), Cells(10, 13)).Select
reiner
siehe Antwort von fcs oT.
30.08.2009 14:30:05
fcs
AW: vorh. Bereichsmarkierung erweitern
30.08.2009 14:19:48
fcs
Hallo reiner,
geht mit folgender Anweisung.

Application.Union(Range(Cells(4, 1), Cells(10, 13)), _
Range(Cells(4, 24), Cells(10, 24))).Select

Allerdings solltest du versuchen, auf Select-Anweisungen in Prozeduren zu verzichten.
Gruß
Franz
Anzeige
AW: vorh. Bereichsmarkierung erweitern
30.08.2009 15:31:55
reiner
danke dir franz,
so geht das; warum sollte ich auf Select-Anweisungen in Prozeduren verzichten?
reiner
AW: vorh. Bereichsmarkierung erweitern
30.08.2009 17:08:43
Gerd
Hallo Reiner,
weil die Markierungen die Laufzeit des Codes teilweise erheblich verlängern.
Gruß Gerd
AW: Select-Anweisungen vermeiden
30.08.2009 17:09:13
fcs
Hallo reiner,
1. sie machen die Makroabarbeitung langsamer
2. Select erfordert immer, dass das betroffene Tabellenblatt aktiviert ist.
3. Code wird schnell unübersichtlich und schwierig zu pflegen.
4. Spätestens beim Arbeiten mit mehreren Tabellenblättern oder sogar Arbeitsmappen werden Select und Selection und Activate allmählich zum Albtraum.
Es ist besser die Methoden oder Eigenschaften für Objekte direkt anzuwenden. ggf. mit With-End With-Anweisungen zu arbeiten oder auch in Verbindung mit Objekt-Variablen.
Außerdem gibt es für viele Methoden auch Parameter, die Code verkürzen.
Select, Selection und auch Activate werden halt vielfach insbesondere von Anfänger verwendet, weil der per Recorder aufgezeichnete Code diese enthält.
Select Anweisungen sind eigentlich nur notwendig, wenn man zu Beginn oder am Ende eines Makros eine bestimmte Ansicht darstelen will.
Gruß
Franz
Hier noch ein paar Beispiele
'Zellbereich gelb einfärben und Schrift rot
'Aufgezeichnet unter Excel 2007
Sub Makro1()
' Makro1 Makro
Range("A5:E24").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
End Sub
'ohne Select und nicht erforderliche/erwünshcte Anweisungen
Sub Makro2()
With Range("A5:E24")
.Interior.Color = 65535
.Font.Color = -16776961
End With
End Sub
'Mit Objektzuweisung
Sub Makro3()
Dim Bereich As Range
Set Bereich = Range("A5:E24")
With Bereich
.Interior.Color = 65535
.Font.Color = -16776961
End With
End Sub
'2 Bereiche von einer Tabelle in eine andere Kopieren
Sub Makro4() 'Mit Select/Selection
' Makro4 Makro
Sheets("Januar").Select
Range("A4:E25").Select
Selection.Copy
Sheets("Februar").Select
Range("A29").Select
ActiveSheet.Paste
Sheets("Januar").Select
Range("J4:M25").Select
Selection.Copy
Sheets("Februar").Select
Range("F29").Select
ActiveSheet.Paste
Sheets("Januar").Select
Application.CutCopyMode = False
End Sub
Sub Makro5() 'Optimiert ohne Select/Selection
Dim wksMonat As Worksheet, wksZiel As Worksheet
Set wksMonat = Worksheets("Januar")
Set wksZiel = Worksheets("Februar")
wksMonat.Range("A4:E25").Copy Destination:=wksZiel.Range("A29")
wksMonat.Range("J4:M25").Copy Destination:=wksZiel.Range("F29")
End Sub

Anzeige
AW: Select-Anweisungen vermeiden
30.08.2009 18:49:43
reiner
danke für die Erläuterungen bezgl. der Select-Anweisungen
mfg
reiner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige