# CheckBox Image Prüfen



## valeripf (17. Februar 2014)

Kann mir helfe

es geht folgedes

1)wenn CheckBox kein haken drin bei OK bei daten is Tabellen übetragen
2)wenn CheckBox  haken drin ist aber kein Images drin dann (MsgBox "Bitte Cover eingeben!")
3) wenn CheckBox  haken drin ist  Images drin dann bei OK daten is Tabellen übetragen

ich habe so probiert aber geht nicht 


```
If CheckBox1.Value <> "" And imgImage1.Tag = "" Then
        MsgBox "Bitte Cover eingeben!"
    Exit Sub
    End If
```


----------



## Yaslaw (17. Februar 2014)

MS Word? MS Excel? MS Access?

Egal welches Program. das Tag-Attribut kann der User nicht setzen. 

Angemommen es handelt sich um ein Image-Control in MS Access:

```
'Anstelle von
imgImage.Tag = ''
^besser so prüfen
isNull(imgImage.PictureData)
```


----------



## valeripf (17. Februar 2014)

MS Excel
Ok wie Verbinde ich mit CheckBox


----------



## tombe (18. Februar 2014)

```
Private Sub CommandButton1_Click()
    If CheckBox1.Value And Not IsNull(Image1.Picture) Then
        MsgBox "Bitte Cover eingeben!"
    Else
        'Hier kommt der Code hin wenn alles in Ordnung ist
    End If
End Sub
```

Hier wird aber nicht geprüft ob zwar ein Bild vorhanden ist aber der Haken nicht gesetzt ist.
Ich meine mich aber zu erinnern das du diese Möglichkeit in einem anderen Beitrag ausgeschlossen hast!?


----------



## valeripf (18. Februar 2014)

ich bau wieder bisschen neu um

ich hab jetzt so probiert aber geht nicht


----------



## Yaslaw (18. Februar 2014)

valeripf hat gesagt.:


> ich bau wieder bisschen neu um
> 
> ich hab jetzt so probiert aber geht nicht


Mit diesen Infos können wir dir auch nicht helfen.
Viel Glück.


----------



## valeripf (18. Februar 2014)

ich bau wieder bisschen neu um

ich hab jetzt so probiert aber geht nicht


```
'Range ("O" & lFreie) Cover Bild Einfügen
             If CheckBox1.Value And Not IsNull(imgImage1.Picture) Then
                MsgBox "Bitte Cover eingeben!"
                Exit Sub
                With ActiveSheet
                    If Trim(imgImage1.Tag) = "" Then
                        .Cells(lFreie, 14).Value = "Kein Bild"
                    Else
                    .Hyperlinks.Add Anchor:=.Cells(lFreie, 14), _
                        Address:=imgImage1.Tag, _
                        ScreenTip:=imgImage1.Tag, _
                        TextToDisplay:="Klick mich"
                    End If
                End With
            Else
            End If
```

Versuch1 :  Ohne Hacken und Ohene Bild Es überttragt ins Tabelle aber die die ist leeer Soll zeigen "Kein Bild"
Versuch 2:  mit Hacken und Ohene Bild Das ist OK Kommt "Meldug Bitte Cover eingeben!"
Versuch3: mit Hacken und mit Bild Blockier immer noch Meldug "Meldug Bitte Cover eingeben!"


----------



## valeripf (18. Februar 2014)

Yaslaw

sorry Computer hengt 
ich hab als stat Erweter Antwort gedruckt


----------



## vfl_freak (18. Februar 2014)

valeripf hat gesagt.:


> ich hab als stat Erweter Antwort gedruckt


bitte was


----------



## tombe (18. Februar 2014)

Er hat anstatt (stat) auf Erweitert (Erweter) auf Antwort geklickt (Antwort gedruckt).

So würde ich ihn verstehen.


