5.1k Aufrufe
Gefragt in Tabellenkalkulation von benny111081 Einsteiger_in (35 Punkte)
Hallo zusammen,

ich komme nicht weiter, wie kann ich ein Kontrollkästchen das ich über Formularsteuerelemente eingefügt habe ansprechen?

Wenn ein Haken gesetzt wurde, kann ich über einen Button Outlook öffnen und mein Formular versenden.

Wenn kein Haken gesetzt wurde, sagt mir Excel" bitte Haken setzen" und startet nicht Outlook zum Versenden der Mail.

Ich habe mehrere Boxen, die kontrolliert werden müssen.

Das Versenden klappt, ich benötige nur einen Code für die Checkbox.

Vielen Dank.

6 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)

Hallo Benny,

wenn du die Checkbox über das Formularsteuerelement eingefügt hast, dann heißt das ja standardmäßig "Kontrollkästchen 1".

Ein Kontrollkästchen kannst du wie folgt abfragen (Namen anpassen):

If ActiveSheet.CheckBoxes("Kontrollkästchen 1").Value = 1 Then MsgBox "aktiviert"

Entsprechend kannst du auch dem Kontrollkästchen einen Wert zuweisen: 0 = nicht aktiviert, 1 = aktiviert.

Gruß

M.O.

0 Punkte
Beantwortet von benny111081 Einsteiger_in (35 Punkte)
Hallo M.O

ich Check es einfach nicht :-(

In meiner Excel ist der Button der eine Email sendet.

Ich hab Kontrollkästchen 81 und 82.

Wenn die nicht angewählt werden soll er sagen bitte anwählen.

Könntest du so nett sein, den Code hier einbauen ?

Vielen dank für deine Unterstützung, aber ich komme seit Tagen hier nicht weiter.

Sub e_Mail()
 
'** Dimensionierung der Variablen
Dim strPDF As String
Dim OutlookApp As Object, strEmail As Object
 
'** Vorgaben definieren
Set OutlookApp = CreateObject("Outlook.Application")
Set strEmail = OutlookApp.CreateItem(0)
 
'** PDF erzeugen
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
  ThisWorkbook.Path & "\Excel-File.pdf", Quality:=xlQualityStandard _
  , IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
  :=False
  
  '**Sub Pruefung()
  
   Dim rngZelle As Range
   Dim rngBereich As Range
   Dim strZelle As String
   Set rngBereich = Union(Range("F5"), Range("M5"), Range("F15"), Range("J15"), Range("M15"), Range("P15"), Range("R15"), Range("L18"), Range("L19"), Range("F25"), Range("J25"), Range("N25"), Range("P25")) '<== hier alle Prüfzellen einbinden
   For Each rngZelle In rngBereich
      If rngZelle = "" Then strZelle = strZelle & vbLf & rngZelle.Address
   Next rngZelle
    If strZelle <> "" Then

     MsgBox "Bitte alle Pflichtfelder ausfüllen, ansonsten kann ihr Antrag nicht bearbeitet werden:", vbAbortRetry
     Exit Sub

End If
   
   
 

'** E-Mail versenden
strPDF = ThisWorkbook.Path & "\Excel-File.pdf"
With strEmail
  
  .To = "****@web.de"
  .Subject = Worksheets("Tabelle1").Range("F25").Value & " " & Range("G134").Value & " " & Range("N25").Value & " " & Range("H134").Value & " " & Range("P25").Value & " " & Range("G134").Value & " " & Range("M5").Value & " " & Range("A134").Value & " " & Range("F15").Value & " " & Range("D134").Value & " " & Range("F41").Value
  .Body = "In Anlage befindet sich ein Antrag auf Fremdfirmenausweis."
  .Attachments.Add strPDF
  .Display
  '.Send 'Damit wir die E-Mail sofort versendet
  Kill strPDF
End With
   
'** Objektvariablen wieder löschen
Set OutlookApp = Nothing
Set strEmail = Nothing
End Sub
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)

Hallo Benny,

die Abfrage müsste so funktionieren:

If ActiveSheet.CheckBoxes("Kontrollkästchen 81").Value <> 1 And ActiveSheet.CheckBoxes("Kontrollkästchen 82").Value <> 1 Then
  MsgBox "Bitte die Kontrollkästchen aktivieren"
  Exit Sub
End If

Damit müssen beide Kontrollkästchen aktiviert sein, um den die E-Mail zu versenden. Reicht auch nur ein aktiviertes Kontrollkästchen, dann ersetze das And durch Or.

Einzubauen vor

'** E-Mail versenden

Gruß

M.O.

0 Punkte
Beantwortet von benny111081 Einsteiger_in (35 Punkte)
Hallo M.O

ja funktioniert danke, aber wenn ich eines von beiden Auswähle wird die E-Mail auch versendet :-(
0 Punkte
Beantwortet von benny111081 Einsteiger_in (35 Punkte)
Hab es nun einzeln aufgelistet und geht :-) vielen dank..

Eine frage hätte ich noch, die PDF die ich in der Email generiere, soll noch einen Betreff aus Zelle F25 und M5 bekommen .

wo müsste ich das in meinem Code einbauen :-D
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Benny,

da du die PDF ja aus deiner Mappe generierst, müsstest du das betreffende Arbeitsblatt entsprechend anpassen.

Gruß

M.O.
...