Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
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
Visual Basic Checkbox auslesen
24.09.2015 10:09:35
Jana
Hallo zusammen,
ich bin bisher nur stiller Mitleser gewesen und habe nun selbst ein Problem:
Ich habe eine Userform im visual basic gebaut, in die zuerst ein paar Angaben eingetragen oder auch ausgewählt werden. Bei Klick auf den Sende-Button (CommandButton1), sollen dann alle Einträge überprüft werden und wenn alles korrekt ist, der Inhalt in eine Excel-Tabelle geschrieben werden.
In der Userform gibt es eine Checkbox, die je nach Auswahl in der Combobox1 mit einem Label überdeckt wird oder eben sichtbar ist. Wenn die Checkbox überdeckt ist, soll automatisch in Spalte 13 der Excel-Tabelle "kostenlos" stehen, sonst bei Anwählen der Checkbox = 1 oder bei leerer Checkbox = 2.
Das Überdecken bei den vorher festgelegten kostenlosen Dingen funktioniert prima.
Aber das Eintragen in die Excel-Datei funktioniert nicht.
Meine Codes sehen so aus:

Private Sub ComboBox1_Change()
If ComboBox1.Value = "def" Then
UserForm2.Show
UserForm1.Label10.Visible = False
End If
If ComboBox1.Value = "ghi" Then
UserForm3.Show
End If
If ComboBox1.Value = "abc" Then
UserForm1.Label11.Visible = True
Else: UserForm1.Label11.Visible = False
End If
If ComboBox1.Value = "ghi" Or ComboBox1.Value = "abc" Or ComboBox1.Value = "jkl" Or
ComboBox1.Value = "mno" Or ComboBox1.Value = "pqr" Or ComboBox1.Value = "stu" Or
ComboBox1.Value = "vwx" Or ComboBox1.Value = "yza" Or ComboBox1.Value = "bcd" Then
UserForm1.Label10.Visible = True
End If
If ComboBox1.Value = "aaa" Or ComboBox1.Value = "bbb" Or ComboBox1.Value = "ccc" Or
ComboBox1.Value = "ddd" Or ComboBox1.Value = "eee" Or ComboBox1.Value = "fff" Or
ComboBox1.Value = "ggg" Then
UserForm1.Label10.Visible = False
End If
End Sub

.
.
.
Private Sub CommandButton1_Click()
If Not IsNumeric(Me.TextBox1.Value) Then
Call MsgBox("Bitte Nr. eingeben!", vbExclamation Or vbOKOnly)
Me.TextBox1.SetFocus
Else: TextBox3.Text = Evaluate("=VLOOKUP(" & TextBox1.Text & ",'Tabelle2'!A:B,2,0)")
End If
If Not IsDate(Me.TextBox9.Value) Then
Call MsgBox("Bitte Datum eingeben! (Format: TT.MM.JJJJ)", vbExclamation Or vbOKOnly)
Me.TextBox9.SetFocus
If IsDate(Me.TextBox9.Text) Then
If Not Me.TextBox9.Text = Format(CDate(Me.TextBox9.Text), "DD/MM/YYYY") Then
MsgBox "Falsches Datumsformat!"
Me.TextBox9.SetFocus
End If
End If
End If
If IsNumeric(Me.TextBox1.Value) And IsDate(Me.TextBox9.Value) And ComboBox1.Value  "abc"   _
_
Then
Dim a As Long
a = Cells(Rows.Count, 3).End(xlUp).Row + 1
Cells(a, 15) = Me.TextBox9.Value
Cells(a, 1) = Me.TextBox1.Value
Cells(a, 2) = Me.ComboBox1.Value
Cells(a, 3) = Me.TextBox3.Value
Cells(a, 4) = Me.TextBox4.Value
Cells(a, 5) = Me.TextBox6.Value
Cells(a, 8) = Me.Txt_Datum1.Value
End If
If IsNumeric(Me.TextBox1.Value) And IsDate(Me.TextBox9.Value) And ComboBox1.Value = "abc"   _
_
Then
a = Cells(Rows.Count, 3).End(xlUp).Row + 1
Cells(a, 16) = Me.TextBox9.Value
Cells(a, 1) = Me.TextBox1.Value
Cells(a, 2) = Me.ComboBox1.Value
Cells(a, 3) = Me.TextBox3.Value
Cells(a, 4) = Me.TextBox4.Value
Cells(a, 5) = Me.TextBox6.Value
Cells(a, 8) = Me.Txt_Datum1.Value
If ComboBox2.Value = "getrennt (nur bei abc)" Then
Cells(a, 10) = "getrennt"
ElseIf ComboBox2.Value = "zusammengefasst (nur bei abc)" Then
Cells(a, 10) = "zusammengefasst"
Else: Cells(a, 10) = Me.ComboBox2.Text
If Label10.Visible = True Then
Cells(a, 13) = "kostenlos"
If Label10.Visible = False Then
If CheckBox1.Value = True Then
Cells(a, 13) = "1"
ElseIf CheckBox1.Value = False Then
Cells(a, 13) = "2"
End If
End If
End If
End If
CheckBox1.Value = False
End If
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Visual Basic Checkbox auslesen
24.09.2015 10:24:43
Rudi
Hallo,
erstmal frage ich mich, warum du nicht die Checkbox ein- und ausblendest statt das Label.
If Label10.visible then
cells(a,13="kostenlos"
else
cells(a,13)=checkbox1+2
end if
Gruß
Rudi

AW: Visual Basic Checkbox auslesen
24.09.2015 10:38:23
Jana
Hallo, das mit dem ausblenden der checkbox hat leider nicht funktioniert, deshalb hatte ich mir vorerst so geholfen...

AW: Visual Basic Checkbox auslesen
24.09.2015 10:42:19
Jana
Tut mir leid, aber ich verstehe den Code nicht.
If Label10.visible then
cells(a,13="kostenlos"
else
cells(a,13)=checkbox1+2
end if
Wenn das label nicht sichtbar ist, d.h. die Checkbox IST sichtbar, dann soll nach Klick auf den Senden-Button geschaut werden ob in der Checkbox ein Haken ist oder nicht, und dann je nachdem in Spalte 13 eine "1" oder eine "2" stehen..
Aber leider klappt nicht einmal der "kostenlose" Teil

Anzeige
AW: Visual Basic Checkbox auslesen
24.09.2015 10:46:51
Rudi
Hallo,
If Label10.visible then  'Checkbox nicht sichtbar
cells(a,13)="kostenlos"
else
cells(a,13)=checkbox1+2   'angehakt=True (-1), abgehakt=False (0) -1+2=1; 0+2=2
end if
Was klappt nicht?
Gruß
Rudi

AW: Visual Basic Checkbox auslesen
24.09.2015 10:56:54
Jana
"1" und "2" waren nur Beispiele...
Tut mir leid, aber da hab ich wohl nicht richtig drüber nachgedacht beim Schreiben meines Textes. Eigentlich sollen da Texte rauskommen, wenn angehakt sagen wir "angehakt" wenn nicht "nicht angehakt"
Schonmal DANKE für deine Hilfe!

ja dann
24.09.2015 11:04:03
Rudi
warum nicht gleich korrekt?
If Label10.visible then  'Checkbox nicht sichtbar
cells(a,13)="kostenlos"
else
cells(a,13)=Array("angehakt","abgehakt")(checkbox1+1)
end if

oder
If Label10.visible then
cells(a,13)="kostenlos"
else
if checkbox1 then
cells(a,13)= "angehakt"
else
cells(a,13)= "abgehakt"
end if
end if
Gruß
Rudi

Anzeige
AW: ja dann
24.09.2015 11:24:33
Jana
Ich habe jetzt den Code noch etwas umgestellt:
Erst der Part:
If IsNumeric(Me.TextBox1.Value) And IsDate(Me.TextBox9.Value) And ComboBox1.Value = "abc"
Then
.
.
.
Cells(a, 13) = "kostenlos"
Dann der:
If IsNumeric(Me.TextBox1.Value) And IsDate(Me.TextBox9.Value) And ComboBox1.Value "abc"
Then
.
.
.
If Label10.Visible Then
Cells(a, 13) = "kostenlos"
Else
If CheckBox1 Then
Cells(a, 13) = "angehakt"
Else
Cells(a, 13) = "abgehakt"
End If
.
.
.
Vorher hatte er die Checkbox eben nur auslesen können, wenn in der combobox "abc" ausgewählt wurde.
Jetzt passt es!
Vielen Dank!!!
Anzeige

16 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige