Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zeilen auslesen aufgrund eines Suchbegriffs | Herbers Excel-Forum


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 Sub
Die 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.

Kannst Du mir weiterhelfen?

Gruss
Frédéric


  

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

Gruß
Franz


  

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


Beiträge aus den Excel-Beispielen zum Thema "Zeilen auslesen aufgrund eines Suchbegriffs"