Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1332to1336
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
Bestimmte Zelle suchen und in Userform ausgeben
20.10.2013 03:07:15
Uwe
Schönen guten Tag,
ich habe folgendes Problem:
In einer Tabelle habe ich in der Spalte Q alle deutschen PLZ.
Ich habe bereits ein Userform angelegt, wo ich über ein Eingabefeld eine gewünschte PLZ eingeben kann. Mittels OK-Button sollen mir im selben Userform einige Informationen zu dieser PLZ angezeigt werden.
Bislang habe ich (schamhafterweise über den Recorder) folgenden Code auf dem OK Button hinterlegt:
Private Sub plz_txt_Change()
End Sub

Private Sub suche_cp_cmd_Click()
Cells.Find(What:=plz_txt, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
End Sub

Private Sub UserForm_Click()
End Sub

Nun meine Frage(n):
In den Ergebnisfeldern des Userform braucht die PLZ nicht erneut ausgegeben werden (steht ja bereits im Suchfeld). Es sollen jedoch aus der Zeile der gefundenen PLZ die Zellen der Spalten R, S, T, V und X ausgegeben werden, Die Zelle der Spalte S soll zusätzlich zur Witerverarbeitung in einem anderen Programm in die Zwischenablage.
Mit Bestätigen eines weiteren Buttons soll die aktive Zelle wieder auf "A:11" gesetzt werden und das Userform geschlossen.
PS: Meine "Aufzeichnung" liefert bei einer PLZ, die es nicht gibt einen Laufzeitfehler. Eleganter wäre eine VB critical Box.
Ich danke für jede hilfreiche Antwort schon im vorraus
LG Uwe

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Zelle suchen und in Userform ausgeben
20.10.2013 08:32:53
Beverly
Hi Uwe,
du schreibst leider nicht, wo die Informationen zur gefundenen PLZ ausgegebenw erden sollen - ich bin deshalb mal von Textboxen ausgegangen.
Private Sub suche_cp_cmd_Click()
Dim rngZelle As Range
Set rngZelle = Columns("Q").Find(What:=plz_txt, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
If Not rngZelle Is Nothing Then
' Daten aus den betreffenden spalten der gefundenen Zeile übernehmen
textbox1 = Cells(rngZelle.Row, 18)
textbox2 = Cells(rngZelle.Row, 19)
textbox3 = Cells(rngZelle.Row, 20)
textbox4 = Cells(rngZelle.Row, 22)
textbox5 = Cells(rngZelle.Row, 24)
' Spalte S in Zwischenablage
Cells(rngZelle, 19).Copy
Else
MsgBox "Nicht gefunden"
End If
Set rngZelle = Nothing
End Sub


Anzeige
AW: Bestimmte Zelle suchen und in Userform ausgeben
20.10.2013 17:29:20
Uwe
Hallo Beverly, hallo Tino,
vielen Dank für die Codes.
Beverly, die Ausgabe in Textfeldern war fast richtig angenommen. Ich wollte gerne Labels und habe den Code entsprechend abgeändert. Funktioniert wunderbar, nur die Suche nach mit 0 beginnenden PLZ geht nur, wenn man die 0 nicht mit sucht. Die Spalte Q ist als Sonderformat Postleitzahl formatiert. Schön wäre es mit der 5stelligen zahl, also mit der 0 suchen zu können.
Tino, in Deiner Lösung ist das Problem mit der 0 berücksichtigt. Der Code funktioniert wunderbar. Bei deiner Lösung fehlt mir jedoch die Fehlermeldung, wenn es eine plz nicht gibt und das Kobieren des Ergebnisfeldes aus der Spalte S beim schließen des Userform.
Leider ist es mir nicht gelungen, aus beiden Vorschlägen eine Komplettlösung zusammen zubasteln.
Würde mich hier nochmal über eine Hilfestellung freuen.
LG Uwe

Anzeige
AW: Bestimmte Zelle suchen und in Userform ausgeben
20.10.2013 18:37:45
Beverly
Hi Uwe,
ändere diese Zeile:
   Set rngZelle = Columns("Q").Find(What:=CLng(plz_txt), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
Außerdem it in meinem Code noch ein Fehler - in dieser Zeile muss es so heißen:
      Cells(rngZelle.Row, 19).Copy


AW: Bestimmte Zelle suchen und in Userform ausgeben
20.10.2013 18:55:39
Uwe
Hallo Berverly,
nochmals Danke für die Änderung. Klappt jetzt wunderbar, allein das kopieren klappt noch nicht. Ich habe einen ok-Button der das Useform schließt. Dabei soll der kopierte String in der Zwischenablage bleiben.
LG Uwe

Anzeige
AW: Bestimmte Zelle suchen und in Userform ausgeben
20.10.2013 18:59:06
Uwe
Jetzt war ich zu schnell. Habe den Code geändert, hatte allerdings die Zeile auskommentiert. "'" weg und schon gehts. Sorry für den wirwarr und vielen Dank für Deine Hilfe

AW: Bestimmte Zelle suchen und in Userform ausgeben
20.10.2013 08:59:35
Tino
Hallo,
hier eine Variante.
Private Sub plz_txt_Change()
Dim varRow
'Tabelle anpassen
With Tabelle1
'Datenbereich
With .Range("Q2", .Cells(.Rows.Count, 17).End(xlUp)).Resize(, 8)
'Suche in Spalte Q = hier Spalte 1
varRow = Application.Match(plz_txt.Text, .Columns(1), 0)
'evtl. nicht als Text Formatierter Bereich
If Not IsNumeric(varRow) And IsNumeric(plz_txt) Then
varRow = Application.Match(plz_txt.Text * 1, .Columns(1), 0)
End If
If IsNumeric(varRow) Then
TextBox1.Text = .Cells(varRow, 2) 'Spalte R
TextBox2.Text = .Cells(varRow, 3) 'Spalte S
TextBox3.Text = .Cells(varRow, 4) 'Spalte T
TextBox4.Text = .Cells(varRow, 6) 'Spalte V
TextBox5.Text = .Cells(varRow, 8) 'Spalte V
Else
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
End If
End With
End With
Gruß Tino

Anzeige
AW: Bestimmte Zelle suchen und in Userform ausgeben
20.10.2013 17:27:19
Uwe
Hallo Beverly, hallo Tino,
vielen Dank für die Codes.
Beverly, die Ausgabe in Textfeldern war fast richtig angenommen. Ich wollte gerne Labels und habe den Code entsprechend abgeändert. Funktioniert wunderbar, nur die Suche nach mit 0 beginnenden PLZ geht nur, wenn man die 0 nicht mit sucht. Die Spalte Q ist als Sonderformat Postleitzahl formatiert. Schön wäre es mit der 5stelligen zahl, also mit der 0 suchen zu können.
Tino, in Deiner Lösung ist das Problem mit der 0 berücksichtigt. Der Code funktioniert wunderbar. Bei deiner Lösung fehlt mir jedoch die Fehlermeldung, wenn es eine plz nicht gibt und das Kobieren des Ergebnisfeldes aus der Spalte S beim schließen des Userform.
Leider ist es mir nicht gelungen, aus beiden Vorschlägen eine Komplettlösung zusammen zubasteln.
Würde mich hier nochmal über eine Hilfestellung freuen.
LG Uwe

Anzeige
AW: Bestimmte Zelle suchen und in Userform ausgeben
20.10.2013 20:24:41
Tino
Hallo,
vieleicht gehts so.
Private Sub plz_txt_Change()
Dim varRow
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
'Tabelle anpassen
With Tabelle1
'Datenbereich
With .Range("Q2", .Cells(.Rows.Count, 17).End(xlUp)).Resize(, 8)
'Suche in Spalte Q = hier Spalte 1
varRow = Application.Match(plz_txt.Text, .Columns(1), 0)
'evtl. nicht als Text Formatierter Bereich
If Not IsNumeric(varRow) And IsNumeric(plz_txt) Then
varRow = Application.Match(plz_txt.Text * 1, .Columns(1), 0)
End If
If IsNumeric(varRow) Then
TextBox1.Text = .Cells(varRow, 2) 'Spalte R
TextBox2.Text = .Cells(varRow, 3) 'Spalte S
TextBox3.Text = .Cells(varRow, 4) 'Spalte T
TextBox4.Text = .Cells(varRow, 6) 'Spalte V
TextBox5.Text = .Cells(varRow, 8) 'Spalte X
ElseIf Len(plz_txt) = 5 Then
MsgBox "nix gefunden!", vbCritical
End If
End With
End With
End Sub
'Button *************************
Private Sub CommandButton1_Click()
Dim oZA As New DataObject
oZA.Clear
If TextBox2  "" Then
oZA.SetText TextBox2
oZA.PutInClipboard
End If
Unload Me
End Sub
Gruß Tino

Anzeige
AW: Bestimmte Zelle suchen und in Userform ausgeben
20.10.2013 20:39:32
Beverly
Hi Tino,
deine Zeile
varRow = Application.Match(plz_txt.Text, .Columns(1), 0)

löst einen Fehler aus, wenn die PLZ nicht gefunden wird. Damit solltest du den Fehler umgehen können:
If Not IsError(Application.Match(plz_txt.Text, .Columns(1), 0)) Then
varRow = Application.Match(plz_txt.Text, .Columns(1), 0)
Else
MsgBox "Nicht gefunden"
End If


AW: daher isnumeric und varRow = Variant
20.10.2013 20:45:44
Tino
Hallo,
sollte kein Fehler entstehen.
Gruß Tino

Anzeige
AW: daher isnumeric und varRow = Variant
21.10.2013 08:53:00
Beverly
Hi,
sorry, hatte nicht beachtet, dass varRow nicht deklariert, und somit als Variant auch Fehlerwerte aufnimmt.


AW: Bestimmte Zelle suchen und in Userform ausgeben
20.10.2013 21:57:18
Uwe
Hallo nochmal,
vielen Dank für Eure Lösungen. Beide funktionieren bei mir nun einwandfrei.
LG Uwe

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige