Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1164to1168
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
Suche in Tabelle und MsgBoxanzeige
Ewald
Hallo
komme trotz Suche mal wieder nicht weiter. Habe ellenlange und viele Tabellen in einer Mappe. Alle haben die gleiche Struktur
Nachname/Vorname/Ort/Knr. =A/B/C/D
Jetzt soll folgendes passieren, ich klicke einen Button, eine Inputbox geht auf in der ich eine Knr. eingebe.
Nun soll Excel auf allen Tabellen in Spalte D nach dieser Nr. suchen und mir die Daten der Zeile in der diese Nummer steht in einer MSGbox wiedergeben. Wenn möglich in dieser Struktur
Nr. D
Nachname A
Vorname B
Ort C
es kann aber auch wenn es nicht geht die Reihenfolge A/B/C/D sein.
Ich hoffe jemand kann mir helfen
Gruß Ewald
AW: Suche in Tabelle und MsgBoxanzeige
20.07.2010 12:50:45
Klaus
Hallo Edwald,
in A stehen Nachnamen, in B Vornamen, in C der Ort und in D die KndNr.
Belege einen Button mit diesem Makro:
Sub MakeMsgBox()
Dim lKnr As Long
Dim lRow As Long
Dim rMy As Range
Dim sMes As String
lKnr = InputBox("Kundennummer")
With ActiveSheet
lRow = .Range("D65536").End(xlUp).Row
For Each rMy In .Range("D2:D" & lRow)
If rMy.Value = lKnr Then
sMes = _
sMes & _
rMy.Value & " " & _
rMy.Offset(0, -3).Value & " " & _
rMy.Offset(0, -2).Value & " " & _
rMy.Offset(0, -1).Value & " " & _
Chr(10)
End If
Next 'myR
MsgBox sMes
End With
End Sub
Grüße,
Klaus M.vdT.
Anzeige
AW: Suche in Tabelle und MsgBoxanzeige
20.07.2010 14:00:01
Ewald
Hallo Klaus M.vdT.
danke dir für deine Mühe
solange ich auf der aktiven Tabelle bin funktioniert das Makro
Es soll aber so sein, das Makro wird auf einer Übersichtstabelle aufgerufen und soll dann die anderen Tabellen durchsuchen. Habe mal das ' vor myR weggenommen und myR als Worksheet definiert, bekomme aber immer Fehlermeldung "Ungültiger Verweis auf Next Steuervariable".
Dann habe ich versucht Zeilenumbruch in der MsgBox einzufügen das geht auch nicht.
Außerdem wäre es schön wenn keine Eingabe in der Inputbox erfolgt (leer) oder auf Abbrechen geklickt wird, eine MsgBox erscheint "Keine Eingabe" oder "Sie haben abgebrochen" , "suche wird beendet"
und dann die Sub beendet wird.
Gruß Ewald
Anzeige
AW: Suche in Tabelle und MsgBoxanzeige
20.07.2010 14:56:28
Klaus
Hi,
1) statt
With ActiveSheet
schreibe
with sheets("MeinName")
2) Zeilenumbrüche einfügen mit & Chr(10) & (da ist aber schon ein Zeilenumbruch)
3)ungetestet: nach
lKnr = InputBox("Kundennummer")
kommt noch
IF lknr = "" then
msgbox ("Abbruch weil leer")
end
end if
Grüße,
Klaus M.vdT.
AW: Suche in Tabelle und MsgBoxanzeige
20.07.2010 16:45:00
Ewald
Hallo Klaus M.vdT.
leider geht Punkt1 und 3 nicht
bekomme bei myR immer noch die Fehlermeldung und ohne ActiveSheet geht garnichts.
Bei der If-Abfrage kommt auch immer der Debugger, vielleicht weil 1Knr nicht gesetzt wird
Gruß Ewald
Anzeige
AW: Suche in Tabelle und MsgBoxanzeige
21.07.2010 08:33:11
Klaus
Hi nochmal,
du hast nicht wirklich sheets("MeinName") geschrieben oder? Da muss natürlich der Name deines Sheet rein - nur weiss ich nicht wie das heisst!
das Hochkomma vor "myR" stand da mit voller Absicht, mach das wieder hin!
1Knr (eins-Knr) ist auch nicht gesetzt, aber lKnr (long-Knr).
AW: Suche in Tabelle und MsgBoxanzeige
21.07.2010 13:29:30
Ewald
Hallo
ich habe das schon richtig verstanden, aber es soll ja nicht nur eine Tabelle sondern alle Tabellen durchsucht werden.
Die If- Abfrage habe ich jetzt hinbekommen.
Gruß Ewald
Schleife über alle sheets bilden
21.07.2010 14:43:08
Klaus
Hallo Edwald,
das sollte prinzipiell möglich sein, halt "einfach" eine Schleife über alle Worksheets bilden.
Ich kanns grad spontan nicht ... darum stell ich die Frage auf offen.
Grüße,
Klaus M.vdT.
Anzeige
AW: Schleife über alle sheets bilden
21.07.2010 21:50:20
Ewald
Hallo Klaus
habe den Code etwas umgebaut und jetzt geht es.
Mein Code sieht jetzt so aus:
Public Sub Tabellendurchsuche()
Dim WS As Worksheet
Dim myR As Range
Dim myS As Boolean
Dim myN As String
myN = Application.InputBox("Nach welcher Nummer soll gesucht werden.", "Nummernsuche", , , , _
, , 1)
mxS = False
For Each WS In ThisWorkbook.Worksheets
If WS.Name  "" And WS.Name  "Check" Then
Set myR = WS.Range("D:D").Find(what:=myN, LookIn:=xlValues, lookat:=xlWhole)
If Not myR Is Nothing Then
myS = True
MsgBox "Suchnummer:        " & myN & Chr(10) & _
"Gefunden in Blatt: " & WS.Name & Chr(10) & _
"in Zeile:                 " & myR.Row & Chr(10) & Chr(10) & _
"Spalte A: " & "Nachnamen    " & myR.Offset(0, -3) & Chr(10) & _
"Spalte B: " & "Vorname   " & myR.Offset(0, -2) & Chr(10), & _
"Spalte C: " & "Ort            " & myR.Offset(0, -1) & Chr(10), 0, _
"Ergebnis für " & Application.UserName & ":"
End If
End If
Next WS
If myS = False Then
MsgBox "Sie haben abgebrochen oder die Nummer ist nicht vorhanden!" & vbCr & vbCr & "Es  _
wird nicht weiter gesucht !", 0, _
"Dezenter Hinweis für " & Application.UserName & ":"
End If
End Sub
Gruß Ewald
Anzeige
AW: Schleife über alle sheets bilden
22.07.2010 15:49:25
Klaus
Hi Edwald,
danke für die Rückmeldung. Sieht gut aus, der Code!

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige