Zum Inhalt springen

Parameter bei einer For-Each-Next-Schleife


Empfohlene Beiträge

Geschrieben

!!! SOS !!!

Hallo zusammen,

ich scheitere so ein bisschen am Setzen der richtigen Parameter bei einer For-Each-Next-Schleife. Ich möchte Folgendes tun:

Ich habe eine Quelldatei mit einer Liste von 20 Namen (xls oder txt empfohlen?).

Ich habe eine Haupt-Excel-Mappe, in der ich 20 Tabellenblätter habe, bezeichnet mit den o. g. Quellnamen.

Es gibt weitere 20 Excel-Dateien mit den gleichen Namen.

Zusammengefasst als Beispiel:

In der Quelldatei Namen.xls (oder namen.txt?) steht "Felix".

In der Haupt-Excel-Mappe gibt es neben all den weiteren ein Blatt namens "Felix".

Zusätzlich gibt es eine Excel-Tabelle namens Felix.xls.

Nun meine Frage:

Wie kann ich die Quelldatei 20mal auslesen

und in der Haupt-Excel-Mappe eine Folge von Befehlen ablaufen lassen,

so dass beispielsweise in jedem der 20 Tabellenblätter

jeweils in Zelle B4 das Wort "test" eingetragen wird

UND ebenfalls während dieser Befehlsabfolge die jeweilige der 20 Excel-Tabellen aufgerufen wird und dort ebenfalls in B4 das Wort "test" eingetragen wird ?

Ich benötige z. B. den konkreten Befehl, um das Sheet "Felix" nicht mit "Sheets("Felix").Select" aufzurufen, sondern mit einer entsprechenden Variable lt. Definition im Kopf der For-Each-Next-Schleife. Eine Alternative mit Variable brauche ich auch hierfür: "Windows("Felix.xls").Activate".

Ich danke euch im voraus! Ihr würdet mir SEEEEEEEEEEhr helfen!

Eure Susi :mod:

Geschrieben

Ich benötige z. B. den konkreten Befehl, um das Sheet "Felix" nicht mit "Sheets("Felix").Select" aufzurufen, sondern mit einer entsprechenden Variable lt. Definition im Kopf der For-Each-Next-Schleife. Eine Alternative mit Variable brauche ich auch hierfür: "Windows("Felix.xls").Activate".

Wenn ich fragen darf, warum brauchst du alternativen zu diesen Befehlen???

Geschrieben

:marine Hi,

ich überweise demjenigen 10 EUR (wenn gewünscht), der mir zuerst die Lösung präsentiert. Du schreibst mir deine Kontonummer mit. Könnte gut sein, dass ich dich in zwei Wochen wieder brauche. Das wäre dann eine reine Zeitfrage für mich. So könntest du mal was mehr an deinem Wissen verdienen.

Es geht konkret um folg. Zeilen (Lösungsansätze unten):

*****************************

ChDir "C:\Test\J\M"

Workbooks.Open FileName:= _

"C:\Test\J\M\Haupt-Mappe.xls", UpdateLinks _

:=0

ActiveWindow.ScrollWorkbookTabs Position:=xlFirst

' Felix

Sheets("Felix").Select

ChDir "C:\Test\J\M"

Workbooks.Open FileName:="C:\Test\J\M\Felix.xls"

Windows("Haupt-Mappe.xls").Activate

ActiveWindow.ScrollColumn = 1

ActiveWindow.ScrollRow = 1

Range("A4:AU60").Select

Selection.Copy

Windows("Felix.xls").Activate

Range("A1").Select

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

False, Transpose:=False

Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _

False, Transpose:=False

Range("Z27").Select

Application.CutCopyMode = False

Selection.Copy

Windows("Ergebnisse.xls").Activate

Range("H4").Select

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

False, Transpose:=False

Windows("Felix.xls").Activate

Columns("AB:AD").Select

Selection.Delete Shift:=xlToLeft

Columns("AC:AD").Select

Selection.Delete Shift:=xlToLeft

With ActiveSheet.PageSetup

.PrintTitleRows = "$1:$2"

.PrintTitleColumns = "$A:$A"

End With

ActiveSheet.PageSetup.PrintArea = "$A$1:$AN$51"

Columns("AA:AN").Select

Selection.ColumnWidth = 8

Range("AD9").Select

ActiveWorkbook.Save

ActiveWindow.Close

***********************************

Lösungsansatz 1 (ähnl. Beispiel):

for each x in Workbooks("haupt").sheets

x.range("B4").formula="test"

workbooks(x.name).sheets("tab1").range("B4").formula="test"

next x

Lösungsansatz 2:

2 Feldvariablen anlegen, die die Namen der Blätter und die der korrespondierenden Mappen

in gleicher Reihenfolge enthalten (evtl auch automatisiert ermittelt). Dann kannst du natürlich über For...Next_index oder

For_Each_subvar_In_feldvariable...Next_subvar die Mappen den Blättern zuordnen.

***************

ursprüngl. Frage:

!!! SOS !!!

Hallo zusammen,

ich scheitere so ein bisschen am Setzen der richtigen Parameter bei einer For-Each-Next-Schleife. Ich möchte Folgendes tun:

Ich habe eine Quelldatei mit einer Liste von 20 Namen (xls oder txt empfohlen?).

Ich habe eine Haupt-Excel-Mappe, in der ich 20 Tabellenblätter habe, bezeichnet mit den o. g. Quellnamen.

Es gibt weitere 20 Excel-Dateien mit den gleichen Namen.

Zusammengefasst als Beispiel:

In der Quelldatei Namen.xls (oder namen.txt?) steht "Felix".

In der Haupt-Excel-Mappe gibt es neben all den weiteren ein Blatt namens "Felix".

Zusätzlich gibt es eine Excel-Tabelle namens Felix.xls.

Nun meine Frage:

Wie kann ich die Quelldatei 20mal auslesen

und in der Haupt-Excel-Mappe eine Folge von Befehlen ablaufen lassen,

so dass beispielsweise in jedem der 20 Tabellenblätter

jeweils in Zelle B4 das Wort "test" eingetragen wird

UND ebenfalls während dieser Befehlsabfolge die jeweilige der 20 Excel-Tabellen aufgerufen wird und dort ebenfalls in B4 das

Wort "test" eingetragen wird ?

Ich benötige z. B. den konkreten Befehl, um das Sheet "Felix" nicht mit "Sheets("Felix").Select" aufzurufen, sondern mit

einer entsprechenden Variable lt. Definition im Kopf der For-Each-Next-Schleife. Eine Alternative mit Variable brauche ich

auch hierfür: "Windows("Felix.xls").Activate".

Ich danke euch im voraus! Ihr würdet mir SEEEEEEEEEEhr helfen!

Übrigens ist der Eintrag 'Range("H36").Select' auch ein veränderlicher. Es sollen nämlich in der Zieltabelle Ergebnisse.xls alle Ergebnisse ab Zelle H4 untereinander eingetragen werden. Es sind also mehr als zwanzig Einträge. 20 war nur ein Beispiel.

Geschrieben

Aaaalso wenn ich es richtig verstehe muss das Proggi das machen:

Du hast eine Datei mit X einträgen. Daraus erstelle ich eine Excel Tabelle mit X Blättern die den Namen der Einträge haben und zusätzlich X einzelne Excel tabellen die den Namen der Einträgen tragen? Thats all???

Dann noch was soll es ein Makro oder ein Eigenständiges Proggi sein??? Wenn du schnell antwortest mach ich das mal heute abend kurz :bimei

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...