Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Code nach einfügen von Spalten

VBA Code nach einfügen von Spalten
Spalten
Hallo zusammen,
immer wieder muss ich recht umfangreichen Code überarbeiten, nachdem ich Spalten einfügen musste.
Gibt es eine Möglichkeit dies zu automatisieren. Also, den Code per code zu überarbeiten?
Kann man mit Bereichsnamen etwas anfangen?
Beispiel Codeschnipsel:
Windows(quelldatei).ActiveSheet.Range("C" & Monat).Copy
Wenn ich nun vor Salte C eine neue Spalte einfüge muss ich nun den Code abändern in
Windows(quelldatei).ActiveSheet.Range("D" & Monat).Copy
Na ja das ist logisch - aber auch irre lästig, bei Tabellen mit über 40 Spalten.
Wer hat eine Idee, oder gar Lösung?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Code nach einfügen von Spalten
30.06.2009 15:43:34
Spalten
Hallo Michael,
speichere die Spalte in einer Variablen oder mehreren und greif auf diese zu:
dim mySpalte as string
mySpalte = "Z"
Windows(quelldatei).ActiveSheet.Range(mySpalte & Monat).Copy
AW: VBA Code nach einfügen von Spalten
30.06.2009 16:37:00
Spalten
Danke!
AW: VBA Code nach einfügen von Spalten
30.06.2009 17:05:35
Spalten
Hallo Michael,
benutz doch einfach Namen für die Bereiche. Die wandern mit wenn du was einfügst und du musst dich um nichts im Code kümmern. Der Name muss dabei einen relativen Bezug haben. Also die $-Zeichen löschen!!!
Gruß
Nepumuk
Quatsch
30.06.2009 17:48:50
Nepumuk
Hi,
natürlich darfst du die $-Zeichen nicht löschen, wenn du das machst, wird der Name mehr oder weniger unkontrolliert verschoben.
Gruß
Nepumuk
Anzeige
Spalten suchen
01.07.2009 00:01:31
Daniel
Hi
wenn die Quelldatei Spaltenüberschriften enthält, die sich nicht oder selten ändern, dann kannst du für die Spaltennummern Variablen einrichten, die du zum Makrostart immer aktualisierst.
hier ein Beispiel, sagen mir mal in der Spalte C stehen die "Ausgaben":

sub Dein Makro
dim spAusg as Long 'SpaltenNr der Ausgaben
spAusg = Windows(Quelldatei).Activesheet.Rows(1).Find(What:="Ausgaben", Lookat:=xlwhole).Column
Windows(Quelldatei).Activesheet.Cells(Monat, spAusg).Copy
End sub


Solange du die Spaltenüberschrift "Ausgaben" nicht änderst, kannst du Spalten verschieben und Einfügen wie du willst, ohne dein Makro ändern zu müssen.
Änderst du die Spaltenüberschrift, dann läuft dein Makro auf einen Fehler und du merkst, daß du was anpassen musst, es ist also auch eine kleine Schutzfunktion dagegen, daß du mal eine Änderung in der Datei nicht im Makro anpasst
Es ist zwar am anfang etwas mühlsehlig, die Spaltennummernabfrage zu programmieren, aber dann hast du Ruhe.
Gruß, Daniel

Anzeige

13 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige