Zelle über Variable ansprechen



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

.



Relevant Pages

  • Re: Formatierungsproblem
    ... eben weil die Zellen verbunden mit anderen Spalten sind - da ... dürfte die Formatierung dann 'stolpern'. ... Dann ist ja der komplette Bereich, also auch alle anderen Spalten, ... Excel stolpert dann wenn mitten in einer markierten Spalte Zellen enthalten ...
    (microsoft.public.de.excel)
  • Re: Formatierungsproblem
    ... Dann ist ja der komplette Bereich, also auch alle anderen Spalten, ... Excel stolpert dann wenn mitten in einer markierten Spalte Zellen enthalten ... die mit anderen Spalten verbunden sind - diese anderen Spalten sind ...
    (microsoft.public.de.excel)
  • Probleme beim Sortieren mit verbundenen Zellen
    ... >verbunden habe und nun versuche ich das Ganze zu ... "in der ich die Spalten e und f miteinander ... Zellen aus E und F verbunden. ... Sortieren, Diagramm, Spalten einfügen. ...
    (microsoft.public.de.excel)
  • Re: Zeilen sortieren
    ... Zellen verbunden habe, um mehrere Spalten zusammenzufassen ... Die Liste selbst aber aus ...
    (microsoft.public.de.excel)
  • Kombifeld kopieren und LinkedCell einstellen
    ... nenne es um und ändere die Eigenschaft LinkedCell. ... With Worksheets ... Wie kann ich mit jeder Kopie den LinkedCell-Bezug um 4 Spalten erhöhen, ... Next by Date: ...
    (microsoft.public.de.excel)