PDA

Vollständige Version anzeigen : Aus Userform mittels Checkbox Daten in Blatt schreiben


prittju
13.04.2012, 08:39
Hallo,
mit meinen VBA kenntnissen komme ich alleine nicht mehr weiter, und bitte Euch jetzt mir zu helfen.

Ich habe in einer Userform mit 25 Checkboxen und 1 ComboBox.

Die Checkbox werden über eine Schleife abgefragt:

Private Sub CommandButton3_Click()
Dim CoCb As Control
Dim InI As Integer
Dim Treffer As Range

Set Treffer = Sheets("Test").Columns(1).Find(what:=ComboBox1.Text, _
lookat:=xlWhole)

For Each CoCb In Me.Controls
'Typ des Steuerelementes prüfen
If TypeName(CoCb) = "CheckBox" Then
If CoCb.Value = True Then _

Hier soll meine Aktion kommen

'MsgBox "Aktion für Checkbox " & _
'Mid(CoCb.Name, 9, Len(CoCb.Name) - 8)

End If
End Sub

Die Checkboxen sollen ein "X" in eine Zelle Schreiben wenn der Wert wahr ist.
z.B.
CheckBox1.Value = Range(Treffer, 2) = "X"
CheckBox3.Value = Range(Treffer, 4) = "X"

Ich bekomme es leider nicht hin und hoffe es verständlich erklärt zu haben.

MfG Olaf

Beverly
13.04.2012, 09:24
Hi Olaf,

schreibe den jeweiligen Spaltenbuchstaben in die Tag-Eigenschaft jeder CheckBox, dann könntest du die Codezeile für die Aktion so schreiben (ungetestet):
If CoCb Then Cells(Treffer.Row, CoCb.Tag) = "X"
<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/" onclick="window.open(this.href);return false"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

prittju
13.04.2012, 10:13
perfekt :)

Danke für die schnelle Hilfe!

prittju
14.04.2012, 09:54
Dank Karin konnte ich mein erstes problem folgendermaßen lösen:

Private Sub CommandButton2_Click()
Dim CoCb As Control
Dim InI As Integer
Dim Treffer As Range

Set Treffer = ThisWorkbook.Sheets("Quali").Columns(1).Find(what:=ComboBox1.Text, _
lookat:=xlWhole)
Application.ScreenUpdating = False
'Schleife über alle Steuerelemente der UserForm
For Each CoCb In Me.Controls
'Typ des Steuerelementes prüfen
If TypeName(CoCb) = "CheckBox" Then
If CoCb.Value = True Then _
ThisWorkbook.Sheets("Quali").Cells(Treffer.Row, CoCb.Tag) = "X"

If CoCb.Value = False Then _
ThisWorkbook.Sheets("Quali").Cells(Treffer.Row, CoCb.Tag) = ""
End If
Next
Application.ScreenUpdating = True

End Sub

Gibt es auch eine Möglichkeit beim ComboBox Change Ereignis die bereits gesetzten "X" wieder einzulesen?
z.B. wenn ich einen Namen mittels der ComboBox auswähle, mir dann in der UserForm die CheckBox auf True o. False setzt.

MfG Olaf

Beverly
14.04.2012, 12:06
Hi Olaf,

und wie sieht dein bisheriger Code für das ComboBox_Change Ereignis aus?

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/" onclick="window.open(this.href);return false"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

prittju
14.04.2012, 12:40
Hallo Karin,

da habe ich nichts drin.
Ich lese die Daten beim UserForm Initialze ein:

Private Sub Userform_Initialize() 'Mitarbeiter in Dropdown-Feld einlesen
Dim frm As UserForm
Dim i As Integer
Dim iMax As Integer

Set frm = UserForm1
Application.ScreenUpdating = False
With frm.ComboBox1
.Clear
iMax = ThisWorkbook.Sheets("Quali").UsedRange.Rows.Count
For i = 4 To iMax
.AddItem ThisWorkbook.Sheets("Quali").Cells(i, 1)
Next i
End With
Application.ScreenUpdating = True

End Sub

MfG Olaf

Beverly
14.04.2012, 12:59
Hi Olaf,
Private Sub ComboBox1_Change()
Dim rngZelle As Range
Dim chkElement As Control
Set rngZelle = Worksheets("Quali").Columns(1).Find(ComboBox1, lookat:=xlWhole)
If Not rngZelle Is Nothing Then
For Each chkElement In Me.Controls
If TypeName(chkElement) = "CheckBox" Then
chkElement = UCase(Worksheets("Quali").Cells(rngZelle.Row, chkElement.Tag)) = "X"
End If
Next chkElement
End If
Set rngZelle = Nothing
End Sub

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/" onclick="window.open(this.href);return false"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

prittju
14.04.2012, 13:18
Hallo Karin,

Hut ab :)
Da war ich mit meinen Stundenlangen versuchen auf dem Holzweg.

Danke nochmals für Deine Hilfe.