Excel VBA Spalten iterieren

tobias_2

Cadet 4th Year
Registriert
Nov. 2009
Beiträge
84
Hallo,

ich brauche eine Funktion, die mir beim aktivieren einer CheckBox eine neue Spalte im aktiven Arbeitsblatt anlegt, diese grau hinterlegt und das jeweilige Jahr oben angibt. Sie soll also keine Werte überschreiben, sondern falls Werte vorhanden sind um eine Spalte nach rechts wandern.
(Ich denke mit einer Schleife durch iterieren, kenne allerdings die passende Funktion nicht)

z.B. sind in den Zellen A1:A42 bereits Werte vorhanden, also soll die Grau hinterlegte Spalte in die Zellen B1:B42.

Leider habe ich dazu in Google nichts gefunden. Ich möchte das Prinzip allerdings verstehen um folgend weitere ähnliche Funktionen zu implementieren.

Hoffe mir kann geholfen werden :D
 
Versuchs mal damit, eventuell musst du es noch anpassen. XY ist dann deine zu prüfende Zelle, ob da bereits Daten stehen und wenn ja, welche. ABC ist dein Vergleichswert.
Code:
dim i as integer
dim column as integer
dim vergleich as string

column = Range("A1").End(xlToRight).column

for i = 0 to column
vergleich = .cells(XY).value
if vergleich = ABC then
Range(Cells(1, column), Cells(1, column +1)).EntireColumn.Insert
end if
next i
 
Moin,

prinzipiell wirst du ja erst einmal feststellen wollen, welches die letzte beschriebene Spalte ist und die letzte beschriebene Zeile. Da findest du Hinweise bei Excel-ist-sexy oder auch hier, jeweils mit ordentlichen Erklärungen.

Dann die große Frage: Warum willst du eine Spalte einfügen (?), wo diese doch so wie so frei/leer ist? Oder geht es dir nur darum, den entsprechenden Bereich grau einzufärben und (in Zeile 1?) ? und was heißt in diesem Zusammenhang: " und das jeweilige Jahr oben angibt"? Was ist das "jeweilige" Jahr?

Vorschlag: Erstelle erst einmal eine Mustertabelle OHNE die neue Spalte. Dann schaltest du den Makrorecorder an und zeichnest genau das auf, was dann automatisch passieren soll. Und die Mappe stellst du uns dann zur Verfügung. Dann ist die Gefahr geringer, dass wir Helfer für den Papierkorb arbeiten.
 
Zurück
Oben