Office97:VBA-Excel-Bezüge bereiten Probleme

24/01/2009 - 12:24 von Hans Winkler | Report spam
Per Makro werden in ein Arbeitsblatt in die erste Spalte die
Verzeichnisse (z.B. von C:\) eingetragen. Anschließend werden die
einzelnen Unterverzeichnisse (z.B. C:\Programme\) durchforstet und die
evnt. bestehenden Unterverzeichnisse in die 2. Spalte eingetragen.

abc u_a
def u_b
ghi u_c
u_d

Die Verzeichnisse u_a, u_b, u_c und u_d sind Unterverzeichnisse von abc.
Um den Überblick zu behalten soll mein Makro (ActiveCell´) die beiden
Eintràge def und ghi ausschneiden und zwei Zeilen tiefer wieder
einfügen. Beim ersten Schleifendurchlauf funktionierts, beim 2. dagegen
wird die Aktive Celle nur eine Spalte verschoben, der jetzt ausgewàhlte
Bereich stimmt nicht mit dem gewünschten überein.

anz1 = Die Zahl der gefundenen Verzeichnisse in Spalte A
anz2 = Die Anzahl der Verzeichnisse in Spalte B
anz3 = ActiveCell.Row

ber1 = "A" & anz3 - anz2 & ":A" & anz1
ActiveCell.Offset((anz2 - 1) * -1, -1).Range(ber1).Select

Kann mir vielleicht jemand einen Hinweis geben, was verkehrt làuft?

Hans
 

Lesen sie die antworten

#1 Michael Franke
24/01/2009 - 14:03 | Warnen spam
Hallo Hans,

On 24 Jan., 12:24, Hans Winkler wrote:
Per Makro werden in ein Arbeitsblatt in die erste Spalte die
Verzeichnisse (z.B. von C:\) eingetragen. Anschließend werden die
einzelnen Unterverzeichnisse (z.B. C:\Programme\) durchforstet und die
evnt. bestehenden Unterverzeichnisse in die 2. Spalte eingetragen.

abc     u_a
def     u_b
ghi     u_c
        u_d

Die Verzeichnisse u_a, u_b, u_c und u_d sind Unterverzeichnisse von abc.
Um den Überblick zu behalten soll mein Makro (ActiveCell´) die beiden
Eintràge def und ghi ausschneiden und zwei Zeilen tiefer wieder
einfügen. Beim ersten Schleifendurchlauf funktionierts, beim 2. dagegen
wird die Aktive Celle nur eine Spalte verschoben, der jetzt ausgewàhlte
Bereich stimmt nicht mit dem gewünschten überein.

     anz1 = Die Zahl der gefundenen Verzeichnisse in Spalte A
     anz2 = Die Anzahl der Verzeichnisse in Spalte B
     anz3 = ActiveCell.Row

     ber1 = "A" & anz3 - anz2 & ":A" & anz1
     ActiveCell.Offset((anz2 - 1) * -1, -1).Range(ber1).Select

Kann mir vielleicht jemand einen Hinweis geben, was verkehrt làuft?

Hans



um zu verstehen, was da im einzelnen ablàuft, wàre es hilfreich, die
komplette Prozedur zu sehen. M.E. könntest Du das Problem aber dadurch
vermeiden, dass Du nach dem ersten Verzeichnis sofort die zugehörigen
Unterverzeichnisse ins Tabellenblatt schreibst. Haben Deine
Verzeichnisse "Programme" und "Dateien" z.B. 3 bzw. 2
Unterverzeichnisse, würden in dieser Reihenfolge die Zellen A1, B1 bis
B3, A4, B4 bis B5 gefüllt. Außerdem: um in die Zellen zu schreiben,
muss Du diese nicht selektieren.

Gruß, Michael

Ähnliche fragen