Stopper Macro si toutes les cellules ne sont pas remplies !

hellocarioca

XLDnaute Occasionnel
Bonjour Forum,

j'ai une macro qui me permet de sauver une ligne de cellules vers une autre page. Qd la personne click sur le bouton "Sauvegarde" un message s'affiche disant:"Merci de vérifier si toutes les cellules ont bien été remplie
Voulez-vous Sauvegarder maintenant?"

Et meme si toutes les cellules ne sont pas remplies, la ligne peut être sauvée...
Je voulais donc savoir s'il était possible de bloquer la macro si toutes les cellules ne sont pas remplies en affichant un message: "Une ou plusieurs cellules sont vides, merci de bien vouloir les remplir!"

Merci bcp

Maud
 

Sly le globe trotter

XLDnaute Occasionnel
Re : Stopper Macro si toutes les cellules ne sont pas remplies !

Bonjour,

Une des solutions pourrait être d'utiliser l'équivalent de la fonction nb d'Excel. Si tu connais par défaut la taille de ta plage, tu es en mesure de déterminer le nombre de cellules de ta plage.
En comparant le nombre de cellules avec le résultat renvoyé par la fonction nb, tu seras en mesure de savoir si toutes tes cellules sont remplies ou non.

Sylvain
 

hellocarioca

XLDnaute Occasionnel
Re : Stopper Macro si toutes les cellules ne sont pas remplies !

Bonjour Sylvain,

merci pour ta réponse, mais je ne suis pas vraiment douée pour tout ce qui est d'écrire une macro.
Est ce que tu pourrais me donner les application qu'il faut choisir et comment je peux l'incorporer à ma macro qui ressemble à ça?:

' MacroSave Macro
'
' avertissement
Dim Msg, Style, Title, Response, MyString

' affichage du message

Msg = " WARNING !" & _
vbCrLf & " " & _
vbCrLf & " DATA IS GOING TO BE SAVED" & _
vbCrLf & "PLEASE BE SURE THAT ALL THE FIELDS HAVE BEEN POPULATED CORRECTLY" & _
vbCrLf & "-----------------------------------------------------------------------------------------" & _
vbCrLf & " DO YOU WANT TO SAVE NOW ?"

Style = vbYesNo + vbDefaultButton1
Title = "confirmation"
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then
MyString = "Yes"
Else
MyString = "No"
End
End If

Application.ScreenUpdating = False

'envoi vers relevé sauvegarde des données

'
ligne = 0
ligne_vide = False
Do While ligne_vide = False
ligne = ligne + 1
coord_cellule = "C" + Format(ligne)
If Worksheets("Dispute_DB").Range(coord_cellule).Value = "" Then
ligne_vide = True
Worksheets("Dispute_DB").Range(coord_cellule).Value = Worksheets("data").TextBox1.Value
End If
Loop


Merci bcp

Maud
 

Discussions similaires

Statistiques des forums

Discussions
312 398
Messages
2 088 076
Membres
103 700
dernier inscrit
amin Saadaoui