Microsoft Excel

Herbers Excel/VBA-Archiv

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

Suche in Autofiltern in verschiedenen Spalten


Betrifft: Suche in Autofiltern in verschiedenen Spalten von: Jeff
Geschrieben am: 16.09.2019 08:41:18

Guten Tag,
ich habe vor einiger Zeit ein Makro mithilfe des Makrorecorders aufgenommen und ein bisschen umgeschrieben. Das Makro sucht in einer Tabelle mithilfe eines Filters nach Werten und kopiert diese in eine andere Tabelle hinein. Den Wert, mit dem gesucht wird, gibt es nur einmal in allen Tabellen. Er kann allerdings in verschiedenen Zeilen oder auch in anderen Tabellen auf anderen Arbeitsblättern zu finden sein.
Ich möchte, dass das Makro alle möglichen Tabellen und Spalten nach dem Wert durchsucht.
Z.B.: der wert 1234 soll auf Arbeitsblatt "Rollen1" in Autofilter Feld4 gesucht werden, wenn er da nicht zu finden ist, dann in Autofilter Feld 5, wenn er da nicht zu finden ist, dann in Arbeitsblatt "Rollen2" in Autofilter Feld 3 usw. bis er den Wert in einer der Spalten gefunden hat. Dann soll er Werte aus dieser Reihe in eine andere Tabelle kopieren.
Mein momentanes Problem ist, dass ich das Makro nicht so schreiben kann, dass der Autofilter, wenn er darin nichts gefunden hat, zurückgesetzt wird. Mein momentanes Makro sucht den Wert im ersten Filter und wenn er da nicht drinne ist spuckt er einen Fehler aus.
Ich hoffe mein Problem ist verständlich.
Danke im Vorraus =)

Das ist ein Teil meines momentanen Makros:

Range("B13").Select
Selection.Copy
Sheets("Kalibrierrollen halb").Select
ActiveSheet.Range("$A$40:$Y$1474").AutoFilter Field:=4, Criteria1:=Worksheets("Tabelle2").Range("B13")
ActiveSheet.Range("I41:I" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Tabelle2").Select
Range("O13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Kalibrierrollen halb").Select
ActiveSheet.Range("J41:J" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Tabelle2").Select

  

Betrifft: AW: Suche in Autofiltern in verschiedenen Spalten von: 1713253.html
Geschrieben am: 16.09.2019 09:33:48

Hallo Jeff,

warum nicht einfach mit Suchen, also Strg+F per Makro? Wenn es den Wert nur einmal gibt.

Ein Beispiel:

Public Sub Test()
      Dim objCell As Range
      With Worksheets("Kalibrierrollen halb")
          Set objCell = .Cells.Find(What:="1234", _
              LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
          If Not objCell Is Nothing Then
              Call .Cells(objCell.Row, 9).Copy
              Call Worksheets("Tabelle2").Cells(13, 15).PasteSpecial(Paste:=xlPasteValues)
          Else
              With Worksheets("Kalibrierrollen ganz") '2. Tabelle in der gesucht wird
                  Set objCell = .Cells.Find(What:="1234", _
                      LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
                  If Not objCell Is Nothing Then
                      Call .Cells(objCell.Row, 9).Copy
                      Call Worksheets("Tablle2").Cells(13, 15).PasteSpecial(Paste:=xlPasteValues)
                  Else
                      Call MsgBox("Suchbegriff nicht gefunden.", vbExclamation, "Hinweis")
                  End If
              End With
          End If
      End With
  End Sub

Momentan sucht es nur in 2 Tabellen, denn da bist du in deiner Beschreibung zu vage.

Gruß
Nepumuk
  

Betrifft: AW: Suche in Autofiltern in verschiedenen Spalten von: 1713880.html
Geschrieben am: 19.09.2019 13:16:22

Hallo Nepumuk
Danke für dein Beispiel, aber leider kenne ich mich selber zu wenig aus um das für das komplette Makro umzusetzen.
Könntest du mir ein Beispiel schreiben, in dem in einem Autofilter gesucht wird, wenn in diesem nichts gefunden wird, wird er zurückgesetzt und stattdessen in einem anderen Autofilter gesucht. Und wenn auch da nichts gefunden wird dass dann in einem anderen Arbeitsblatt in einem Autofilter gesucht wird.
Kenne mich mit dem if-then Krams leider gar nicht aus.
Sorry für die Umstände >.<
Und Danke nochmal im Voraus
Gruß Jeff

  

Betrifft: AW: Suche in Autofiltern in verschiedenen Spalten von: 1713917.html
Geschrieben am: 19.09.2019 14:44:52

Hallo Jeff,

dann brauche ich eine Mustermappe.

Gruß
Nepumuk

Beiträge aus dem Excel-Forum zum Thema "Suche in Autofiltern in verschiedenen Spalten "