```
If CheckBox1.Value = False And Image1.Picture Is Nothing Then
    'Hier der Code wenn die CheckBox nicht markiert ist und kein Bild vorhanden ist
    MsgBox "Keine Checkbox und kein Bild"
ElseIf CheckBox1.Value = True And Image1.Picture Is Nothing Then
    'Hier der Code wenn die CheckBox markiert ist und kein Bild vorhanden ist
    MsgBox "Checkbox aber kein Bild"
ElseIf CheckBox1.Value = True And Not Image1.Picture Is Nothing Then
    'Hier der Code wenn die CheckBox markiert ist und ein Bild vorhanden ist
    MsgBox "Checkbox und Bild"
ElseIf CheckBox1.Value = False And Not Image1.Picture Is Nothing Then
    'Hier der Code wenn die CheckBox nicht markiert ist und ein Bild vorhanden ist
    MsgBox "Keine Checkbox aber ein Bild"
End If
```

So ein anderes Beispiel. Hier werden alle Möglichkeiten in einem eigenen IF-Block abgearbeitet.

Zur Kontrolle wird immer eine Meldung ausgegeben wo zu sehen ist was markiert ist und was nicht bzw. ob ein Bild vorhanden ist oder nicht.


----------



## valeripf (19. Februar 2014)

Meint du so 


```
'Range ("O" & lFreie) Cover Bild Einfügen
            If CheckBox1.Value = False And imgImage1.Picture Is Nothing Then
                'Hier der Code wenn die CheckBox nicht markiert ist und kein Bild vorhanden ist
                With ActiveSheet
                    If Trim(imgImage1.Tag) = "" Then
                        .Cells(lFreie, 14).Value = "Kein Bild"
                        ElseIf CheckBox1.Value = True And imgImage1.Picture Is Nothing Then
                        'Hier der Code wenn die CheckBox markiert ist und kein Bild vorhanden ist
                        MsgBox "Bitte Cover Eigeben"
                        Exit Sub
                        ElseIf CheckBox1.Value = True And Not imgImage1.Picture Is Nothing Then
                        'Hier der Code wenn die CheckBox markiert ist und ein Bild vorhanden ist
                            .Hyperlinks.Add Anchor:=.Cells(lFreie, 14), _
                            Address:=imgImage1.Tag, _
                            ScreenTip:=imgImage1.Tag, _
                            TextToDisplay:="Klick mich"
                    End If
                End With
            End If
```

Aber Passiert nix (Übertagt nix, Keine Msgbox)


----------



## tombe (19. Februar 2014)

Sorry aber du formatierst deinen Code nicht korrekt mit [code=vb] ... [/code] und dann sind die Zeilen mehr oder weniger willkürlich eingerückt. Da kann man nicht wirklich erkennen was zusammengehört.

Formatiere deinen Code so das man ihn lesen kann, dann schaue ich es mir gerne nochmal an!


----------



## valeripf (19. Februar 2014)

OK sorry

```
'Hier der Code wenn die CheckBox nicht markiert ist und kein Bild vorhanden ist

 If CheckBox1.Value = False And imgImage1.Picture Is Nothing Then
                With ActiveSheet
                    If Trim(imgImage1.Tag) = "" Then
                        .Cells(lFreie, 14).Value = "Kein Bild"

'Hier der Code wenn die CheckBox markiert ist und kein Bild vorhanden ist

                        ElseIf CheckBox1.Value = True And imgImage1.Picture Is Nothing Then
                        MsgBox "Bitte Cover Eigeben"
                        Exit Sub

 'Hier der Code wenn die CheckBox markiert ist und ein Bild vorhanden ist

                        ElseIf CheckBox1.Value = True And Not imgImage1.Picture Is Nothing Then
                            .Hyperlinks.Add Anchor:=.Cells(lFreie, 14), _
                            Address:=imgImage1.Tag, _
                            ScreenTip:=imgImage1.Tag, _
                            TextToDisplay:="Klick mich"
                    End If
                End With
            End If
```

