Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1540to1544
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

Suchfunktion nit VBA

Suchfunktion nit VBA
23.02.2017 15:16:35
Marko
Hallo zusammen
ich habe letzte Woche an diese Excelplattform ein VBA Codes bekommen welche einwandfrei funktioniert.(Code siehe unten)
Kurze Beschreibung:
User sucht nach bestimmtem Begriff in ganzem Tabellenblatt z.B. nach :bestand, *best, *besta* etc.'.
Alle Suchtreffer werden mit Farbe Grün markiert.
Bei nicht gefundene such Ergebnisse gibt ein MsgBox Info an User.
Soweit alles perfekt.
Aus dem Betrieb habe ich eine anfrage bekommen:
dass Excel in die Ergebnis Zelle auch automatisch springt.
Bei mehrere such Treffer, einfach in die erste Zelle.
Vielen Dank und Gruss
Marko
Public Sub Find_Methode_Transaktionen()
Dim rZelle        As Range
Dim sFundst       As String
Dim sSuchbegriff  As String
sSuchbegriff = InputBox("Hallo User, bitte den Suchbegriff eingeben!")
If sSuchbegriff = vbNullString Then Exit Sub
With ThisWorkbook.Worksheets("Transaktionen") ' den Tabellenblattnamen ggf. anpassen!
Set rZelle = .Cells.Find(What:=sSuchbegriff, LookAt:=xlPart, LookIn:=xlValues)
If Not rZelle Is Nothing Then
sFundst = rZelle.Address
Do
.Range(rZelle.Address).Interior.Color = vbGreen 'farbe wechseln'
Set rZelle = .Cells.FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address  sFundst
Else
MsgBox "Der gesuchte Begriff  """ & sSuchbegriff & """  wurde nicht gefunden.", _
48, "   Hinweis für " & Application.UserName ' MsgBox'
End If
End With
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchfunktion nit VBA
23.02.2017 15:49:20
Piet
Hallo,
anbei das Makro überbearbeitet zurück. Es gibt zwei Änderungen. Bitte beide in Ruhe ansehen.
Will man sich nur die 1. gefunde Zelle ansehen reicht die 1. MsgBox völlig aus. Ohne MsgBox -zum ansehen- sieht man nicht viel! Die zweite MsgBox, in der Do Loop Schleife zeigt jede gefundene Stelle an. So kann man frei wählen welche Lösung man anbietet! Beide Lösungen zu kennen ist einfaches Excel Basis Wissen! Die Tabelle "Transaktion" muss natürlich aktiviert sein!!
mfg Piet
Public Sub Find_Methode_Transaktionen()
Dim rZelle        As Range
Dim sFundst       As String
Dim sSuchbegriff  As String
sSuchbegriff = InputBox("Hallo User, bitte den Suchbegriff eingeben!")
If sSuchbegriff = vbNullString Then Exit Sub
Worksheets("Transaktionen").Select  'Tabelle muss aktiv sein !!
With ThisWorkbook.Worksheets("Transaktionen") ' den Tabellenblattnamen ggf. anpassen!
Set rZelle = .Cells.Find(What:=sSuchbegriff, LookAt:=xlPart, LookIn:=xlValues)
If Not rZelle Is Nothing Then
sFundst = rZelle.Address
rZelle.Select         '1. Zelle auswaehlen
MsgBox rZelle.Value   'zum ansehen MsgBox
Do
rZelle.Interior.Color = vbGreen  'farbe wechseln'
'.Range(rZelle.Address).Interior.Color = vbGreen 'farbe wechseln'
rZelle.Select         'jede Zelle auswaehlen
MsgBox rZelle.Value   'zum ansehen MsgBox
Set rZelle = .Cells.FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address  sFundst
Else
MsgBox "Der gesuchte Begriff  """ & sSuchbegriff & """  wurde nicht gefunden.", _
48, "   Hinweis für " & Application.UserName ' MsgBox'
End If
End With
End Sub

Anzeige
AW: Suchfunktion nit VBA
23.02.2017 16:03:23
Marko
Hallo Piet
super, vielen dank.
Es funktioniert perfekt.
Kannst du mir bitte noch ein gefallen tun,
Code noch so anzupassen, dass der User bei mehreren such Treffer in jedem Schritt das Button/funktion ABBRRECHEN zur verfügung habe.
So muss er die Prozedur bei mehrere such Treffer ganz durchklicken.
Natürlich falls so etwas möglich ist?
Danke und Gruss
Marko
AW: Suchfunktion nit VBA
23.02.2017 16:33:05
Piet
Hallo Marko
auch kein Thema, einfach den unteren Code nehmen. Hier benutze ich ein GoSub Programm mit Return
mfg Piet
Public Sub Find_Methode_Transaktionen()
Dim ok            As Variant
Dim rZelle        As Range
Dim sFundst       As String
Dim sSuchbegriff  As String
sSuchbegriff = InputBox("Hallo User, bitte den Suchbegriff eingeben!")
If sSuchbegriff = vbNullString Then Exit Sub
Worksheets("Transaktionen").Select  'Tabelle muss aktiv sein !!
With ThisWorkbook.Worksheets("Transaktionen") ' den Tabellenblattnamen ggf. anpassen!
Set rZelle = .Cells.Find(What:=sSuchbegriff, LookAt:=xlPart, LookIn:=xlValues)
If Not rZelle Is Nothing Then
sFundst = rZelle.Address
rZelle.Select   '1. Zelle auswaehlen
GoSub zeigen    'MsgBox zeigen
Do
rZelle.Interior.Color = vbGreen  'farbe wechseln'
'.Range(rZelle.Address).Interior.Color = vbGreen 'farbe wechseln'
rZelle.Select   'jede Zelle auswaehlen
GoSub zeigen    'MsgBox zeigen
Set rZelle = .Cells.FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address  sFundst
Else
MsgBox "Der gesuchte Begriff  """ & sSuchbegriff & """  wurde nicht gefunden.", _
48, "   Hinweis für " & Application.UserName ' MsgBox'
End If
End With
Exit Sub
' MsgBox zeigen mit Abbruch über Cancel
zeigen:  ok = MsgBox(rZelle.Value, vbOKCancel)
If ok = vbOK Then Return
End Sub

Anzeige
AW: Suchfunktion nit VBA
23.02.2017 18:20:05
Marko
Hallo Piet
super Sache.
Sorry, ich komme noch mit der letzte Angelegenheit:
kann ich die Zellen mit such Treffer statt grün markieren, einfach nur hervorheben,
umranden etc, ohne feste Markierung.
Vielen Dank
Marko
AW: Suchfunktion nit VBA
23.02.2017 19:41:30
Piet
Hallo Marko
das geht auch. siehe unteren Code. Dabei muss man sich für xlMedium oder xlThinn entscheiden. Ausprobieren. Der Rahmen kann auch farblich sein. Das Rahmen Löschen beim Makro Start nicht vergessen. Sonst werden immer neue Rahmen hbinzugefügt!
mfg Piet

Worksheets("Transaktionen").Select  'Tabelle muss aktiv sein !!
Cells.Borders.LineStyle = xlNone    'alte Rahmen alle löschen !!
Do
'rZelle.Interior.Color = vbGreen  'farbe wechseln'
'.Range(rZelle.Address).Interior.Color = vbGreen 'farbe wechseln'
With rZelle.Borders
.LineStyle = xlContinuous   'Rahmen als Linie
.ColorIndex = xlAutomatic   'oder Farbe (Zahl)
.Weight = xlMedium          'Mittel
.Weight = xlThin            'dünn
End With

Anzeige
AW: Suchfunktion nit VBA
23.02.2017 20:26:42
Marko
Hallo Piet
irgend wie bringe ich das code nicht zu laufen.
Wo muss ich der Code anpassen, an welche Stelle genau.
Grus
Marko
AW: Suchfunktion nit VBA
24.02.2017 10:17:43
Piet
Hallo Marko
unten noch mal der ganze Code. Diesen Teil habe ich drin gelassen, aber Excel sieht ihn nur als Kommentar!
'rZelle.Interior.Color = vbGreen 'farbe wechseln' - Jeder Text vor dem das ' Zeichen steht sieht Excel als Kommentar an.
So deaktivieren wir Makro Befehle, und können sie durch entfernen von ' wieder aktiv machen!
mfg Piet
Public Sub Find_Methode_Transaktionen()
Dim ok            As Variant
Dim rZelle        As Range
Dim sFundst       As String
Dim sSuchbegriff  As String
sSuchbegriff = InputBox("Hallo User, bitte den Suchbegriff eingeben!")
If sSuchbegriff = vbNullString Then Exit Sub
Worksheets("Transaktionen").Select  'Tabelle muss aktiv sein !!
Cells.Borders.LineStyle = xlNone
With ThisWorkbook.Worksheets("Transaktionen") ' den Tabellenblattnamen ggf. anpassen!
Set rZelle = .Cells.Find(What:=sSuchbegriff, LookAt:=xlPart, LookIn:=xlValues)
If Not rZelle Is Nothing Then
sFundst = rZelle.Address
rZelle.Select   '1. Zelle auswaehlen
GoSub zeigen    'MsgBox zeigen
Do
'rZelle.Interior.Color = vbGreen  'farbe wechseln'
With rZelle.Borders
.LineStyle = xlContinuous   'Rahmen als Linie
.ColorIndex = xlAutomatic   'oder Farbe (Zahl)
.Weight = xlMedium          'Mittel
.Weight = xlThin            'dünn
End With
rZelle.Select   'jede Zelle auswaehlen
GoSub zeigen    'MsgBox zeigen
Set rZelle = .Cells.FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address  sFundst
Else
MsgBox "Der gesuchte Begriff  """ & sSuchbegriff & """  wurde nicht gefunden.", _
48, "   Hinweis für " & Application.UserName ' MsgBox'
End If
End With
Exit Sub
' MsgBox zeigen mit Abbruch über Cancel
zeigen:  ok = MsgBox(rZelle.Value, vbOKCancel)
If ok = vbOK Then Return
End Sub

Anzeige
AW: Suchfunktion nit VBA
24.02.2017 11:25:58
Marko
Hallo Piet
habe versucht, aber jede (alle) Zelle mit treffer wir umgerandet. Eigentlich sollte Excel nur bei Aktive umranden und bei springen in die nächste wieder die vorherige Zellenmarkierung verschwinden lassen.
Oder verstehe ich das ganz nicht?
Gruss
Marko
AW: Suchfunktion nit VBA
25.02.2017 15:52:21
Piet
Hakko Marko,
habe heute erst wieder ins Forum reingeschaut. Sorry, mein Fehler, kein Problem, aendern wir.
Tausche bitte den alten Code für die MsgBox gegen den neuen Code aus. Dann klappt es sicher.
mfg Piet
' MsgBox zeigen mit Abbruch über Cancel
zeigen:  ok = MsgBox(rZelle.Value, vbOKCancel)
rZelle.Borders.LineStyle = xlNone
If ok = vbOK Then Return
End Sub

Anzeige
AW: Suchfunktion nit VBA
26.02.2017 21:06:59
Marko
Hallo Piet
jetzt ist es perfekt.
Vielen dank für die super Unterstützung.
Gruss
Marko

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige