Informationen und Beispiele zum Thema Userform | |
---|---|
![]() |
Userform-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema ListBox | |
---|---|
![]() |
ListBox-Seite mit Beispielarbeitsmappe aufrufen |
Betrifft: Tabellenblätter vergleichen
von: Tim
Geschrieben am: 10.09.2019 17:04:50
Hallo zusammen,
ich habe auf einer Userform eine Listbox die ich beim Starten einlese.
Jetzt stehe ich vor der Herausforderung, dass bei doppelten Werten "Name" zwischen dem Tabellenblatt "Mitarbeiter" & "Arbeitszeit", den Wert aus der Arbeitszeit führend ist und der doppelte Wert aus dem Tabellenblatt "Mitarbeiter" nicht mit eingelesen werden soll.
Meine versuche das zu lösen scheiterten, deshalb bitte ich euch um eure Unterstützung
Dazu habe ich folgende Bsp.Datei, wer kann mir dabei helfen?
https://www.herber.de/bbs/user/131960.xlsm
Betrifft: AW: Tabellenblätter vergleichen
von: 1712575.html
Geschrieben am: 12.09.2019 07:26:24
Hallo Tim,
z.B. so:
Private Sub UserForm_Initialize() Dim i As Long UserForm1.ListBox1.ColumnCount = 6 'Anzahl der Spalten UserForm1.ListBox1.ColumnWidths = "4cm;3cm;3cm;3cm;3cm;2cm" 'Spaltenbreite in cm Me.ListBox1.Clear With Worksheets("Arbeitszeiten") For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row Me.ListBox1.AddItem .Cells(i, 1) Next i End With With Worksheets("Mitarbeiter") For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row If WorksheetFunction.CountIf(Worksheets("Arbeitszeiten") _ .Columns(1), .Cells(i, 1)) = 0 Then Me.ListBox1.AddItem .Cells(i, 1) End If Next i End With End SubGruß Werner
Betrifft: AW: Tabellenblätter vergleichen
von: 1712614.html
Geschrieben am: 12.09.2019 09:38:36
Hallo Werner,
funktioniert soweit wie gewünscht, jedoch bekomme ich Probleme wenn ich den nächsten Wert zu Spalte B übernehmen will.
Ich habe das wie folgt versucht:
Private Sub UserForm_Initialize() Dim i As Long UserForm1.ListBox1.ColumnCount = 6 'Anzahl der Spalten UserForm1.ListBox1.ColumnWidths = "4cm;3cm;3cm;3cm;3cm;2cm" 'Spaltenbreite in cm Me.ListBox1.Clear With Worksheets("Arbeitszeiten") For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row Me.ListBox1.AddItem .Cells(i, 1) 'Me.ListBox1.List(ListBox1.ListCount - 1, 1) = Cells(i, 2) = diese stelle führt zu _ Problemen Next i End With With Worksheets("Mitarbeiter") For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row If WorksheetFunction.CountIf(Worksheets("Arbeitszeiten") _ .Columns(1), .Cells(i, 1)) = 0 Then Me.ListBox1.AddItem .Cells(i, 1) Me.ListBox1.List(ListBox1.ListCount - 1, 1) = Cells(i, 2) End If Next i End With End Sub
Betrifft: AW: Tabellenblätter vergleichen
von: 1712633.html
Geschrieben am: 12.09.2019 10:45:04
Hallo Tim,
so:
Private Sub UserForm_Initialize() Dim i As Long UserForm1.ListBox1.ColumnCount = 6 'Anzahl der Spalten UserForm1.ListBox1.ColumnWidths = "4cm;3cm;3cm;3cm;3cm;2cm" 'Spaltenbreite in cm Me.ListBox1.Clear With Worksheets("Arbeitszeiten") For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row Me.ListBox1.AddItem .Cells(i, 1) Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = .Cells(i, 2) Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = .Cells(i, 3).Text Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = .Cells(i, 4).Text Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = .Cells(i, 5) Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = .Cells(i, 6) Next i End With With Worksheets("Mitarbeiter") For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row If WorksheetFunction.CountIf(Worksheets("Arbeitszeiten") _ .Columns(1), .Cells(i, 1)) = 0 Then Me.ListBox1.AddItem .Cells(i, 1) Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = .Cells(i, 2) Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = .Cells(i, 3) Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = .Cells(i, 4).Text Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = .Cells(i, 5).Text Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = .Cells(i, 6) End If Next i End With End SubDie Referenzierung von Cells in deinem Code ist falsch.
Betrifft: AW: Tabellenblätter vergleichen
von: 1712651.html
Geschrieben am: 12.09.2019 11:13:12
funktioniert perfekt, vielen Dank!
Betrifft: Gerne u. Danke für die Rückmeldung. o.w.T.
von: 1712655.html
Geschrieben am: 12.09.2019 11:29:34