Contrôler si présence de cellules vides

Résolu
sullivan95 Messages postés 20 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 1 février 2012 - 22 oct. 2009 à 11:35
sullivan95 Messages postés 20 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 1 février 2012 - 22 oct. 2009 à 13:28
Bonjour,

L'idée est la suivante :
lorsque l'utilisateur clique sur le bouton la macro vérifie si toutes les cellules jaunes de la feuille sont remplies, si ce n'est pas le cas, elle stoppe l'édition des pages.

La macro ci-dessous ne fonctionne pas car je l'ai testé avec une cellule vide, et aucun message ne s'affiche et l'impression des feuilles se lancent.

Merci pour votre aide


Private Sub CommandButton1_Click()

Set plage = Range("A1:J34")

For Each cl In plage
If cl.Interior.ColorIndex 27 "" Then
MsgBox "Au moins une cellule n'est pas renseignée"
Exit Sub
End If
Next

Sheets("Avis d'Opéré").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Sheets("Attestation exercice").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True
Sheets("Menu").Select
End Sub

6 réponses

userrrqi115 Messages postés 181 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 4 février 2011
22 oct. 2009 à 12:14
Re,
De mon côté ça fonctionne.
Quelle ligne est mise en évidence lors de ton message d'erreur ? A mon avis celle du IF

Ta plage de données contient-elle des valeurs d'erreur ? A mon avis oui

Si je ne me trompe pas tu peux insérer un autre IF avant celui existant:
If IsError(cl.Value) = False Then

BR

USERRRQI115
Simple user
Great brain
3
userrrqi115 Messages postés 181 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 4 février 2011
22 oct. 2009 à 11:39
Hello,
Tu peux essayer ceci:
If cl.Interior.ColorIndex 27 And cl.value "" Then...

BR
USERRRQI115
Simple user
Great brain
0
sullivan95 Messages postés 20 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 1 février 2012
22 oct. 2009 à 11:49
Il m'affiche un message d'erreur : 13 incompatibilité de type
0
sullivan95 Messages postés 20 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 1 février 2012
22 oct. 2009 à 11:56
Alors finalement, le code modifié ci-dessous ne fonctionne toujours pas puisquela macro ne stoppe pas l'impression si elle rencontre une cellule jaune vide.

Qu'est-ce qui cloche?

Private Sub CommandButton1_Click()

Set plage = ThisWorkbook.Worksheets("Menu").Range("A1:J34")

For Each cl In plage
If cl.Interior.ColorIndex 27 And cl.Value "" Then
MsgBox "Au moins une cellule n'est pas renseignée"
Exit Sub
End If
Next

Sheets("Avis d'Opéré").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Sheets("Attestation exercice").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True
Sheets("Menu").Select
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sullivan95 Messages postés 20 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 1 février 2012
22 oct. 2009 à 13:23
La ligne mise en évidence est celle-ci :

If cl.Interior.ColorIndex 27 And cl.Value "" Then

Par contre j'ai enlevé la couleur de la cellule qui concerné par une valeur d'erreur, comme cela elle ne fait plus partie de ma plage.
0
sullivan95 Messages postés 20 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 1 février 2012
22 oct. 2009 à 13:28
Je te remercie j'ai trouvé pourquoi ca ne fonctionnait pas.

En fait, j'ai des cellules jaunes fusionnées donc le message s'affichait logiquement...

Bonne journée!
0