Das Letzte Brauch nicht
('Hier der Code wenn die CheckBox nicht markiert ist und ein Bild vorhanden ist)

ich denke so besser


----------



## tombe (19. Februar 2014)

Ich will ja nicht meckern, aber es hätte gereicht wenn du den obigen Beitrag nochmal bearbeitet hättest.


```
If CheckBox1.Value = False And Image1.Picture Is Nothing Then
    'Hier der Code wenn die CheckBox nicht markiert ist und kein Bild vorhanden ist
    ActiveSheet.Cells(lFreie, 14).Value = "Kein Bild"
ElseIf CheckBox1.Value = True And Image1.Picture Is Nothing Then
    'Hier der Code wenn die CheckBox markiert ist und kein Bild vorhanden ist
    MsgBox "Bitte Cover Eigeben"
ElseIf CheckBox1.Value = True And Not Image1.Picture Is Nothing Then
    'Hier der Code wenn die CheckBox markiert ist und ein Bild vorhanden ist
    With ActiveSheet
        .Hyperlinks.Add Anchor:=.Cells(lFreie, 14), _
        Address:=Image1.Tag, _
        ScreenTip:=Image1.Tag, _
        TextToDisplay:="Klick mich"
    End With
End If
```

Du hast da bei dir ein ganz schönes durcheinander reingebracht.
Schau dir den Unterschied zwischen deinem und meinem Beispiel an. Dann solltest du erkennen was du falsch gemacht hast.

Beim ersten IF-Block (Zeile 1) würde es eigentlich ausreichen, wenn du nur schreibst

```
If CheckBox1.Value = False Then
```
aber ich will dich jetzt nicht verwirren.


----------



## valeripf (23. Februar 2014)

OK Fast

jetzt hab ich noch kleine Problem

1)wenn ich  in andere Blatt z,B "Start" mit Button Neu Formular Öffne und Bilder Einfüge, OKButton Dann Fügt er Bild nicht in Blatt "DatenBank" Sonder in S"Start"

ich Will das Die immer in Blatt DatenBank sendet

2)ich Will das nach Meldung "Bitte Cover Eingeben" nicht Formular Beendet sonder Immer MsgBox bis Bild einfügt ist oder hacken entfernt ist 

ich habe mit Exit Sub Probiert aber Klaps nicht geht trotzdem ziele Runter

```
ElseIf CheckBox1.Value = True And Image1.Picture Is Nothing Then
    'Hier der Code wenn die CheckBox markiert ist und kein Bild vorhanden ist
     MsgBox "Bitte Cover Eigeben"
     Exit Sub
```


hier noch mal aktuelle Code


```
Private Sub OKButton_Click()
'OK Button
'Übertragren In DatenBank
    With MyDatenBank.Worksheets("DatenBank")
        lFreie = .Cells(.Rows.Count, 6).End(xlUp).Row + 1
        If lFreie < 3 Then lFreie = 3
         'Range ("F" & lFreie) Cover Bild Einfügen
            If CheckBox1.Value = False Then
            'Hier der Code wenn die CheckBox nicht markiert ist und kein Bild vorhanden ist
                ActiveSheet.Cells(lFreie, 6).Value = "Kein Bild"
                ElseIf CheckBox1.Value = True And Image1.Picture Is Nothing Then
                'Hier der Code wenn die CheckBox markiert ist und kein Bild vorhanden ist
                MsgBox "Bitte Cover Eigeben"
                Exit Sub
                ElseIf CheckBox1.Value = True And Not Image1.Picture Is Nothing Then
                'Hier der Code wenn die CheckBox markiert ist und ein Bild vorhanden ist
                With ActiveSheet
                    .Hyperlinks.Add Anchor:=.Cells(lFreie, 6), _
                    Address:=Image1.Tag, _
                    ScreenTip:=Image1.Tag, _
                    TextToDisplay:="Klick mich"
                End With
            End If
    End With
    Unload NeuFormular 'Formular Schließen
End Sub
```


----------



## tombe (26. Februar 2014)

Zu Frage 1: dann gib einfach den Namen "DatenBank" anstatt ActiveSheet an. Dann greifst du auch sicher darauf zu.

Zu Frage 2: wenn du die Funktion nach Ausgabe der Meldung "Bitte Cover eingeben" mit Exit Sub verlässt, dann bleibt die Form doch geöffnet. Verstehe nicht so ganz was da jetzt nicht klappt.


----------



## valeripf (27. Februar 2014)

OK Danke 

mit Tauschen "DatenBank" anstatt ActiveSheet hat geklappt

Kannst du mir noch hier helfen es ist endlich wie andere Code


```
If CheckBox4.Value = False Then
            'Hier der Code wenn die CheckBox nicht markiert ist und Kein Darsteller1 vorhanden ist
                DatenBank.Cells(lFreie, 17).Value = "Kein Angabe"
                ElseIf CheckBox4.Value = True And Darsteller1.Value Is Nothing Then
                'Hier der Code wenn die CheckBox markiert ist und kein Darsteller1 vorhanden ist
                MsgBox "Bitte Darsteller Eigeben"
                Exit Sub
                ElseIf CheckBox4.Value = True And Not Darsteller1.Value Is Nothing Then
                'Hier der Code wenn die CheckBox markiert ist und ein Darsteller1 vorhanden ist
                DatenBank.Cells(lFreie, 17).Value = Darsteller1.Value
            End If
```

hier ist Fehler 

Laufzeitfehler 424  Objekt Erforderlich


```
ElseIf CheckBox4.Value = True And Darsteller1.Value Is Nothing Then
```


----------



## tombe (27. Februar 2014)

Also wenn es das Objekt "CheckBox4" nicht geben würde, dann würde der Fehler bereits in der ersten Zeile des obigen Codes auftreten.

Deshalb vermute ich das "Darsteller1" das Objekt ist welches nicht gefunden wird.


----------



## valeripf (27. Februar 2014)

ich habe noch mal geprüft "Darsteller1" ist Richtig

komische weise so Funktioniert zum teil Ohne ".Value"

so 


```
If CheckBox4.Value = False Then
            'Hier der Code wenn die CheckBox nicht markiert ist und Kein Darsteller1 vorhanden ist
                DatenBank.Cells(lFreie, 17).Value = "Kein Angabe"
                ElseIf CheckBox4.Value = True And Darsteller1 Is Nothing Then
                'Hier der Code wenn die CheckBox markiert ist und kein Darsteller1 vorhanden ist
                MsgBox "Bitte Darsteller Eigeben"
                Exit Sub
                ElseIf CheckBox4.Value = True And Not Darsteller1 Is Nothing Then
                'Hier der Code wenn die CheckBox markiert ist und ein Darsteller1 vorhanden ist
                DatenBank.Cells(lFreie, 17).Value = Darsteller1.Value
            End If
```
nur MsgBox kommt nicht Raus die zeile ist Leer


----------



## tombe (27. Februar 2014)

Ok wenn es Darsteller1 gibt, was ist es dann für ein Objekttyp. Ist es ein Textfeld, ist es eine Checkbox, ist es ein Listenfeld, ... ?


----------



## valeripf (27. Februar 2014)

das ist Textfeld 

Darsteller1 = TextBox


----------



## tombe (27. Februar 2014)

Dann schreib mal Darsteller1.Value = "" oder Darsteller1.Text = "" das sollte auf jeden Fall klappen.


----------



## valeripf (27. Februar 2014)

Nein alle beide nicht

Darsteller1.Value = ""   Objekt Erforderlich
Darsteller1.Text = ""    bei "="  Typen Unverträglich


----------



## tombe (27. Februar 2014)

Zeig mal bitte nochmal den Code dieser Zeile wo der Fehler ausgelöst wird.


----------



## valeripf (27. Februar 2014)

```
ElseIf CheckBox4.Value = True And Darsteller1.Text = "" Is Nothing Then
```

So ist Typen Unverträglich genau So Ohne (= "") bei .Text


```
ElseIf CheckBox4.Value = True And Darsteller1.Value = "" Is Nothing Then
```

Objekt Erforderlich  genau So Ohne (= "")


----------



## tombe (27. Februar 2014)

Du solltest vielleicht nebenher erstmal ein Buch lesen wo die Grundlagen zu VB drin stehen.


```
ElseIf CheckBox4.Value = True And Darsteller1.Text = "" Then
```


----------



## valeripf (27. Februar 2014)

ja nach ich

es ist genau so Kleine Problemm wie bei Bilder  mit "Exit Sub"

Wenn ich Check Box Aktreviere und Dann OK Drucke kommt MsgBox, Dann Schreibe was Rein Oder Deaktiviere CheckBox, Und Dann OK Drucke 

Dann Passiert Folge

Es Überragt   Doppelt  1 Zeile z.B"Q"  Darsteller1 ist Leer
                                     2 Zeile z.B"Q" Ist Ergebniss Von Darsteller1

bei Bilder macht auch ab und zu


----------



## valeripf (28. Februar 2014)

Ich habe Gesten Abend Selber Raus gekriegt 

ich habe dein Code auf zwei  Codes  geteilt, und Und hat funktioniert

OK Erledigt


----------

