Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1776to1780
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

Eine Userform mit Listbox für mehrere Be

Eine Userform mit Listbox für mehrere Be
17.08.2020 13:46:07
Martin
Hallo
Ich bin kein Profi in VBA. Ich wollte mir die unterschiedlichen Userform`s ersparen. Deshalb habe ich eine Userform mit Listbox und buttons für mehrere Bereiche zusammengeschnitzt. Es funktioniert soweit alles aber beim Eintrag in die Zellen benötigt Excel viel Zeit. Anbei meine Vorgangsweise:
Private Sub EintragenLFBA_Click()
Dim data, start As Integer
'Wenn beim Betätigen des Button Eintragen im Userform die Variable ZellenA True ist, soll er in diese vordefinierten Zellen schreiben. Wenn eine andere variable True ist in
'die anderen definierten Zellen. Usw...
If ZellenA = True Then
With Worksheets("Daten")
start = Application.Max(13, .Cells(23, "A").End(xlUp).Row)
For data = 0 To ListBoxMitgliederLFBA.ListCount - 1
If ListBoxMitgliederLFBA.Selected(data) = True Then
start = start + 1
.Cells(start, "A") = ListBoxMitgliederLFBA.List(data)
Unload Me
End If
Next
End With
ZellenA = False
End If
If ZellenD = True Then
With Worksheets("Daten")
start = Application.Max(13, .Cells(23, "D").End(xlUp).Row)
For data = 0 To ListBoxMitgliederLFBA.ListCount - 1
If ListBoxMitgliederLFBA.Selected(data) = True Then
start = start + 1
.Cells(start, "D") = ListBoxMitgliederLFBA.List(data)
Unload Me
Else
End If
Next
End With
ZellenD = False
End If
Kann mir jemand kurz sagen ob dies überhaupt so möglich ist oder einen Ansatz für eine andere Variante vorschlagen.
Danke. Lg Martin

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eine Userform mit Listbox für mehrere Be
17.08.2020 14:26:46
Werner
Hallo,
ohne die Datei - schwierig zu sagen.
-wieviele Einträge hat denn deine ListBox ?
-wieviele Einträge in der ListBox werden in etwa ausgewählt ?
Was auffällt:
Du hast das Unload Me innerhalb der jeweiligen Schleife. So wird der Befehl bei jedem Schleifendurchlauf ausgelöst- wozu das denn. Setzt den Unload Befehl doch einfach ganz ans Ende des Codes.
Versuch das mal hier. Habe mal noch die Bildschirmaktualisierung und die Automatische Formelberechnung ausgeschaltet.
Private Sub CommandButton1_Click()
Dim ZellenA As Boolean, ZellenD As Boolean
Dim start As Long, Data As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Worksheets("Daten")
If ZellenA Then
start = Application.Max(13, .Cells(23, "A").End(xlUp).Row)
For Data = 0 To ListBoxMitgliederLFBA.ListCount - 1
If ListBoxMitgliederLFBA.Selected(Data) = True Then
start = start + 1
.Cells(start, "A") = ListBoxMitgliederLFBA.List(Data)
End If
Next
ZellenA = False
ElseIf ZellenD Then
start = Application.Max(13, .Cells(23, "D").End(xlUp).Row)
For Data = 0 To ListBoxMitgliederLFBA.ListCount - 1
If ListBoxMitgliederLFBA.Selected(Data) = True Then
start = start + 1
.Cells(start, "D") = ListBoxMitgliederLFBA.List(Data)
End If
Next
End If
End With
Unload Me
Application.Calculation = xlCalculationAutomatic
End Sub
Gruß Werner
Anzeige
AW: Eine Userform mit Listbox für mehrere Be
17.08.2020 17:06:09
Martin
Hallo Werner
Die Listbox hat bis zu 40 Einträge, davon werden jedesmal bis zu 8 Einträge ausgewählt. Das Unload Me , ja das kommt von hin und herkopieren. Wie gesagt: alles andere als Profi. ;))
Danke nochmal für deine Unterstützung, wäre so nie darauf gekommen !! Funktioniert perfekt.
Ich müßte noch einen Schutz auf diverse Zellen legen. Aber weil ich die Sortierung in den Zellen habe funktioniert das nicht so einfach. Der Code für die Sortierung stammt glaube ich auch von dir.
Sub SortierenNamen()
Dim Spalte As Long
With Tabelle1
For Spalte = 1 To 7 Step 3
.Range(.Cells(13, Spalte), .Cells(23, Spalte)).Sort key1:=.Cells(1, Spalte), _
Order1:=xlAscending, Header:=xlYes, MatchCase:=True
Next Spalte
End With
End Sub

Reicht es hier wenn ich diese Dodes Einfüge ?
ActiveSheet.Unprotect Password:="Mein Passwort"
......
......
ActiveSheet.Protect Password:="Mein Passwort"
Bitte um Unterstützung. Danke.
Lg Martin
Anzeige
AW: Eine Userform mit Listbox für mehrere Be
17.08.2020 18:42:02
Werner
Hallo,
versuch es doch einfach mal.
Gruß Werner
AW: Eine Userform mit Listbox für mehrere Be
18.08.2020 06:34:54
Martin
Hallo
Habe es so gemacht:
Private Sub Worksheet_open ()
Dim wks As Worksheet
For Each wks In Worksheets
wks.Protect Password:="passwort", UserInterfaceOnly:=True
Next wks
End Sub

Danke nochmals für die Hilfe.
Lg Martin
Gerne u. Danke für die Rückmeldung. o.w.T.
18.08.2020 08:37:48
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige