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

Nach suche, Userform starten

Nach suche, Userform starten
14.05.2017 22:17:04
st0ne
Guten Abend, ich bin neu hier und habe kaum Kenntnisse in/mit VBA.
Ich möchte nach einer suche die mit Null gefundenen Attributen endet, eine Userform öffnen lassen.
Nach langer Suche in den weiten des Internets habe ich dazu nicht wirklich etwas gefunden.
Das Modul die ich zum suchen nutze lautet wie folgt
Sub suchen_alle_Tabellen_UsedRange()
Dim Suche As String
Dim z As Long
Dim Zelle As Range
Dim Blatt As Worksheet
Suche = InputBox("Lass.uns.suchen.nach....", , "SmileyNr.")
z = 0
If Suche = "" Then Exit Sub
For Each Blatt In ActiveWorkbook.Worksheets
For Each Zelle In Blatt.UsedRange
If Zelle = Suche Then
z = z + 1
Zelle.EntireRow.Interior.ColorIndex = 36
End If
Next Zelle
Next Blatt
MsgBox Suche & " wurde " & z & " mal gefunden."
End Sub

Wenn die MSGBox sich mit Null öffnet würde ich gerne eine Userform öffnen lassen.
Ist dies machbar ?
Kind Regards/ Mit freundlichem Gruß
st0ne

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach suche, Userform starten
14.05.2017 22:24:44
Florian
Ja das geht.
In deinem Code bleibt z = 0, wenn nichts gefunden wurde.
Du baust also eine Abfrage ein:
Sub suchen_alle_Tabellen_UsedRange()
Dim Suche As String
Dim z As Long
Dim Zelle As Range
Dim Blatt As Worksheet
Suche = InputBox("Lass.uns.suchen.nach....", , "SmileyNr.")
z = 0
If Suche = "" Then Exit Sub
For Each Blatt In ActiveWorkbook.Worksheets
For Each Zelle In Blatt.UsedRange
If Zelle = Suche Then
z = z + 1
Zelle.EntireRow.Interior.ColorIndex = 36
End If
Next Zelle
Next Blatt
'''''''''Hier die Änderung''''''''''
If z  0 Then                                      'Prüfung ob z NICHT 0 ist
UserformName.Show                                'Hier der Aufruf der Userform
Else                                                'Sonst, wenn also z = 0
MsgBox Suche & " wurde " & z & " mal gefunden."  'Zeigen der msgbox
End if
End Sub

Anzeige
AW: Nach suche, Userform starten
14.05.2017 23:01:47
st0ne
Vielen Dank Florian für diese sehr schnelle Antwort.
Aber Irgendwie funktioniert das nicht.
liegt vielleicht daran das Alle [6 Stk.] durchsucht werden aber auf der aktiven nichst findet ?
Dann bzw wie schreibe ich den Code um das nur das aktive Blatt durchsucht wird und nur dieses ?
For Each Blatt In ActiveWorkbook.Worksheets
For Each Zelle In Blatt.UsedRange
If Zelle = Suche Then
z = z + 1
Zelle.EntireRow.Interior.ColorIndex = 36
End If
Next Zelle
Next Blatt

...dies müßte doch bestimmt die Codestelle sein dafür ?
AW: Nach suche, Userform starten
14.05.2017 23:12:10
Florian
Na, je nachdem welchen Fehler du bekommst, könnte es auch daran liegen, dass es keine "UserformName" gibt.
An diese Stelle müsste der korrekte Name der Userform.
Das sollte unabhängig davon sein, ob du nur ein Blatt oder alle durchsuchst.
Wenn du möchtest, dass nur das aktive Blatt durchsucht wird, muss die erste Schleife weg.
For Each Blatt In ActiveWorkbook.Worksheets             ' Für jedes Blatt in diesem Dokument
For Each Zelle In Blatt.UsedRange                          ' Für jede Zelle im aktiven Blatt
If Zelle = Suche Then
z = z + 1
Zelle.EntireRow.Interior.ColorIndex = 36
End If
Next Zelle                                                  ' Ende der inneren Schleife
Next Blatt                                                     ' Ende der äußeren Schleife
Löscht du nun die erste und letzte Zeile dieses Ausschnittes, wird nur das aktive Blatt durchsucht.
Sollten hier erneut Fehler auftreten, poste mal die genaue Fehlerbezeichnung, dass macht es den Helfern sehr viel leichter als zu vermuten :)
Anzeige
AW: Nach suche, Userform starten
16.05.2017 23:53:15
st0ne
Hallo...Arbeitsstressbedingt erst heute eine Antwort.
Bekomme nun eine Fehlermeldeung wenn ich diesen für mich passenden Code ausführe
Sub suchen_alle_Tabellen_UsedRange()
Dim Suche As String
Dim z As Long
Dim Zelle As Range
Dim Blatt As Worksheet
Suche = InputBox("Lass.uns.suchen.nach....", , "SmileyNr.")
z = 0
If Suche = "" Then Exit Sub
'For Each Blatt In ActiveWorkbook.Worksheets'
For Each Zelle In Blatt.UsedRange
If Zelle = Suche Then
z = z + 1
Zelle.EntireRow.Interior.ColorIndex = 36
End If
Next Zelle
'Next Blatt1'
'''''''''Hier die Änderung''''''''''
If z  0 Then                                      'Prüfung ob z NICHT 0 ist
UserForm3.Show                                'Hier der Aufruf der Userform
Else                                                'Sonst, wenn also z = 0
MsgBox Suche & " wurde " & z & " mal gefunden."  'Zeigen der msgbox
End If
End Sub
Laufzeitfehler '91'
Objektvariable oder With-Blockvariable nicht festgelegt
und wenn ich auf Debuggen klicke makiert mir VBA die Zeile:
For Each Zelle In Blatt.UsedRange
Anzeige
AW: Nach suche, Userform starten
19.05.2017 00:40:30
st0ne
keiner eine idee ?
AW: Nach suche, Userform starten
19.05.2017 13:40:05
ChrisL
Hi
For Each Zelle In Worksheets("Blatt").UsedRange
cu
Chris
AW: Nach suche, Userform starten
20.05.2017 17:36:33
st0ne
Hallo leider funktioniert das auch nicht
die Zeile wird gelb makiert
For Each Zelle In Worksheets("Blatt").UsedRange
Sub suchen_alle_Tabellen_UsedRange()
Dim Suche As String
Dim z As Long
Dim Zelle As Range
Dim Blatt As Worksheet
Suche = InputBox("Lass.uns.suchen.nach....", , "SmileyNr.")
z = 0
If Suche = "" Then Exit Sub
'For Each Blatt In ActiveWorkbook.Worksheets'
'For Each Zelle In Blatt.UsedRange'
For Each Zelle In Worksheets("Blatt").UsedRange
If Zelle = Suche Then
z = z + 1
Zelle.EntireRow.Interior.ColorIndex = 36
End If
Next Zelle
'Next Blatt1'
'''''''''Hier die Änderung''''''''''
If z  0 Then                                      'Prüfung ob z NICHT 0 ist
UserForm3.Show                                'Hier der Aufruf der Userform
Else                                                'Sonst, wenn also z = 0
MsgBox Suche & " wurde " & z & " mal gefunden."  'Zeigen der msgbox
End If
End Sub

Anzeige
Geht doch
20.05.2017 19:40:10
Werner
Hallo,
Sub suchen_alle_Tabellen_UsedRange()
Dim Suche As String
Dim z As Long
Dim Zelle As Range
Dim Blatt As Worksheet
z = 0
Suche = InputBox("Lass.uns.suchen.nach....", , "SmileyNr.")
If Suche = "" Then Exit Sub
For Each Blatt In ActiveWorkbook.Worksheets
For Each Zelle In Blatt.UsedRange
If Zelle = Suche Then
z = z + 1
Zelle.EntireRow.Interior.ColorIndex = 36
End If
Next Zelle
Next Blatt
If z > 0 Then
MsgBox Suche & " wurde " & z & " mal gefunden."
UserForm3.Show
Else
'die Verwendung der Variablen z macht hier keinen
'Sinn. Hier kommst du nur dann hin, wenn der Suchbegriff
'nicht gefunden wurde. Also ist z immer 0
'## MsgBox Suche & " wurde " & z & " mal gefunden." ##
MsgBox Suche & " konnte nicht gefunden werden."
End If
End Sub
Gruß Werner
Anzeige
AW: Geht doch
21.05.2017 16:28:14
st0ne
Also, bei dem Code wird weiterhin auf allen Tabellen Seiten gesucht....sollte aber nur die Aktuelle sein.
Und bei diesem Code wird ausserdem ob Resultat gefunden wird oder nicht die entsprechende Userform geöffnet...sollte aber nur geöffnet werden wenn Resultat NICHT gefunden wird.
Ist es den nicht machbar nur die aktuelle Tabelle zu durchsuchen und die Userform nur dann öffnen zu lassen wenn KEIN Ergebnis gefunden wird ?
Sub suchen_alle_Tabellen_UsedRange()
Dim Suche As String
Dim z As Long
Dim Zelle As Range
Dim Blatt As Worksheet
z = 0
Suche = InputBox("Lass.uns.suchen.nach....", , "SmileyNr.")
If Suche = "" Then Exit Sub
For Each Blatt In ActiveWorkbook.Worksheets
For Each Zelle In Blatt.UsedRange
If Zelle = Suche Then
z = z + 1
Zelle.EntireRow.Interior.ColorIndex = 36
End If
Next Zelle
Next Blatt
If z > 0 Then
MsgBox Suche & " wurde " & z & " mal gefunden."
UserForm3.Show
Else
'die Verwendung der Variablen z macht hier keinen
'Sinn. Hier kommst du nur dann hin, wenn der Suchbegriff
'nicht gefunden wurde. Also ist z immer 0
'## MsgBox Suche & " wurde " & z & " mal gefunden." ##
MsgBox Suche & " konnte nicht gefunden werden."
End If
End Sub

Anzeige
AW: Geht doch
26.05.2017 22:42:50
st0ne
noch jemand eine Idee ?
AW: Geht doch
25.05.2017 21:25:31
st0ne
geht doch nicht

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige