Blattsuche mittels Makro

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Blattsuche mittels Makro
von: Lara
Geschrieben am: 26.06.2002 - 07:11:44

Hallo,
ich hoffe von euch kann mir jemand weiterhelfen.
Hätte gerne ein Makro geschrieben, mit dem ich in einer Arbeitsmappe alle Blätter suche, die vom Namenanfang her gleich anfangen, und dann eine bestimmte Zeile in eine andere Datei zu kopieren.
Läßt sich dass verwirklichen?
Schon mal im Voraus Danke für eure Hilfe.

Lara


nach oben   nach unten

Re: Blattsuche mittels Makro
von: Harald Kapp
Geschrieben am: 26.06.2002 - 07:25:02

Hallo Lara,
folgender Beispielcode:

Sub test()
Dim Mysheet As Worksheet

For Each Mysheet In ActiveWorkbook.Sheets
   MsgBox Mysheet.Name
Next
End Sub


Hier kannst Du statt der MsgBox Deinen Code einbauen, um den Blattnamen mit dem gesuchten String zu vergleichen und bei Übereinstimmung den Wert der gesuchten Zellen auszugeben.

Gruß Harald

nach oben   nach unten

Re: Blattsuche mittels Makro
von: Lara
Geschrieben am: 26.06.2002 - 08:00:02

Hallo Harald,

vielen Dank für deine schnelle Hilfe. Wenn ich den Code jetzt noch verstehen würde, wäre es gut.

Die Datei, in die ich kopieren will ist mysheet?

Dim Mysheet As Worksheet
Setzt dieser Befehl mysheet als aktive Arbeitsmappe fest, oder was?

For Each Mysheet In ActiveWorkbook.Sheets
Damit kann ich nicht wirklich viel anfangen. Es ist eine Suchfunktion hätte ich jetzt spontan gesagt, aber wie sucht sie. Sagen wir einige Blätter fangen mit abc an und danach folgen verschiedene Zahlen. Andere Blätter beginnen mit def und dann Zahlen. Ich will jetzt aus jedem Blatt, dass mit abc anfängt die erste Zeile kopieren.
Wo sehe ich in der Suchfunktion welche Blätter ich suche?

MsgBox Mysheet.Name
Wenn ich den Code nur wüßte.

Naja kenne mich in VBA doch absolut nicht aus. Dachte zwar, dass ich einiges verstehe, aber das läßt mich jetzt weng verzweifeln.

Wäre nett, wenn du mir weiterhelfen kannst.

Gruß, Lara


nach oben   nach unten

Re: Blattsuche mittels Makro
von: Harald Kapp
Geschrieben am: 26.06.2002 - 08:37:15

Hallo Lara,
Dim Mysheet legt nur fest, dass Myshett ein Objekt vom Typ Worksheet ist, macht aber noch nichts damit.
Die For-Next Schleife weist nacheinander jedes Worksheet in der Liste der Sheets der aktiven Arbeitsmappe (ActiveWorkbook) der Variablen Mysheet zu. Damit kannst Du in der Schleife mit dem gerade zugewiesenen Arbeitsblatt arbeiten.
Aslo müsstest Du innerhalb der Schleife einen Stringvergleich einbauen, etwa so:

Option Explicit

Sub test()

Dim Mysheet As Worksheet
Dim Zielsheet As String
Dim zeile As Long

Zielsheet = "Hierhin_kopieren" ' Name des Ziel-Tabellenblattes
zeile = 1

For Each Mysheet In ActiveWorkbook.Sheets
   If Left(Mysheet.Name, 3) = "abc" Then
      Mysheet.Activate
      Rows("1:1").Select
      Selection.Copy
      Sheets(Zielsheet).Activate
      Rows(zeile).Select
      ActiveSheet.Paste
      zeile = zeile + 1
   End If
Next
End Sub

Gruß Harald

nach oben   nach unten

Re: Blattsuche mittels Makro
von: Lara
Geschrieben am: 26.06.2002 - 09:22:30

Hallo,

vielen Dank. Jetzt habe ich es verstanden.
Dim ist also die Deklaration, ich verstehe. Die Schleife habe ich jetzt auch verstanden.
Eine Frage hätte ich da dann aber noch.
Sucht er nur nach den Blättern, die mit abc anfangen, oder sucht er ein Blatt, was so heißt?

Hätte da noch eine Frage.
Kann ich auch ne Schleife davor setzten, die sagt, gehe in den Ordner und öffne eine Datei nach der anderen, und suche nach den Blättern, und kopiere, dann schliesse, dann öffne die nächste.

Ich weiß nicht, ob sich dass verwirklichen läßt, weil ich nicht weiß, ob ich den genauen Dateinamen, der Datei die geöffnet werden soll eingeben muss. Die Dateianzahl ist fest, also nicht variable. Aber die Dateinamen sind nicht unbedingt fest.

Ich würde jetzt sagen, dass ich noch eine Schleife, über die andere Schleife schreiben muss. Aber ich weiß nicht, wie ich es schreiben muss, damit er mir eine Datei nach der anderen öffnet.
Geht das überhaupt?

Wäre super, wenn du mir damit auch weiterhelfen kannst.

Gruß, Lara


nach oben   nach unten

Re: Blattsuche mittels Makro
von: Harald Kapp
Geschrieben am: 26.06.2002 - 10:06:06

Hallo Lara,
da left() mit den angegebenen Parametern nur die ersten drei Zeichen des Namens liefert, werden alle Blätter ausgewählt, die mit "abc" beginnen (abc1, abc2, abc_weist_du _nicht etc.). Wenn Du statt auf "abc" auf einen lämngeren/kürzeren String oder auf einen String in der Mitte des Blattnamens vergleichen willst, musst Du entsprechend mit den Funktionen left(), right() etc. arbeiten.

Gruß Harald


nach oben   nach unten

Re: Blattsuche mittels Makro
von: Lara
Geschrieben am: 26.06.2002 - 10:25:38

Hallo,

ich verstehe, habe jetzt glaube ich alles verstanden.

Hast du ne Idee, wie ich das mit den Öffnen der verschiedenen Datein bewerkstelligen kann?

Gruß, Lara


nach oben   nach unten

Re: Blattsuche mittels Makro
von: Harald Kapp
Geschrieben am: 26.06.2002 - 11:01:21

Hallo Lara,
dazu benötigst Du eine Liste der Dateinamen, die kannst Du nacheinander mittels


Workbooks.Open (Filename)

durchgehen.

Gruß Harald


nach oben   nach unten

Re: Blattsuche mittels Makro
von: Lara
Geschrieben am: 26.06.2002 - 11:23:06

Vielen Dank, werde es mal versuchen

Einen schönen Tag noch

Gruß, Lara


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Blattsuche mittels Makro"