Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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
Aus Listbox in entsprechende Zelle springen
25.04.2018 10:27:17
Chris
Brauche Hilfe - Excel springt nur in Zeile 2050 und Spalte C ... Ich möchte aber das er in die ausgegeben Zeile/Spalte zu der entsprechenden Zahl springt
Private Sub CommandButton1_Click()
'Wir definieren im ersten Schritt die die aktuelle Position des
'jeweiligen Treffers enthält.
'Sowie die Variable PLZ. Sie wird die Position des ersten Treffers
'enthalten
Dim rngcellPLZ As Range
Dim PLZ As Variant
'Hintergrundfarben entfernen
Tabelle1.UsedRange.Interior.Color = xlNone
'Es werden die Spalten A - Z der Tabelle 1 durchsucht.
With Tabelle1.Range("a:z")
'Im ersten Schritt leeren wir die Ergebnistabelle
UserForm1.ListBox1.Clear
'Mit der Find Methode bilden wir letztendlich die Standardsuche aus Excel in VBA nach.
'Die Syntax lautet wie folgt:
'Ausdruck .Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase,   _
_
MatchByte, SearchFormat)
'Kurze Erläuterung zu den Komponenten:
'What = Was wollen wir suchen? (erforderlich)
'After = Wird hier nichts angegeben, beginnt die Suche in der liken oberen Ecke des  _
Bereiches.
'        Ansonsten, falls angegeben beginnt die Suche NACH dieser Zelle beginnt. ( _
optional)
'LookIN = Der Informationstyp (optional)
'LookAt = xlWhole oder xlPart, also nach einer "genauen" Suche oder auch nach  _
Teilbegriffen (optional)
'SearchOrder = xlByRows oder xlByColumns (optional)
'SearchDirection = Suchrichtung (optional)
'MatchCase = Groß oder Kleinschreibung beachten? Dann True, ansonsten False (optional)
'Wir werden hier in unserem Beispiel die einzige Erforderliche Komponente, What.
Set rngcellPLZ = .Find(UserForm1.TextBox1)
'Sollte die Methode keinen Treffer finden gibt sie "Nothing" zurück. Mit not....Nothing  _
_
werten wir den Treffer
'aus.
If Not rngcellPLZ Is Nothing Then
'Die Variable PLZ wird mit der Position des Treffers 1. Treffers belegt.
'Wenn der angebene Bereich durchsucht wurde, würde die Suche wieder von vorne  _
beginnen.
'Deshalb müssen wir unserer Do Loop Schleife einen Austritt mitteilen. Dies wird spä _
_
ter PLZ sein.
PLZ = rngcellPLZ.Address
'Mit einer Do Loop Schleife werden die Treffer abgearbeitet.
Do
'Jetzt befüllen wir die Listbox mit den Treffern.
With UserForm1.ListBox1
'Spaltenanzahl
.ColumnCount = 7 '-- 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
.List(.ListCount - 1, 6) = rngcellPLZ.Column
'row = rngcellPLZ.row
'col = rngcellPLZ.Column
'Die Treffer werden mit einem grünen Hintergrund belegt.
rngcellPLZ.Interior.Color = vbGreen
rngcellPLZ.Offset(0).Interior.Color = vbGreen
'Definition der Spaltenbreite
.ColumnWidths = "1,5cm;1,5cm;1,5cm;2,0cm;2,0cm;1,0cm"
End With
'mit .FindNext springen wir zum nächsten Treffer der Suche.
Set rngcellPLZ = .FindNext(rngcellPLZ)
'Die Schleife soll solange arbeiten wie Treffer vorhanden sind.
'Wie aber oben bereits erwähnt würde der Suchlauf wieder von vorne beginnen,  _
deshalb
'soll die Schleife austreten wenn PLZ, also der erste Treffer, wieder erreicht   _
_
wurde
Loop While Not rngcellPLZ Is Nothing And rngcellPLZ.Address  PLZ
End If
End With
'Bevor die Prozedur beendet wird lassen wir uns noch die Treffer auf einem Label anzeigen.
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)
'--auslesen der Zeilennummer in Spalte 6 und 7
Dim a As Variant
Dim b As Variant
Dim row As Integer
Dim col As Integer
a = 1
b = 2
'r.Cells(ListBox1.List(ListBox1.ListIndex, 5), ListBox1.List(ListBox1.ListIndex, 6)).Select
row = Cells(ListBox1.List(ListBox1.ListIndex, 5), 1)
col = 3
Cells(row, col).Select
a = a + b
'Er springt nur in Zeile 2050 aber nicht in die Zelle von ausgegebener Spalte 6 und 7
End Sub
Private Sub UserForm_Click()
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aus Listbox in entsprechende Zelle springen
25.04.2018 10:30:52
Hajo_Zi
das liegt wohl daran das in Spalte 5 2050 steht?

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Aus Listbox in entsprechende Zelle springen
25.04.2018 10:39:06
hary
Moin
So sollte es klappen.
Row = Cells(ListBox1.List(ListBox1.ListIndex, 5), 1).Row
oder
Row = CLng(ListBox1.List(ListBox1.ListIndex, 5))
gruss hary
AW: und noch Tips dazu
26.04.2018 08:04:43
hary
Moin
1. Rueckmeldungen in den anderen Threads waeren schoen, denn ohne vergeht jedem die Lust zum helfen.
2. Haettest du deine Threads gelesen und die Codes ausprobiert, waere dir aufgefallen das hier:
'--neu--6. Spalte eintragen der Zellenadresse
.List(.ListCount - 1, 5) = rngcellPLZ.Address

ganz einfach die Zelladresse in Spalte 6 eingetragen wird und mit
Range(ListBox1.List(ListBox1.ListIndex, 5)).Select

zur entsprechenden Zelle gesprungen wird. Ohne Umweg ueber Row und Column.
Aber egal. Mach was draus.;-)
gruss hary
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige