Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1032to1036
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
Inhaltsverzeichnis

ListBox mehrfachauswahl übertragen

ListBox mehrfachauswahl übertragen
28.12.2008 01:43:00
Martin
Hallo Zusammen
Ich wünsche allen noch ganz schöne und erholsame Feriertage und einen guten Rutsch ins neue Jahr.
Ich knoble mal wieder schon seit Stunden herum und weder Beispiele noch meine Hilfsmittel können mir helfen.
Folgendes Problem:
Habe eine ListBox mit Mehrfachauswahl in einer Userform.
Ich möchte diese Daten in eine oder mehere Zellen übertragen können.
Wie kriege ich diese Daten raus.
Mit der einfach Auswahl hat die super geklappt:

Private Sub Ok_Click()
Range("C4").Select
ActiveCell = Lst_Kunden.Value
Txt_Kunde = ""
Suche.Hide
End Sub


Wie kann ich nun die ausgewählten daten in eine oder mehrere Zellen schreiben.
Mir ist klar, das dies mit einer Schleife geschehen soll. Tja leider ergibt dies bei mir nur Zahlen?
Danke für eure Hilfe

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox mehrfachauswahl übertragen
28.12.2008 07:39:00
Tino
Hallo,
versuche es mal so.

Dim i As Integer, LRow As Long
With Lst_Kunden
For i = 0 To .ListCount - 1
If .Selected(i) Then
ActiveCell.Offset(LRow, 0) = .List(i)
LRow = LRow + 1 'Zeile
End If
Next i
End With


Gruß Tino

AW: ListBox mehrfachauswahl übertragen
28.12.2008 10:58:58
Martin
Hallo Tino
Klappt super. Wie kann ich nun beim verlassen der UF die Auswahl wieder zurücksetzten, damit beim nächstenmal die Listbox wieder in der Ursprungsdarstellung ist. (ohne Auswahl).
Danke und Gruss aus der Schweiz
Martin
AW: ListBox mehrfachauswahl übertragen
28.12.2008 11:04:44
Tino
Hallo,
ungetestet mit
Unload me
Gruß Tino
Anzeige
AW: ListBox mehrfachauswahl übertragen
28.12.2008 12:10:44
Martin
Danke hat funzt.
Du kann man die Mehrfachauswahl auch bei einem weiteren Aufruf der UF wiedergeben. Also ich stelle mir das so vor:
Ich mache eine Mehrfachauswahl (Bearbeitungen von Türen)
dann verlasse ich die UF
nun kommt mir aber in den Sinn, dass ich noch eine Position vergessen habe.
Kann ich nun die alte UF wieder aufrufen und dann weitere Auswahlen trefen.
besten dank und bis gleich
AW: ListBox mehrfachauswahl übertragen
28.12.2008 13:39:00
Tino
Hallo,
dies könnte so gehen.
Nicht ausgiebig getestet!
kommt in Deine Userform
Option Explicit 
 
Private Declare Sub GetSafeArrayPointer Lib "msvbvm60.dll" Alias "GetMem4" _
                    (pArray() As Any, sfaPtr As Long) 
 
Private Sub UserForm_Activate() 
Dim i As Integer 
Dim sfaPtr As Long 
GetSafeArrayPointer myListSelect, sfaPtr 
 
With Lst_Kunden 
  
 If sfaPtr > 0 Then 
  For i = Lbound(myListSelect) To Ubound(myListSelect) 
    .Selected(myListSelect(i)) = True 
  Next i 
 End If 
 
End With 
 
End Sub 
 
Private Sub UserForm_Terminate() 
 Dim i As Integer, A As Integer 
  
 With Lst_Kunden 
    For i = 0 To .ListCount - 1 
     If .Selected(i) Then 
      Redim Preserve myListSelect(A) 
      myListSelect(A) = i 
      A = A + 1 
     End If 
    Next i 
 End With 
  
End Sub 
 
 
Private Sub Ok_Click() 
Dim i As Integer, LRow As Long 
   
  With Lst_Kunden 
      For i = 0 To .ListCount - 1 
          If .Selected(i) Then 
              ActiveCell.Offset(LRow, 0) = .List(i) 
              LRow = LRow + 1 'Zeile 
          End If 
      Next i 
  End With 
         
 Txt_Kunde = "" 
Unload Me 
End Sub 
 

kommt in ein Modul

Option Explicit 
Public myListSelect() As Integer 


Gruß Tino

Anzeige
AW: ListBox mehrfachauswahl übertragen
28.12.2008 20:08:33
Martin
Danke
Da ich gerne noch verstehe was ich da zusammen bastel ist mir dies dann doch viel zu hoch.
Habe aber gerade noch eine Lösung gefunden.
Wenn ich die UF via "hide" verlasse und nicht via "unload me". Sind die Eingaben beim nächsten lade noch da.
Schönen Abend noch.
AW: ListBox mehrfachauswahl übertragen
28.12.2008 22:07:56
Tino
Hallo,
irgendwie scheinst Du nicht zu wissen was Du möchtest.
Einmal
Wie kann ich nun beim verlassen der UF die Auswahl wieder zurücksetzten
und jetzt verwendest Du doch Hide.
Du könntest den Code auch so einsetzen und anstatt UserForm_Activate, den Code in einem Button verwenden (Letzte Einstellung Laden)
Beispiel:
Private Declare Sub GetSafeArrayPointer Lib "msvbvm60.dll" Alias "GetMem4" _
                    (pArray() As Any, sfaPtr As Long)
 

