Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1428to1432
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
Werte aus LB in Range schreiben
29.05.2015 10:59:09
Chris
Hallo VBAler,
ich möchte mit der Maus selektierte Einträge aus einer Listbox in einen bestimmten range untereinander schreiben. Leider tut sich nix bei meinem Makro. Zum Testen habe ich ein Sheets genommen, das gar nicht existiert - und es gab keine Fehlermeldung. Offensichtlich wird das Makro ignoriert...
jmd eine Idee?
---
Zum Füllen der LB:
Private Sub Worksheet_Activate()
UserForm1.Show
With UserForm1.ListBox1
.ColumnCount = 3
.ColumnWidths = "50;50;50"
.ColumnHeads = True
.RowSource = "'Admin'!E2:G3"
End With
End Sub
---
Doppelklick auf LB-Objekt dann eingefügt:
Private Sub ListBox1_Click()
Dim zeile As Long
zeile = 1
With UserForm1.ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets("Admin").Cells(zeile, 2) = ListBox1.Column(1, i)
zeile = zeile + 1
End If
Next i
End With
End Sub
Gruß
Chris

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus LB in Range schreiben
29.05.2015 11:49:51
Kenny
Hi Chris,
Probiere es mal so. Verstehe nicht genau warum du eine Schleife benutzt. Soll doch bei jedem neuen Klick eingefügt werden oder?
Liebe Grüße

Public zeile
Private Sub ListBox1_Click()
With UserForm1.ListBox1
zeile = zeile + 1
Sheets("Admin").Cells(zeile, 2) = .Value
End With
End Sub

AW: Werte aus LB in Range schreiben
29.05.2015 12:26:48
Chris
Hi Kenny,
ja bei jedem Klick. Das Makro läuft für das erste Column der LB. Meine LB hat jedoch drei Spalten. Ich bräuchte daher immer alle Einträge.
Also bei klick auf irgendein Item....copy zum Beispiel nacH
A1 = Item.column1
B1 = Item.column2
C1 = Item.Column3
Gruß
Chris

Anzeige
AW: Werte aus LB in Range schreiben
29.05.2015 13:12:30
Kenny
Das würde dann so gehen:

Public zeile
Private Sub ListBox1_Click()
With UserForm1.ListBox1
zeile = zeile + 1
Sheets("Admin").Cells(zeile, 2) = .List(.ListIndex, 0)
Sheets("Admin").Cells(zeile, 3) = .List(.ListIndex, 1)
Sheets("Admin").Cells(zeile, 4) = .List(.ListIndex, 2)
End With
End Sub

AW: Werte aus LB in Range schreiben
29.05.2015 14:04:09
Chris
Hi Kenny,
danke - genau.
Noch eine letzte Sache: Bei Klick auf einen Button, sollen alle markierten Einträge von LB2 in einem bestimmten Range gelöscht werden. ActiveSheet, range("F1:H100") ... vergleich die in LB2 angeklickten Items (3 columns) mit den Einträgen im range, wenn gefunden, lösche dort alle drei Angaben).
Nochmal danke,
Chris

Anzeige
AW: Werte aus LB in Range schreiben
29.05.2015 14:20:56
Chris
Hi Kenny,
danke - genau.
Noch eine letzte Sache: Bei Klick auf einen Button, sollen alle markierten Einträge von LB2 in einem bestimmten Range gelöscht werden. ActiveSheet, range("F1:H100") ... vergleich die in LB2 angeklickten Items (3 columns) mit den Einträgen im range, wenn gefunden, lösche dort alle drei Angaben).
Nochmal danke,
Chris

AW: Werte aus LB in Range schreiben
29.05.2015 14:30:44
Kenny

Private Sub CommandButton1_Click()
ende = zeile
With UserForm1.ListBox1
For x = 0 To .ListCount - 1
If .Selected(x) = True Then
For zeile2 = 1 To ende
If Sheets("Admin").Cells(zeile2, 2) = .List(x, 0) And _
Sheets("Admin").Cells(zeile2, 3) = .List(x, 1) And _
Sheets("Admin").Cells(zeile2, 4) = .List(x, 2) Then
Sheets("Admin").Range(Sheets("Admin").Cells(zeile2, 2), Sheets("Admin"). _
Cells(zeile2, 4)).ClearContents
End If
Next
End If
Next
End With
End Sub
so?

Anzeige
AW: Werte aus LB in Range schreiben
01.06.2015 12:47:43
Chris
Hi Kenny,
ja genau. vielen Dank. Soweit kann ich dein Makro nachvollziehen. Außer an zwei Stellen:
zeile=ende
For zeile2 = 1 To ende: suche von oben bis zum Ende einer Spalte nach den Begriffen.
Müsste Ende nicht genau definiert werden? Zum Beispiel:
ende = ActiveSheet.Range("blabla").Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Danke.
Chris

AW: Werte aus LB in Range schreiben
01.06.2015 13:40:50
Beni
Hallo Chris
nicht Click, sondern MouseUp
bei Click ist noch nichts ausgewählt mit MouseUp schon
Gruss Beni
Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ListBox1.SetFocus
i = ListBox1.ListIndex
If ListBox1.ListIndex = -1 Then Exit Sub
Sheets("Admin").Cells(i+1, 2) = ListBox1.List(i, 1)

Anzeige
AW: Werte aus LB in Range schreiben
01.06.2015 13:20:32
Chris
Hi Kenny,
ja genau. vielen Dank. Soweit kann ich dein Makro nachvollziehen. Außer an zwei Stellen:
zeile=ende
For zeile2 = 1 To ende: suche von oben bis zum Ende einer Spalte nach den Begriffen.
Müsste Ende nicht genau definiert werden? Zum Beispiel:
ende = ActiveSheet.Range("blabla").Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Danke.
Chris

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige