Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1692to1696
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel-Suche mittels VBA

Excel-Suche mittels VBA
02.06.2019 20:46:48
BR-MV
Hallo,
im hiesigen Forum hatte ich erfreuter Maßen einen Code gefunden, der für meine Zwecke gut geeignet schien und der (geringfügig angepasst) auch läuft:
Sub BegriffSuchen_ZeilenKopieren()
'https://www.herber.de/forum/archiv/176to180/177251_Suchen_per_VBA.html
Dim wsQuelle As Worksheet, wsZiel As Worksheet
Dim i&, strSuchBegr$, firstAddress$, c As Range
Set wsQuelle = Worksheets("Daten")
Set wsZiel = Worksheets("Suche")
strSuchBegr = InputBox("Bitte Suchbegriff eingeben:", "Suchen", "Vorgabewert")
If Not strSuchBegr = "" Then
wsZiel.Cells.Clear
i = 22
With Intersect(wsQuelle.UsedRange, wsQuelle.Columns(1))
' If InStr(strSuchBegr, "*") = 0 Then _
' strSuchBegr = "*" & strSuchBegr & "*"
Set c = .Find(strSuchBegr, After:=wsQuelle.Cells(.Rows.Count, 1), LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.EntireRow.Copy _
Destination:=wsZiel.Cells(i - 19, 1)
i = i + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address firstAddress
Else
MsgBox "Suchbegriff: " & "" & " nicht gefunden!"
End If
End With
End If
Leider findet die Suche jedoch nur Texteingaben, aber keine Zahlen, Fließkomma- oder Datumseinträge. Ich benötige eine universell einsetzbare Suchroutine, die auch nicht nur die erste Spalte, sondern über die ersten 10 Spalten des Sheets ("Daten") Ergebnisse liefert und die betroffnen Zeilen in den Sheet "Suche" kopiert. Ich konnte dem Code nicht entnehmen, ob es an diesem oder an meinem Datensheet liegt. Haben die dort in den Spalten verwendeten Formate mehrfach überprüft und Ursache nicht finden können. Wäre schön, wenn mir ein/e Fachmann/-frau aus dem Forum Hilfe leisten könnte. Komme einfach nicht weiter.. Vielen Dank schon mal im Voraus!
VG BR-MV

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Suche mittels VBA
02.06.2019 21:30:18
Daniel
Hi
wird schwierig.
wenn du Zahlenwerte oder Datumswerte mit .Find finden willst, musst du den Wert so eingeben, wie er formatiert angezeigt wird, unter der Berücksichtigung der amerikanischen Schreibweise für Zahlen und Datumswerte.
dh wenn z.b in einer zu findenden Zelle steht =1234/1000 und die Zelle ist im Zahlenformat "Standard" formatiert, musst du nach "1.234" suchen.
Ist sie jedoch im Zahlenformat "0.0" (eine NK-Stelle) musst du nach "1.2" suchen.
Bei Datumswerten wird es dann nochmal komplizierter.
eine Möglichkeit wäre, dass du in einer Hilfsspalte mit ZählenWenn überprüfst, ob der gesuchte Wert in der Zelle vorkommt dann die Markierten Zellen kopierst.
das geht auch per VBA und über diesen Weg sogar mit deutschen Zahlen- und Datumswerten:
Sub test()
Dim SuchWert As String
Dim DatenBereich As Range
Dim KopierBereich As Range
SuchWert = InputBox("Suchwert")
Set DatenBereich = Worksheets("Daten").UsedRange
With DatenBereich.Columns(DatenBereich.Columns.Count + 1)
.FormulaLocal = "=Wenn(ZählenWenn(A1:J1;""" & SuchWert & """)=0;"""";1)"
If WorksheetFunction.Sum(.Cells) > 0 Then
Intersect(DatenBereich, .SpecialCells(xlCellTypeFormulas, 1).EntireRow).Copy _
Destination:=Sheets("Suche").Cells(3, 1)
.ClearContents
End If
End With
End Sub
Gruß Daniel
Anzeige
AW: Excel-Suche mittels VBA
03.06.2019 22:08:32
BR-MV
Hi Daniel,
besten Dank. Dein Lösungsvorschlag funktioniert perfekt. Alle Achtung, gekonnt gelöst!
Viele Grüße
BR-MV

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige