MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 06.03.2019, 22:35   #1
nkh2018
Neuer Benutzer
Neuer Benutzer
Standard Excel 2013 - Userform - ListBox - multiselection - Mehrfachauswahl

Hallo!

Im Userform werden in der ListBox1 (multiselection) eine oder mehrere Werte ausgewählt und in die Tabelle1 geschrieben ---> funktioniert.

In der ListBox2 werden die Daten der Tabelle1 wieder eingelesen und angezeigt ---> funktioniert.

Wenn ich in der ListBox2 (eingelesenen Daten) eine Zeile markiere - wie können dann die Werte wieder in der ListBox1 angezeigt werden.
Siehe angefügtes Bild




Code:

Private Sub CommandButton1_Click()
 
 Dim i, spalte As Long
 Dim lRow As Long
 Dim lCol As Long
 
     With Worksheets("Tabelle1")
          
     ' erste ganze leere zeile ermitteln
         lRow = Cells.Find(What:="*", _
                        After:=Range("A1"), _
                        LookAt:=xlPart, _
                        LookIn:=xlFormulas, _
                        SearchOrder:=xlByRows, _
                        SearchDirection:=xlPrevious, _
                        MatchCase:=False).Row
        
         spalte = lRow + 1
    
    ' Mehrfachauswahl in Zeile (eventuell in mehrere Spalten) schreiben
         For i = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(i) Then .Cells(spalte, i + 1) = ListBox1.List(i)
        Next
        
     End With
     
End Sub
Angehängte Grafiken
Dateityp: jpg Bild1.JPG (39,0 KB, 18x aufgerufen)
Angehängte Dateien
Dateityp: xlsm A015-listbox_mehrfachauswahl_in_mehrere_spalten.xlsm (27,0 KB, 11x aufgerufen)
nkh2018 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.03.2019, 16:48   #2
nkh2018
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo nochmals...

hat vielleicht jemand eine Lösung für mein Problem
nkh2018 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.03.2019, 08:29   #3
Beverly
MOF Guru
MOF Guru
Standard Wiederherstellen einer Multis

Hi,

kannst du mit folgendem Code lösen

Code:

Private Sub ListBox2_Click()
    Dim lngZaehler As Long
    Dim intSpalte As Integer
    Dim arrWerte
    Dim varIndex As Variant
    arrWerte = ListBox1.List
    For intSpalte = 0 To ListBox1.ListCount - 1
        ListBox1.Selected(intSpalte) = False
    Next intSpalte
    lngZaehler = ListBox2.ListIndex
    For intSpalte = 0 To 6
        If ListBox2.List(lngZaehler, intSpalte) <> "" Then
            varIndex = Application.Match(ListBox2.List(lngZaehler, intSpalte), arrWerte, 0)
            If IsNumeric(varIndex) Then ListBox1.Selected(varIndex - 1) = True
        End If
    Next intSpalte
End Sub

[EDIT]: Betreff muss heißen "Wiederherstellen einer MultiSelect-Auswahl"


GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.03.2019, 12:52   #4
nkh2018
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

@Beverly

Dankeschön

funktioniert ausgezeichnet...
nkh2018 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.03.2019, 17:44   #5
nkh2018
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Guten Abend....

Bin dank eurer Hilfe (Beverly) schon recht weit gekommen....

Es funktioniert die Mehrfachauswahl in einer ListBox und die ausgewählten

Daten in eine Tabelle zu schreiben....

Auswahl der Daten danach in der ListBox funktioniert dann auch wieder.

Änderungen und Speichern in den TextBox(en) und ComboBox(en) funktioniert ebenfalls.

Wie kann ich jedoch Änderungen in der ListBox (Mehrfachauswahl) wieder abspeichern?

Herzlichen Dank für eure Hilfe


Das ist mein Code zum Speichern...

Beim rot markierten Bereich sollte der Code zum SPeichern für die Multiselect ListBox sein - Der funktioniert leider nicht.



Code:

Private Sub CommandButton1_Click()
' ### Datensatz neu speichern und in ListBox wieder einlesen...
 
  ' erste ganze leere zeile ermitteln
 Dim i, last As Long
 Dim LRow As Long
 Dim lCol As Long
 
     With Worksheets("Datenblatt")
          
         LRow = Cells.Find(What:="*", _
                        After:=Range("A1"), _
                        LookAt:=xlPart, _
                        LookIn:=xlFormulas, _
                        SearchOrder:=xlByRows, _
                        SearchDirection:=xlPrevious, _
                        MatchCase:=False).Row
        
         last = LRow + 1
         
    ' Datensatz in Tabelle speichern
   
    Tabelle1.Cells(last, 2).Value = TextBox4.Value      ' Name (Nachname + Vorname)
    Tabelle1.Cells(last, 3).Value = TextBox1.Value      ' Nachname
    Tabelle1.Cells(last, 4).Value = TextBox2.Value      ' Vorname
    Tabelle1.Cells(last, 5).Value = ComboBox1.Value     ' m/w
    Tabelle1.Cells(last, 6).Value = ComboBox2.Value     ' Dienststelle
    Tabelle1.Cells(last, 7).Value = TextBox3.Value      ' Dienst-Handy
    
    
    ' Mehrfachauswahl ListBox in Zeile schreiben (Dienststelle)
         For i = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(i) Then .Cells(last, i + 10) = ListBox1.List(i)
        Next
    
   End With
   
   Call Nummerierung    ' Aufruf Nummerierung der Datnsätze

'# Tabelle in ListBox einlesen
ListBox2.List = Sheets("Datenblatt").Range("A2:AB" & [a65536].End(3).Row).Value

End Sub
Angehängte Grafiken
Dateityp: jpg ListBox_Änderung_multiselect.JPG (62,6 KB, 4x aufgerufen)
Angehängte Dateien
Dateityp: xlsm Userform_ListBox_Mehrfachauswahl_Änderung_speichern.xlsm (40,4 KB, 3x aufgerufen)
nkh2018 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.03.2019, 18:19   #6
nkh2018
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Vielleicht zum leichteren Verständnis.

Der geänderte Datensatz sollte nicht neu gespeichert werden, sondenr die Änderungen sollen beim gewählten Datensatz überschrieben (aktualisiert) werden... Funktioniert soweit, außer bei der ListBox mit der Multiselectauswahl...
nkh2018 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.03.2019, 18:45   #7
Beverly
MOF Guru
MOF Guru
Standard

Hi,

folgender Code sollte das machen:

Code:

Private Sub CommandButton4_Click()
' # Datensatz ändern und in Tabelle schreiben
    Dim sonsat As Long
    Dim intSpalte As Integer
    If ListBox2.ListIndex = -1 Then
        MsgBox "Datensatz auswählen!", vbExclamation
        Exit Sub
    End If
    sonsat = Sheets("Datenblatt").Range("A:A").Find(ListBox2.Text).Row
        
    '# Ändern DS
    Tabelle1.Cells(sonsat, 2).Value = TextBox4.Value      ' Name (Nachname + Vorname)
    Tabelle1.Cells(sonsat, 3).Value = TextBox1.Value      ' Nachname
    Tabelle1.Cells(sonsat, 4).Value = TextBox2.Value      ' Vorname
    Tabelle1.Cells(sonsat, 5).Value = ComboBox1.Value     ' m/w
    Tabelle1.Cells(sonsat, 6).Value = ComboBox2.Value     ' Dienststelle
    Tabelle1.Cells(sonsat, 7).Value = TextBox3.Value      ' Dienst-Handy
    
    ' Mehrfachauswahl ListBox in Zeile schreiben (Dienststelle)
    For intSpalte = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(intSpalte) Then Sheets("Datenblatt").Cells(sonsat, intSpalte + 10) = ListBox1.List(intSpalte)
    Next
    Call Nummerierung ' Neunummerierung in Spalte A durchführen
  
    MsgBox "Datensatz wurde geändert"
      
    Unload Me       ' Listbox aktualisieren
    UserForm1.Show
End Sub

GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.03.2019, 20:11   #8
nkh2018
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

@Beverly

Danke .... Neu dazugekommene selektierte Daten in der ListBox werden in der Tabelle gespeichert (Bei drücken Button Änderung speichern)

Bereits zuvor gespeicherte - und zum Ändern (löschen) deaktivierte Daten in der ListBox werden leider nicht gelöscht und verbleiben in der Tabelle...
Angehängte Grafiken
Dateityp: jpg bild2.JPG (54,3 KB, 3x aufgerufen)
Angehängte Dateien
Dateityp: xlsm Userform_ListBox_Mehrfachauswahl_Änderung_speichern.xlsm (39,3 KB, 5x aufgerufen)
nkh2018 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.03.2019, 20:25   #9
Beverly
MOF Guru
MOF Guru
Standard

Zitat: von nkh2018 Beitrag anzeigen


Bereits zuvor gespeicherte - und zum Ändern (löschen) deaktivierte Daten in der ListBox werden leider nicht gelöscht und verbleiben in der Tabelle...

Das war auch nicht die Fragestellung bisher. Ändere den Code wie folgt (ungetestet)

Code:

If ListBox1.Selected(intSpalte) Then 
    Sheets("Datenblatt").Cells(sonsat, intSpalte + 10) = ListBox1.List(intSpalte)
Else
    Sheets("Datenblatt").Cells(sonsat, intSpalte + 10).ClearContents
EndIf

GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.03.2019, 21:01   #10
nkh2018
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

@Beverly

Danke für deine Hilfe, funktioniert bestens....(auch ungetestet )

( ͡° ͜ʖ ͡°)
nkh2018 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.