Private Sub LetzteEinstellung_Click()
Dim i As Integer
Dim sfaPtr As Long
GetSafeArrayPointer myListSelect, sfaPtr
 
With Lst_Kunden
  
 If sfaPtr > 0 Then
  For i = Lbound(myListSelect) To Ubound(myListSelect)
    .Selected(myListSelect(i)) = True
  Next i
 End If
 
End With
End Sub

 
Private Sub UserForm_Terminate()
 Dim i As Integer, A As Integer
 Erase myListeSelect
 With Lst_Kunden
    For i = 0 To .ListCount - 1
     If .Selected(i) Then
      Redim Preserve myListSelect(A)
      myListSelect(A) = i
      A = A + 1
     End If
    Next i
 End With
  
End Sub
 
 
Private Sub Ok_Click()
Dim i As Integer, LRow As Long
   
  With Lst_Kunden
      For i = 0 To .ListCount - 1
          If .Selected(i) Then
              ActiveCell.Offset(LRow, 0) = .List(i)
              LRow = LRow + 1 'Zeile 
          End If
      Next i
  End With
         
 Txt_Kunde = ""
Unload Me
End Sub


Egal, die Hauptsache ist Du bis zufrieden!
Gruß Tino

Anzeige
AW: ListBox mehrfachauswahl übertragen
29.12.2008 01:26:00
Martin
Hallo Tino
Es geht bei den ganzen Fragen um mehrere UF's.
Ich bin dabei eine Art Offertentool für meinen Arbeitgeber zu erstellen. Du konntest mir schon bei vielen Fragen dazu helfen.
Danke dafür.
Zur Zeit sind wir dafür noch in der Planungsphase. Ich versuche so viele Probleme schon im kleinen zu lösen damit wir dieses Grosse Tool bis zum April 2009 auch fertig kriegen. Wir sind ein Zweierteam und arbeiten getrennt an diesem Projekt und vergleichen dann in der Arbeit unsere Ergebnisse.
Hei aber danke.
Bis zum nächsten Mal
Grüsschen aus der Schweiz.
Martin
AW: ListBox mehrfachauswahl übertragen
30.12.2008 00:46:15
Martin
Hallo Tino
Bin schon wieder hier.
Wie kann ich aus meiner Listbox mit zwei Spalten die zweite spalte in einer Zweiten Zelle hinter der anderen anzeigen?
mein jetztiger Code:

Private Sub Ok_Click()
Range("F3").Select                          'Ausgabe Zelle 1
ActiveCell.Clear                            'Zelle leeren
ActiveCell.Offset(1, 0).Activate            'eine Reihe nach unten
While ActiveCell.Value  0                 'prüfen ob Inhalt
ActiveCell.Clear                        'wenn ja leeren
ActiveCell.Offset(1, 0).Activate        'eine Reihe nach unten
Wend
Range("F3").Select                          'Ausgabe Zelle 1
Dim i As Integer, LRow As Long              'Variablen definition
With Lst_Bearbeitungen
For i = 0 To .ListCount - 1
If .Selected(i) Then
ActiveCell.Offset(LRow, 0) = .List(i)       'Auswahl eintragen
LRow = LRow + 1                             'Zeile
End If
Next i
End With
UF_Bearbeitungen.Hide
End Sub


Anzeige
AW: ListBox mehrfachauswahl übertragen
30.12.2008 01:17:00
Gerd
Gute Nacht Martin!

Private Sub Ok_Click()
Dim i As Integer, LRow As Long
Range("F3:G" & Application.Max(3, Range("F65536").End(xlUp).Row)).Clear
With LSt_Bearbeitungen
LRow = 3
For i = 0 To .ListCount - 1
If .Selected(i) Then
Range("F" & LRow) = .List(i, 0)
Range("G" & LRow) = .List(i, 1)
LRow = LRow + 1
End If
Next
End With
UF -Bearbeitungen.Hide
End Sub


Gruß Gerd

AW: ListBox mehrfachauswahl übertragen
30.12.2008 10:08:00
Martin
Danke Gerd
Hei das geht super. Du kann ich diesem zweiten Wert auch ein "Währungsformat" zuweissen?
SFr. "Zahl".00
AW: ListBox mehrfachauswahl übertragen
30.12.2008 10:38:00
Tino
Hallo,
so müsste es gehen.

Private Sub Ok_Click()
Dim i As Integer, LRow As Long
Range("F3:G" & Application.Max(3, Range("F65536").End(xlUp).Row)).Clear
With LSt_Bearbeitungen
LRow = 3
For i = 0 To .ListCount - 1
If .Selected(i) Then
Range("F" & LRow) = .List(i, 0)
Range("G" & LRow) = .List(i, 1)
Range("G" & LRow).NumberFormat = "[$SFr.] #,##0.00"
LRow = LRow + 1
End If
Next
End With
UF -Bearbeitungen.Hide
End Sub


Gruß Tino

Anzeige
AW: ListBox mehrfachauswahl übertragen
30.12.2008 12:49:38
Martin
Besten Dank

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige