Informationen und Beispiele zum Thema MsgBox | |
---|---|
![]() |
MsgBox-Seite mit Beispielarbeitsmappe aufrufen |
Betrifft: Zeilen auslesen aufgrund eines Suchbegriffs
von: F. Jordan
Geschrieben am: 28.01.2010 14:29:10
Hallo zusammen
Ich muss aus einer Gesamtliste zuerst die Buchungskreise auslesen, dann aufgrund dieser Auswertung Tabellenblätter pro Kreis erstellen und den Namen in die jeweilige Tabelle reinschreiben. Bisher sind all diese Anforderungen mit Eurer Hilfe zustande gekommen.
Nun müsste in jedem Tabellenblatt die dazugehörigen Daten (ein bestimmter Bereich einer Zeile) aus der Gesamtliste gezogen werden. Das Suchkriterium ist der Tabellenname, welcher ja bereits in der Tabelle steht.
Ich habe hier http://forum.fachinformatiker.de/basic/117533-bestimmte-zeilen-auslesen-excel-tabelle-2.html
einen Ansatz zu diesem Problem gefunden. Ich möchte jedoch keine neue Tabelle erstellen, sondern die Bestehenden füllen.
Wer kann mir hierbei weiterhelfen? Da ich wirklich weit weg von meinen bisherigen Kenntnisse rumlaufe, bitte ich auch um Hinweise, was ich mitteilen muss damit eine Lösung erstellt werden kann. Vielen Dank!
Gruss
Frédéric
Betrifft: AW: Zeilen auslesen aufgrund eines Suchbegriffs
von: fcs
Geschrieben am: 29.01.2010 16:14:51
Hallo Frédéric,
hier das Grundgerüst für solch eine Such- und Datenübertragungs-Routine.
Gruß
Franz
Sub DatenErgaenzen() Dim wbAktiv As Workbook, wksGesamt As Worksheet, wksZiel As Worksheet Dim vSuchen, Zelle As Range, Zeile As Long Set wbAktiv = ActiveWorkbook Set wksGesamt = wbAktiv.Worksheets("Gesamtliste") 'Name anpassen For Each wksZiel In wbAktiv.Worksheets Select Case wksZiel.Name Case "Gesamtliste", "TabelleXYZ" 'In diese Tabellenblätter soll nichts eingetragen werden _ Namen ergänzen/anpassen Case Else vSuchen = wksZiel.Name 'in Gesamtliste zu suchender Name/Buchungskreis With wksGesamt 'Buchungskreis in Spalte C der Gesamtliste suchen (Spalte anpassen!!) Set Zelle = .Range("C:C").Find(what:=vSuchen, LookIn:=xlValues, lookat:=xlWhole) If Zelle Is Nothing Then MsgBox "Buchungskreis """ & vSuchen & """ in Gesamtliste nicht gefunden" Else Zeile = Zelle.Row 'In Bereich A3:D3 des Buchungsblatts die Daten aus Spalte D(4) bis G(7) _ der Zeile eintragen. 'Bereiche anpassen! wksZiel.Range("A3:D3").Value = .Range(.Cells(Zeile, 4), .Cells(Zeile, 7)).Value 'ggf. weiter Daten übertragen End If End With End Select Next End Sub
Betrifft: AW: Zeilen auslesen aufgrund eines Suchbegriffs
von: F. Jordan
Geschrieben am: 03.02.2010 12:21:39
Hallo Franz
Vielen Dank für Deine Hilfe. Habe die ersten Anpassungen gemacht, aber es funktioniert nicht richtig.
Angepasster Code:
Sub Daten_auslesen() Dim wbAktiv As Workbook, wksGesamt As Worksheet, wksZiel As Worksheet Dim vSuchen, Zelle As Range, Zeile As Long Set wbAktiv = ActiveWorkbook Set wksGesamt = wbAktiv.Worksheets("Bearbeitete Liste") 'Name anpassen For Each wksZiel In wbAktiv.Worksheets Select Case wksZiel.Name Case "Change Log", "Makros starten", "BuKr filtern", "BuKr Reiter", "Bearbeitete Liste" ' _ In diese Tabellenblätter soll nichts eingetragen werden _ Namen ergänzen/anpassen Case Else vSuchen = wksZiel.Name 'in Gesamtliste zu suchender Name/Buchungskreis With wksGesamt Set Zelle = .Range("A:A").Find(what:=vSuchen, LookIn:=xlValues, lookat:=xlWhole) ' _ Buchungskreis in Spalte A der Gesamtliste suchen If Zelle Is Nothing Then MsgBox "Buchungskreis """ & vSuchen & """ in Bearbeitete Liste nicht gefunden" Else Zeile = Zelle.Row wksZiel.Range("C2:L2").Value = .Range(.Cells(Zeile, 3), .Cells(Zeile, 12)).Value ' _ In Bereich A3:D3 des Buchungsblatts die Daten aus Spalte D(4) bis G(7) _ der Zeile eintragen. 'Bereiche anpassen! 'ggf. weiter Daten übertragen End If End With End Select Next End SubDie Daten liegen alle in der Tabelle "Bearbeitete Liste". Der Suchbegriff befindet sich ein den automatisch erstellen Blätter (befinden sich alle hinter der Liste) im Feld A1.
Betrifft: AW: Zeilen auslesen aufgrund eines Suchbegriffs
von: fcs
Geschrieben am: 04.02.2010 05:41:41
Hallo Frédéric,
ändere die folgede Zeile
vSuchen = wksZiel.Name 'in Gesamtliste zu suchender Name/Buchungskreis in vSuchen = wksZiel.Range("A1") 'in Gesamtliste zu suchender Name/Buchungskreis
Betrifft: AW: Zeilen auslesen aufgrund eines Suchbegriffs
von: F. Jordan
Geschrieben am: 05.02.2010 16:21:03
Hallo Franz
Es klappt noch nicht. Es findet den Suchbegriff nicht oder sucht am falschen Ort.
Vielleicht war die Aufgabenstellung von meiner Seite her nicht gut genug erklärt.
Grundidee:
Ich erstelle für eine variable Anzahl von Buchungskreisen Tabellenblätter. Lese den jeweiligen Name aus und fülle diesen in die Zelle A1 jedes Blattes. Anhand dieses Suchkriteriums sollen die Daten aus dem Blatt "Bearbeitete Liste" ausgelesen werden.
Gruss
Frédéric