Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA_Listbox_Ausgabe/Zeilensprung

Forumthread: VBA_Listbox_Ausgabe/Zeilensprung

VBA_Listbox_Ausgabe/Zeilensprung
23.04.2018 09:23:06
ChrisJeh
Userbild
Hallo liebe VBA-Gemeinde,
ich habe ein Makro geschrieben, welches aus einer Liste von unzähligen Daten, nach Eingabe von mind. 3 Zahlen mehrere Treffer in einer Listbox auflistet.
Als nächstes wollte ich - wenn man einen Treffer in der Zeile mit doppelklickt anklickt, dass Excel zu dieser Zelle/Spalte springt.
Leider funktioniert es nicht so wie ich das will - bzw. gibt er mir einen Fehler aus "End With ohne With". Habe leider keine guten VBA Kenntnisse.
Kann mir da jemand helfen?
---------------------------------------------------------------------------------
2)Des Weiteren will ich meine Tabellenköpfe farbig gestalten - habe es bisher nur so hinbekommen, dass nach der Eingabe im Makro alle Farben gelöscht werden um eben die jeweiligen Treffer zu markieren. Kann VBA irgendwie mit 2 Farben arbeiten, dass das ganze Tabellenblatt nicht weiß ist/wird?
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zur Fehlermeldung
23.04.2018 09:35:30
hary
Moin
"wenn man einen Treffer in der Zeile mit doppelklickt anklickt"
In diesem Code steht end with. Loesche dieses.
gruss hary
AW: zur Fehlermeldung
23.04.2018 09:39:05
ChrisJeh
Ok - habe End With gelöscht.
Danach kommt Laufzeitfehler 13 "Typen unverträglich" und er markiert diese Zeile
Cells(ListBox1.List(ListBox1.ListIndex, 4), 1).Select
Was wird mit Typen unterverträglich gemeint?
Anzeige
AW:Bitte Bsp.-Mappe hochladen gruss owt.
23.04.2018 09:42:47
hary
.
AW: versuch mal so
23.04.2018 10:56:10
hary
Moin
Fuer solche Faelle ist es ratsam die Zeilennummer der Treffer in eine Extrapalte der Listbox einzutragen.Diese kann ausgeblendet werden.
With UserForm1.ListBox1
'Spaltenanzahl
.ColumnCount = 6 '-- eine Spalte mehr
'Item hinzufügen
.AddItem
'Unser Treffer (hier die Postleitzahl)
.List(.ListCount - 1, 0) = rngcellPLZ.Value
'Der dazugehörige Städtename eine Spalte rechts neben dem Treffer, deshalb . _
Offset(0, 1)
.List(.ListCount - 1, 1) = rngcellPLZ.Offset(0, 1).Value
'Und zu guter Letzt noch die Zelle des Treffers.
.List(.ListCount - 1, 2) = rngcellPLZ.Offset(0, 2).Value
'4. Spalte'
.List(.ListCount - 1, 3) = rngcellPLZ.Offset(0, 4).Value
'5. Spalte'
.List(.ListCount - 1, 4) = rngcellPLZ.Offset(0, 27).Value
'--neu--6. Spalte eintragen der Zeilennummer
.List(.ListCount - 1, 5) = rngcellPLZ.Row

Dann klappt:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'--auslesen der Zeilennummer in Spalte 6
Cells(ListBox1.List(ListBox1.ListIndex, 5), 1).Select
End Sub

Hab im Moment nicht soviel Zeit. Hilft dir aber bestimmt weiter.
gruss hary
Anzeige
AW: versuch mal so
24.04.2018 06:58:10
ChrisJeh
Vielen Dank für die Daten.
Habe alles eingefügt; nur leider kommt er jetzt mit .FindNext nicht mehr zurecht.
"Methode oder Datenobjekt nicht gefunden".
Ich hab echt keine Ahnung was an der Funktion verkehrt sein soll.
AW: versuch mal so
24.04.2018 10:13:03
hary
Moin
Upload nicht moeglich, da Datei 30Kb zu gross.
Teste jetzt mal mit diesen Codes ob es passt:
Private Sub CommandButton1_Click()
Dim rngcellPLZ As Range, Arbeitsplatz As Range, allgemein As Range, Bereich As Range
Dim PLZ As String
If TextBox1 = "" Then Exit Sub '-- beenden wenn nix in Textbox steht
Tabelle1.UsedRange.Interior.Color = xlNone
Set Arbeitsplatz = Union(Range("B:B"), Range("N:N")) '--Arbeitspaltzsuche nur in Spalten B  _
und N
Set allgemein = Tabelle1.Range("a:z") '--allgemeine Suche
Set Bereich = IIf(IsNumeric(TextBox1), Arbeitsplatz, allgemein) '--bei Zahl eingabe ist  _
der Bereich "Arbeitsplatz" ansonsten Berech "allgemein"
With Bereich
UserForm1.ListBox1.Clear
Set rngcellPLZ = .Find(UserForm1.TextBox1, LookIn:=xlValues, lookat:=xlPart)
If Not rngcellPLZ Is Nothing Then
PLZ = rngcellPLZ.Address
Do
With UserForm1.ListBox1
.ColumnCount = 6
.AddItem
'Unser Treffer (hier die Postleitzahl)
.List(.ListCount - 1, 0) = rngcellPLZ.Value
'Der dazugehörige Städtename eine Spalte rechts neben dem Treffer, deshalb . _
Offset(0, 1)
.List(.ListCount - 1, 1) = rngcellPLZ.Offset(0, 1).Value
'Und zu guter Letzt noch die Zelle des Treffers.
.List(.ListCount - 1, 2) = rngcellPLZ.Offset(0, 2).Value
'4. Spalte'
.List(.ListCount - 1, 3) = rngcellPLZ.Offset(0, 4).Value
'5. Spalte'
.List(.ListCount - 1, 4) = rngcellPLZ.Offset(0, 27).Value
'--neu--6. Spalte eintragen der Zellenadresse
.List(.ListCount - 1, 5) = rngcellPLZ.Address
rngcellPLZ.Interior.Color = vbGreen
rngcellPLZ.Offset(0).Interior.Color = vbGreen
.ColumnWidths = "1,5cm;1,5cm;1,5cm;2,0cm;2,0cm" '--hier noch Breite der 6.  _
Spalte eingeben
End With
Set rngcellPLZ = .FindNext(rngcellPLZ)
Loop While rngcellPLZ.Address  PLZ
End If
End With
Label1.Caption = ListBox1.ListCount & " Treffer"
If ListBox1.ListCount = 1 Then
Application.Goto Tabelle1.Range(ListBox1.List(0, 5))
End If
End Sub
'Bei Klick auf einen Treffer soll diese Zelle in der Tabelle ausgewählt werden
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Range(ListBox1.List(ListBox1.ListIndex, 5)).Select
End Sub
Private Sub TextBox1_AfterUpdate()
'-- nach Eingabe einer Zahl wird das Format "0000" genutzt fuer die Suche
If IsNumeric(TextBox1) Then TextBox1 = Format(TextBox1, "0000")
End Sub

Wenn es nicht Klappt kann ich dir die Mappe gezippt hochladen.
gruss hary
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige