Contrôler si présence de cellules vides

[Résolu]
Signaler
Messages postés
20
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
1 février 2012
-
Messages postés
20
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
1 février 2012
-
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

Messages postés
181
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
4 février 2011

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
Messages postés
181
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
4 février 2011

Hello,
Tu peux essayer ceci:
If cl.Interior.ColorIndex 27 And cl.value "" Then...

BR
USERRRQI115
Simple user
Great brain
Messages postés
20
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
1 février 2012

Il m'affiche un message d'erreur : 13 incompatibilité de type
Messages postés
20
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
1 février 2012

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
Messages postés
20
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
1 février 2012

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.
Messages postés
20
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
1 février 2012

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!