Vielen, vielen Dank, holger, hast mir echt geholfen.
Viele Grüße und ein schönes WE
Gruß Andreas
Holger schrieb am 22.01.2008 15:59:44:
Ich gehe davon aus, dass die UserForm2 die ListBox1 enthält.
Dann generiere auf der UserForm2 einen CommandButton (Befehlsschaltfläche), nehmen wir an, dieser heiße CommandButton1.
Wenn du im Entwurfsmodus doppelt auf diesen CommandButton1 klickst, öffnet sich das Codefenster der UserForm, in der wohl auch deine Private Sub UserForm_Initialize() bereits steht, und es wird eine neue
Private Sub CommandButton1_Click() erzeugt. Dort kannst du den Code hinein kopieren. Also:
Private Sub CommandButton1_Click()
a = ""
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then a = a + ListBox1.List(i) + vbCrLf
Next i
Cells(Zeile,Spalte)=a 'Zeile und Spalte der Zelle der aktiven Tabelle, in die hinein kopiert werden soll
End Sub
Für Zeile und Spalte musst du konkrete nummerische Werte eingeben, z.B. Cells(9,2) für Zelle B9. Falls die Zielzelle nicht auf der aktiven Tabelle liegt, geht
Worksheet("Deine Tabelle, wie sie auf dem Reiter bezeichnet ist").Cells(Zeile,Spalte)=a
Das Ergebnis wäre, wenn du bert und ernie ausgewählt hast, dass in die Zelle
bert
ernie
geschieben wird, vbCrLf erzeugt einen Wagenrücklauf (Carriage Return) und einen Zeilenwechsel (Line Feed). vb steht für Virtual Basic. Wenn die Zelle nicht hoch genug formatiert ist, wird das Ergebnis nur teilweise angezeigt.
Viel Erfolg
Holger
Gast1980 schrieb am 22.01.2008 13:17:02:
Also ich habe ein UserForm mit einer Listbox1. Und mit
Private Sub UserForm_Initialize()
With ListBox1
.AddItem "bert"
.AddItem "Krümeml"
.AddItem "ernie"
.ListIndex = 0
.MultiSelect = fmMultiSelectExtended
End With
End Sub
habe ich die Listeneinträge generiert. In der Tabelle5 habe ich folgende Zeilen:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean
Cancel = True 'Verhindert das Standardauswahlfenster
If Target.Row > 6 And Target.Column = 10 Then
UserForm2.Show
End If
Vielleicht eine doofe Frage, aber wo muss dein geschriebener Code hin? und mit welchem Ereignis?
Vielen Dank schon mal für die Mühe
Gruß
Andreas
Holger schrieb am 22.01.2008 09:33:44:
Hallo Gasr1980,
ich gehe davon aus, dass du eine MultiSelect-ListBox, z.B. ListBox1, erzeugt hast, aus der du die Werte abrufen willst. Das kannst du mit der Selected- und List-Eigenschaft der ListBox erreichen. Im Beispiel erzeuge ich in der String-Variablen a eine zeilenweise Darstellung der selektierten ListBox-Einträge und schreibe das Ergebnis in die durch Zeile und Spalte bezeichnete Zelle der aktiven Tabelle.
a = ""
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then a = a + ListBox1.List(i) + vbCrLf
Next i
Cells(Zeile,Spalte)=a
Ich hoffe, dir geholfen zu haben.
Holger
Gast1980 schrieb am 21.01.2008 14:54:44:
Hallo ich brauche dringend Hilfe.
Ich muss aus einer Listbox mit vorgebenen Werten, selektierte Werte in eine Zelle übertragen. Bei klicken der rechten Mousetaste, wird das Userform geöffnet.
Wenn ein oder mehrere Einträge makiert sind, soll die in die Target.cell übertragen werden.
Kann mir jemand bitte helfen?
Vielen Dank im Voraus
Gruß Andreas |