MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 13.04.2012, 08:39   #1
prittju
Neuer Benutzer
Neuer Benutzer
Standard Excel2007 - Aus Userform mittels Checkbox Daten in Blatt schreiben

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
prittju ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.04.2012, 09:24   #2
Beverly
MOF Guru
MOF Guru
Standard

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):
Code:

If CoCb Then Cells(Treffer.Row, CoCb.Tag) = "X"

GrußformelBeverly's Excel - Inn
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.04.2012, 10:13   #3
prittju
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

perfekt

Danke für die schnelle Hilfe!
prittju ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.04.2012, 09:54   #4
prittju
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

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
prittju ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.04.2012, 12:06   #5
Beverly
MOF Guru
MOF Guru
Standard

Hi Olaf,

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


GrußformelBeverly's Excel - Inn
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.04.2012, 12:40   #6
prittju
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

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
prittju ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.04.2012, 12:59   #7
Beverly
MOF Guru
MOF Guru
Standard

Hi Olaf,
Code:

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

GrußformelBeverly's Excel - Inn
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.04.2012, 13:18   #8
prittju
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Karin,

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

Danke nochmals für Deine Hilfe.
prittju ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.