Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Frame
BildScreenshot zu Frame Frame-Seite mit Beispielarbeitsmappe aufrufen

Checkboxen Namen beliebig in eine Zelle schreiben


Betrifft: Checkboxen Namen beliebig in eine Zelle schreiben von: Mub
Geschrieben am: 20.09.2019 09:54:58

Hallo zusammen,

ich bräuchte kurz eure Hilfe bei einer UserForm mit Checkboxen. In einem 2ten Reiter möchte ich, dass die Namen der Checkboxen in eine Zelle geschrieben werden, welche ausgewählt wurden. Sobald ich nur 1 Checkbox auswähle wird der Name übernommen. Wie muss ich den Code schreiben, wenn ich mehrere auswähle?

Zum Verständnis habe ich eine Beispieldatei angehängt.

Viel Grüße und danke vorab!

Mub

https://www.herber.de/bbs/user/132127.xlsm

  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714048.html
Geschrieben am: 20.09.2019 10:10:52

Hallo,

ich sehe deine bisherigen Codes nicht.

Aber ich habe bei einem normalen Dropdown das Ganze so gelöst (bekommen):

If wertold <> wertnew Then Target.Value = wertold & "; " & wertnew 
Vorher musst du noch wertold bzw. wertnew als String deklarieren.

Vielleicht hilft dir das?

Gruß Pierre
  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714049.html
Geschrieben am: 20.09.2019 10:12:14

Hallo Mub,

teste mal:

Option Explicit

Private Sub CheckBox11_Click()
    Call Eintragen
End Sub

Private Sub CheckBox12_Click()
    Call Eintragen
End Sub

Private Sub CheckBox13_Click()
    Call Eintragen
End Sub

Private Sub CheckBox14_Click()
    Call Eintragen
End Sub

Private Sub CheckBox15_Click()
    Call Eintragen
End Sub

Private Sub CommandButton1_Click()
    Unload Me
End Sub

Private Sub Eintragen()
    Dim objControl As Control
    With Worksheets("Sheet2").Cells(2, 3)
        .ClearContents
        For Each objControl In Frame1.Controls
            If TypeName(objControl) = "CheckBox" Then
                If objControl.Value Then _
                    .Value = .Value & objControl.Caption & ", "
            End If
        Next
        If Not IsEmpty(.Value) Then .Value = Left$(.Value, Len(.Value) - 2)
    End With
End Sub

Gruß
Nepumuk
  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714110.html
Geschrieben am: 20.09.2019 15:34:04

Hallo Nepumuk,

vielen Dank für deine Hilfe. Es klappt zu 99% :) Das einzige was der Code nicht macht, ist die Reihenfolge der Checkboxen so zu lassen.
Wenn ich Änderung und Entfall anklicke, schreibt er mir in Sheet 2 Entfall, Änderung. Und bei allen schreibt er dies:
"Anpassung, Entfall, Sonstiges, Änderung, Verlängerung" anstatt
"Änderung, Anpassung, Verlängerung, Entfall, Sonstiges" aber würde ich auch so lassen, wenn es zu komplex ist oder ähnliches.

Ich habe eine weiter Frage und stelle sie erstmal hier:
Aus den Daten habe ich 3 PDF Dateien in einen Ordner erstellt. Jetzt möchte ich diese per VBA als Mail versenden und die gesamten Dateien aus dem Ordner mit dem Text "Hier die Dateien..." versenden, aber so, dass ich noch auf senden klicken muss, um die Mail kurz zu überprüfen. Kannst du/ihr mir dabei helfen?

Viele Grüße
Mub

  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714161.html
Geschrieben am: 20.09.2019 19:20:47

Hallo Mub,

das mit den Checkboxen geht so:

Private Sub Eintragen()
    Dim lngIndex As Long
    With Worksheets("Sheet2").Cells(2, 3)
        .ClearContents
        For lngIndex = 11 To 15
            If Frame1.Controls("CheckBox" & CStr(lngIndex)).Value Then _
                .Value = .Value & Frame1.Controls("CheckBox" & CStr(lngIndex)).Caption & ", "
        Next
        If Not IsEmpty(.Value) Then .Value = Left$(.Value, Len(.Value) - 2)
    End With
End Sub


Und Mail senden geht so:

Option Explicit

Public Sub Mail_senden()
    
    Const FOLDER_PATH As String = "H:\Test\" 'Anpassen !!!
    
    Dim objOutlook As Object, objMail As Object
    Dim strFilename As String, strAttachment As String
    
    strFilename = Dir$(FOLDER_PATH & "*.pdf")
    Do Until strFilename = vbNullString
        strAttachment = strAttachment & FOLDER_PATH & strFilename & ";"
        strFilename = Dir$
    Loop
    
    Set objOutlook = CreateObject(Class:="Outlook.Application")
    Set objMail = objOutlook.CreateItem(0)
    
    With objMail
        .To = "mailadresse@provider.de" 'Mailadresse anpassen
        .Subject = "Betreff" 'Betreff anpassen
        .Body = "Hallo" & vbLf & vbLf & "Hier die Dateien..." & vbLf & vbLf & "Gruß Mub"
        Call .Attachments.Add(strAttachment)
        Call .Display 'nur anzeigen
        ' Call .Send 'direkt senden
    End With
    
    Set objMail = Nothing
    Set objOutlook = Nothing
    
End Sub

Gruß
Nepumuk
  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714050.html
Geschrieben am: 20.09.2019 10:15:17

Hallo

Für Dein Beispiel so (nicht allgemein!)

Private Sub CommandButton1_Click()
  Dim ctrl As Control
  For Each ctrl In Frame1.Controls
   If ctrl Then Debug.Print ctrl.Caption
  Next
  'Unload Me
  End Sub
  
Ergebnis im Direktfenster anschauen

Gruß Matthias
  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714114.html
Geschrieben am: 20.09.2019 15:39:21

Hallo Matthias,

auch dir danke für deinen Code. Bei dir wird leider nichts in den 2ten Reiter geschrieben.

Viele Grüße
Mub

  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714135.html
Geschrieben am: 20.09.2019 16:45:08

Hallo

Das hatte ich aber auch dazugeschrieben!
Ergebnis im Direktfenster anschauen
Ich dachte Du bekommst das selber hin einen String in Deine Wunschzielzelle zu schreiben.

Aber hier gerne auch noch meine Ausarbeitung:
https://www.herber.de/bbs/user/132135.xlsm


  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714051.html
Geschrieben am: 20.09.2019 10:17:09

Hallo Pierre,

meine Programmierung ist in der Datei in der VBA-Oberfläche. Dort habe ich bei der Userform und unter "ThisWorkbook" Eintragungen

Viele Grüße
Mub

  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714053.html
Geschrieben am: 20.09.2019 10:18:54

Wird irgendwie bei mir gehangen haben, denke ich.

Teste erstmal die anderen Varianten, die dir genannt wurden.

Gruß Pierre

  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714052.html
Geschrieben am: 20.09.2019 10:18:19

    Option Explicit
    
    Private Sub CommandButton1_Click()
        Dim LoLetzte As Long
        Dim ObCb As Object
        With Worksheets("Sheet2")
            LoLetzte = IIf(IsEmpty(.Cells(Rows.Count, 3)), _
                Cells(.Rows.Count, 3).End(xlUp).Row, .Rows.Count) + 1
            For Each ObCb In Me.Controls
                Select Case TypeName(ObCb)
                    Case "CheckBox"
                        .Cells(LoLetzte, 3) = ObCb.Caption
                        LoLetzte = LoLetzte + 1
                End Select
            Next ObCb
        End With
    End Sub
GrußformelHomepage
  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714111.html
Geschrieben am: 20.09.2019 15:37:18

Hallo Hajo_Zi,

danke für deinen Code. Ich habe auch diesen getestet. Egal ob ich nur 1 oder mehrere auswähle, schreibt er trotzdem alle Namen der Boxen untereinander in je 1 Zelle und nicht in eine hintereinander welche ich ausgewählt habe.

Viele Grüße
Mub

  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714113.html
Geschrieben am: 20.09.2019 15:39:17

übersehen
Case "CheckBox"
if obcb then
.Cells(LoLetzte, 3) = ObCb.Caption
LoLetzte = LoLetzte + 1
End if

Gruß Hajo

  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714117.html
Geschrieben am: 20.09.2019 15:44:47

Super. Jetzt übernimmt auch er nur die ausgewählten. Wie muss es denn geändert werden, wenn ich im eine bestimmt Zelle vorgeben will. Also bspw. immer B2 und alles in eine Zelle hintereinander

Gruß
Mub

  

Betrifft: AW: Checkboxen Namen beliebig in eine Zelle schreiben von: 1714121.html
Geschrieben am: 20.09.2019 16:00:41

.Range("B2")=.Range("B2") & ObCb.Caption & " "

Zu Beginn nach With ...
.Range("B2")=""

Gruß Hajo

Beiträge aus dem Excel-Forum zum Thema "Checkboxen Namen beliebig in eine Zelle schreiben"