Dynamische CheckBoxen mit Code erzeugen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
CheckBox MsgBox
Bild

Betrifft: Dynamische CheckBoxen mit Code erzeugen
von: Greenhorn
Geschrieben am: 14.11.2015 17:38:39

Hallo,
ich habe folgendes Problem:
In einer dynamischen Liste, ueber SQL befuellt, soll in einer bestimmten Spalte für jede Zeile eine Checkbox erstellt werden die den Code enthaelt E-Mail erzeugen.
Ich hoffe das ist klar genug ausgedrueckt.
Danke fuer euere Hilfe
Greenhorn

Bild

Betrifft: AW: Dynamische CheckBoxen mit Code erzeugen
von: Tino
Geschrieben am: 14.11.2015 18:13:15
Hallo,
könnte in etwa so funktionieren.

Sub CheckBox_Add()
Dim rng As Range, oShape As Object
With Tabelle1
    Set rng = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
    If rng.Rows(1).Row < 2 Then Exit Sub
    
    For Each rng In rng.Cells
        With .Cells(rng.Row, 5)
            Set oShape = .Parent.CheckBoxes.Add(.Left, .Top, .Width, .Height)
        End With
        oShape.Caption = "Mail-Senden"
        oShape.OnAction = "E_Mail_erzeugen"
    Next rng
End With
End Sub

Sub E_Mail_erzeugen()
Dim rng As Range, MyOutApp As Object, MyMessage As Object
Set rng = ActiveSheet.Shapes(Application.Caller).TopLeftCell.EntireRow

Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
    .To = rng.Cells(1, 1)
    .Subject = rng.Cells(1, 2)
    .body = rng.Cells(1, 3)
    .Display
End With

End Sub
Gruß Tino

Bild

Betrifft: AW: Dynamische CheckBoxen mit Code erzeugen
von: Greenhorn
Geschrieben am: 14.11.2015 19:00:24
Hallo Tino,
Danke. Probiere Ihn Morgen aus. Muss jetzt fort. Rueckmeldung zu 100%
Danke!

Bild

Betrifft: AW: Dynamische CheckBoxen mit Code erzeugen
von: Greenhorn
Geschrieben am: 15.11.2015 12:15:04
Hallo Tino,
der CODE funktioniert einwandfrei, Danke nochmal dafür. Das gleiche geht doch auch fuer DropDownlisten :-)
Gruss Greenhoen

Bild

Betrifft: AW: Dynamische CheckBoxen mit Code erzeugen
von: Tino
Geschrieben am: 15.11.2015 15:01:24
Hallo,
geht auch.
Wo die Daten für den Eingabebereich herkommen weiß ich nicht.
(hier im Beispiel H2:H3) dieser muss ein Vertikaler Bereich sein.

Sub DropDowns_Add()
Dim rng As Range, oShape As Object
With Tabelle1
    Set rng = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
    If rng.Rows(1).Row < 2 Then Exit Sub
    
    For Each rng In rng.Cells
        With .Cells(rng.Row, 5)
            Set oShape = .Parent.DropDowns.Add(.Left, .Top, .Width, .Height)
        End With
        With oShape
            .ListFillRange = "$H$2:$H$3"
            .LinkedCell = .TopLeftCell.Address
            .DropDownLines = 8
            .OnAction = "E_Mail_erzeugen"
        End With
    Next rng
End With
End Sub
Sub E_Mail_erzeugen()
Dim rng As Range, MyOutApp As Object, MyMessage As Object
Set rng = ActiveSheet.Shapes(Application.Caller).TopLeftCell
MsgBox Range("H2:H3").Cells(rng.Value, 1).Value
Set rng = rng.EntireRow
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
    .To = rng.Cells(1, 1)
    .Subject = rng.Cells(1, 2)
    .body = rng.Cells(1, 3)
    .Display
End With
End Sub
Gruß Tino

Bild

Betrifft: Weshalb so viele...
von: Beverly
Geschrieben am: 14.11.2015 18:34:51
Hi,
CheckBoxen? Ich würde stattdessen das Doppelklick-Ereignis des Tabellenblattes für diese Spalte verwenden - dabei z.B. ein "x" in die Zelle schreiben und das Makro ausführen. Anstelle eines "x" kann man auch die Schriftart Wingdings verwenden und ein "ü" in die Zelle schreiben, welches dann einem Haken entspricht.




Bild

Betrifft: AW: Weshalb so viele...
von: Greenhorn
Geschrieben am: 14.11.2015 18:51:01
Hallo Beverly,
danke fuer den Hinweis. Aus Anwendersicht wollte ich eine Checkbox haben. Draufklicken und alles ist Gut. Muss einfach Denken und kompliziert handeln :-(
Danke

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Dynamische CheckBoxen mit Code erzeugen"