Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1612to1616
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
Userform If-schleife Optionbutton und listbox
11.03.2018 17:45:58
Marion
Hallo liebes Herber-Forum,
ich habe einen code für eine userform aus dem Internet und wollte diesen für meine Bedürfnisse abändern.
UserForm_Initialize sieht wie folgt aus.

Private Sub UserForm_Initialize()
'Titel:
TextBox_Titel = "Buchtitel eingeben"
'Autor:
TextBox_Autor = "Autor eingeben"
'Kategorie:
With ListBox_Kategorie
.AddItem "Krimi"
.AddItem "Thriller"
.AddItem "Liebesroman"
.AddItem "Historischer Roman"
.AddItem "Sachbuch"
.AddItem "Fantasy"
.AddItem "..."
End With
'Jahr:
Dim i As Integer
With ComboBox_Jahr
For i = 1900 To 2017
.AddItem CStr(i)
Next
End With
'Auflage:
SpinButton_Auflage.Min = 1
SpinButton_Auflage.Value = 1
TextBox_Auflage.Text = SpinButton_Auflage.Value
'Sprache:
CheckBox_Deutsch.Value = False
CheckBox_Englisch.Value = False
'Format:
OptionButton1.Value = True

Der CommandButton der dafür sorgt das die Daten von der Userform in das Vorhandene sheet eingetragen werden sieht so aus:


Private Sub Button_Eingabe_Click()
'Erste freie Zeile ausfindig machen
Dim last As Integer
last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
'Titel:
Cells(last, 1).Value = TextBox_Titel
'Autor:
Cells(last, 2).Value = TextBox_Autor
'Kategorie:
Cells(last, 3).Value = ListBox_Kategorie.Value
'Jahr:
Cells(last, 4).Value = ComboBox_Jahr
'Auflage:
Cells(last, 5).Value = TextBox_Auflage.Value
'Sprache:
If CheckBox_Deutsch.Value = True Then Cells(last, 6).Value = CheckBox_Deutsch.Caption
If CheckBox_Englisch.Value = True Then Cells(last, 6).Value = Cells(last, 6).Value & " ," &  _
CheckBox_Englisch.Caption
'Format:
If OptionButton1.Value = True Then Cells(last, 7).Value = "Buch"
If OptionButton2.Value = True Then Cells(last, 7).Value = "EBook"
End Sub

Soweit so gut... Jetzt wollte ich dass die Daten in verschiedene sheets eingetragen werden wenn.
Und zwar nach den Kategorien der OptionButtons "Buch" oder "Ebook" und dazu in abhängigkeit zu ListBox_Kategorie. Und dann im passenden sheet jeweils in die nächste freie Zeile.
Die Namen der vorhanden sheets setzen sich auch aus dem wert des OprionButtons und der Kategorie zusammen zB. "Buch_Krimi", "Buch_Thriller"
Ich habe es bereits versucht aber es wird sehr umständlich und unübersichtlich, desweitern wird immer nur die nächste freie Zeile des Activesheet gesucht und nicht die, in dem sheet wo die Daten eingetragen werden sollen.

