Zelle über Variable ansprechen
- From: "T. Grosch" <tobias.grosch@xxxxxxxxxxxxxxxxx>
- Date: 19 Sep 2005 08:48:51 -0700
Hallo,
folgender Ist-Zustand:
Ich habe eine Tabelle mit ca. 500 Zeilen und 9 Spalten. Nach jedem
Datensatz sollen zwei leere Zeilen eingefügt werden. Dann die nächste
bestehende Zeile und wieder zwei leere usw. Damit nicht genug: Zwei
Spalten sollen immer in 3er-Packs verbunden werden.
Also: Meine Tabelle fängt in Zeile 4 an (vorher steht Überschrift
etc.), also füge ich zwei neue Zeilen als Zeile 5 und 6 ein. Dann
möchte ich die Zellen A4:A6 verbinden, ebenso C4:C6. In der Zeile 7
kommt dann der zweite Datensatz (ehemals Zeile 5 ;-)) dann wieder zwei
leere Zeilen. Und A7:A9 und C7:C9 sind wieder verbunden.
Und das über ca. 500 Zeilen.
Den ersten Schritt - das Einfügen von neuen Zeilen - habe ich schon
hinbekommen:
Dim Zeile_Nr As Integer
Dim End_Zelle As Integer
For Zeile_Nr = 4 To 1467 Step 3
Rows(Zeile_Nr).Select
Selection.EntireRow.Insert
Rows(Zeile_Nr).Select
Selection.EntireRow.Insert
Next Zeile_Nr
Damit habe ich - vielleicht kann man das auch besser lösen - mein Ziel
erreicht. Den Wert 1467 habe ich grob überschlagen (489 Datensätze *
3 Zeilen - die dann jeder Datensatz braucht --> 1467).
Die Zähne beisse ich mir aber am zweiten Schritt, dem Verbinden der
Zellen aus. Und mein Anfangsproblem ist, dass ich keine Zelle mit einer
Variable ansprechen kann, denn meine Idee war / ist folgende:
Range("A"Zeile_Nr).Select
Range(ActiveCell.Offset(3,0).Select
With Selection
.MergeCells = True
.VerticalAlignment = xlCenter
End With
Die Variable "Zeile_Nr" hat ja durch die Schleife immer den Wert der
aktuellen Zeile, also wollte ich diesen Wert nutzen und einfach den
Buchstaben der Spalte davorsetzen, leider hat es nicht geklappt -
vielleicht stimmt die Syntax bei Range("A"Zeile_Nr).Select nicht, aber
es wird da doch bestimmt eine Lösung geben... Das Buch von Bernd Held
(ok, ist schon einige Jahre alt, die Ausgabe) konnte mir da nicht
weiterhelfen.
Einen zweiten Lösungsansatz hatte ich auch schon, der brachte aber
auch kein brauchbares Ergebnis:
Range("A1").Select
EndZelle = Zeile_Nr + 2
Range(ActiveCell.Offset(Zeile_Nr, 0), ActiveCell.Offset(End_Zelle,
0)).Select
With Selection
.MergeCells = True
.VerticalAlignment = xlCenter
End With
Bei diesem Codebeispiel bringt er mir immerhin mal keinen Syntaxfehler
und startet das Makro, nur verbindet er nie die Zellen, die ich
eigentlich verbunden haben möchte.
Kurzum: Wie kann ich Zellen markieren, wenn ich nur die Spalte kenne
und sich die beiden Werte ständig verändern? Vom meinem Verständnis
her, sollte das letzte Beispiel mit ActiveCell.Offset doch eigentlich
gehen, denn über die beiden Variablen sollte ich immer die richtigen
Werte für die Zeilen haben - die Spalten bleiben ja gleich.
Ich freue mich auf Eure Antworten ;-)
Tobias
.
- Follow-Ups:
- Re: Zelle über Variable ansprechen
- From: Eberhard Funke
- Re: Zelle über Variable ansprechen
- From: Frank Arendt-Theilen
- Re: Zelle über Variable ansprechen
- From: Alexander Wolff
- Re: Zelle über Variable ansprechen
- Prev by Date: Re: Schaltfläche in Symbolleiste deaktivieren
- Next by Date: Re: Probleme Formelerstellung zur Berechnung absoluter Häufigkeite
- Previous by thread: Tastendruck ein Zelle abfangen
- Next by thread: Re: Zelle über Variable ansprechen
- Index(es):
Relevant Pages
|
|