Private Sub Button_Eingabe_Click()
'Erste freie Zeile ausfindig machen
Dim last As Integer
last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
If OptionButton1.Value = True and ListBox_Kategorie.Value = "Krimi" Then worksheets("Buch_Krimi" _
).Cells(last,1).Value = TextBox_Titel
If OptionButton1.Value = True and ListBox_Kategorie.Value = "Thriller" Then worksheets(" _
Buch_Thriller").Cells(last,1).Value = TextBox_Titel
If OptionButton2.Value = True Then Cells(last, 7).Value = "EBook"
If OptionButton3.Value = True Then Cells(last, 7).Value = "Hörbuch"
'Titel:
Cells(last, 1).Value = TextBox_Titel
'Autor:
Cells(last, 2).Value = TextBox_Autor
'Kategorie:
Cells(last, 3).Value = ListBox_Kategorie.Value
'Jahr:
Cells(last, 4).Value = ComboBox_Jahr
'Auflage:
Cells(last, 5).Value = TextBox_Auflage.Value
'Sprache:
If CheckBox_Deutsch.Value = True Then Cells(last, 6).Value = CheckBox_Deutsch.Caption
If CheckBox_Englisch.Value = True Then Cells(last, 6).Value = Cells(last, 6).Value & " ," &  _
CheckBox_Englisch.Caption
End Sub

Ich hoffe Ihr könnt mir helfen!
Viele Dank und liebe Grüße

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

Betreff
Datum
Anwender
Anzeige
AW: Userform If-schleife Optionbutton und listbox
11.03.2018 18:19:58
Nepumuk
Hallo Marion,
teste mal:
Private Sub Button_Eingabe_Click()
    
    Dim last As Long
    Dim ws As Worksheet
    
    If OptionButton1.Value And ListBox_Kategorie.Value = "Krimi" Then
        Set ws = Worksheets("Buch_Krimi")
        With ws
            last = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        End With
    End If
    
    If OptionButton1.Value And ListBox_Kategorie.Value = "Thriller" Then
        Set ws = Worksheets("Buch_Thriller")
        With ws
            last = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        End With
    End If
    
    If OptionButton2.Value Then ws.Cells(last, 7).Value = "EBook"
    
    If OptionButton3.Value Then ws.Cells(last, 7).Value = "Hörbuch"
    
    'Titel:
    
    ws.Cells(last, 1).Value = TextBox_Titel.Text
    
    'Autor:
    
    ws.Cells(last, 2).Value = TextBox_Autor.Text
    
    'Kategorie:
    
    ws.Cells(last, 3).Value = ListBox_Kategorie.Value
    
    'Jahr:
    
    ws.Cells(last, 4).Value = ComboBox_Jahr.Text
    
    'Auflage:
    
    ws.Cells(last, 5).Value = TextBox_Auflage.Value
    
    'Sprache:
    
    If CheckBox_Deutsch.Value Then ws.Cells(last, 6).Value = CheckBox_Deutsch.Caption
    
    If CheckBox_Englisch.Value Then ws.Cells(last, 6).Value = _
        ws.Cells(last, 6).Value & " ," & CheckBox_Englisch.Caption
    
    Set ws = Nothing
End Sub

Gruß
Nepumuk
Anzeige
AW: Userform If-schleife Optionbutton und listbox
11.03.2018 22:12:42
Marion
Super, danke für die antwort! Aber jetzt fehlen ja noch die ganzen anderen möglichkeiten. Gibt es hierfür eine Lösung mit variablen.
Wenn man jede möglichkeit aufschreiben muss ist der code ja doch sehr lang.
AW: Userform If-schleife Optionbutton und listbox
12.03.2018 08:02:35
Nepumuk
Hallo Marion,
so kurz genug?
Private Sub Button_Eingabe_Click()
    
    Dim last As Long
    Dim ws As Worksheet
    
    If OptionButton1.Value Then
        If ListBox_Kategorie.ListIndex >= 0 Then
            
            Set ws = Worksheets("Buch_") & ListBox_Kategorie.Text
            
            With ws
                
                last = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
                
                If OptionButton2.Value Then .Cells(last, 7).Value = "EBook"
                
                If OptionButton3.Value Then .Cells(last, 7).Value = "Hörbuch"
                
                'Titel:
                
                .Cells(last, 1).Value = TextBox_Titel.Text
                
                'Autor:
                
                .Cells(last, 2).Value = TextBox_Autor.Text
                
                'Kategorie:
                
                .Cells(last, 3).Value = ListBox_Kategorie.Value
                
                'Jahr:
                
                .Cells(last, 4).Value = ComboBox_Jahr.Text
                
                'Auflage:
                
                .Cells(last, 5).Value = TextBox_Auflage.Value
                
                'Sprache:
                
                If CheckBox_Deutsch.Value Then .Cells(last, 6).Value = CheckBox_Deutsch.Caption
                
                If CheckBox_Englisch.Value Then .Cells(last, 6).Value = _
                    .Cells(last, 6).Value & " ," & CheckBox_Englisch.Caption
                
            End With
            
            Set ws = Nothing
            
        End If
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Userform If-schleife Optionbutton und listbox
12.03.2018 08:58:40
Nepumuk
Oooooooooooops,
da ist ein Fehler drin. So natürlich:
Set ws = Worksheets("Buch_" & ListBox_Kategorie.Text)
Gruß
Nepumuk
AW: Userform If-schleife Optionbutton und listbox
12.03.2018 23:10:41
snb
Eine 1-Zeiler reicht:
Private Sub Button_Eingabe_Click()
If OptionButton1.Value and ListBox_Kategorie.ListIndex >-1 Then sheets("Buch_").Cells(Rows. _
Count, 1).End(xlUp).offset(1).resize(,7)=array(TextBox_Titel,TextBox_Autor,ListBox_Kategorie,ComboBox_Jahr,TextBox_Auflage,iif(CheckBox_Deutsch,CheckBox_Deutsch,CheckBox_Englisch),iif(OptionButton2,"EBook","Hörbuch"))
End Sub

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige