Macro Excel condition

Résolu/Fermé
Signaler
Messages postés
72
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
25 octobre 2018
-
Messages postés
72
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
25 octobre 2018
-
Bonjour,

J'ai encore une petite question.
Voici 4 conditions dans laquelles je veux que m'indique les oublis de ma feuille de calcul dans des boites de dialogue.
- Si j'ai oublié certaines données, la macro s'arrête le temps que je corrige.
- S'il n'y a pas d'oubli, j'aimerai appeler une autre macro après les vérifications.
Je pense que je n'arrive pas à placer les données correctement car
- soit les boites de dialogues s'affichent mais la macro continue sans que j'ai la posibilité de corriger
- soit la macro s'arrête.
Je pense que tous les éléments sont bien présents mais dans un ordre qui n'est pas correct et je ne réussi pas à trouver comment faire.

Si quelqu'un a l'amabilité de vouloir m'aider, je l'en remercie d'avance.
Evelyne

Ci-dessous le code en question

Sub AAtest()

'Désactive l'affichage de l'écran
Application.ScreenUpdating = False
'Sélectionne la feuille "Saisie 11-12"
Sheets("Saisie 11-12").Select

'Voir macro ControleValidation : vérifie la validation
Dim T As Range
For Each T In Range("C6:C11")
If T.Value <> "" And T.Offset(0, 2) = "" Then
MsgBox "Activité à valider ?"
Exit For
End If
Next T

'Voir macro ControleTypePaiement : vérifie le type de paiement
Dim C As Range
For Each C In Range("E16:E25")
If UCase(C) = "X" And C.Offset(0, 1) = "" Then
MsgBox "Saisir le type de paiement"
Exit For
End If
Next C

'Vérifie les initiales ACCUEIL, et...
If [B1] = "" Then
MsgBox "Sélectionner en B1 les initiales accueil"
[B1].Select

Else

'...vérifie l'adhésion :
'Si la cellule G13 est vide ==> boite de dialogue et sélectionne la cellule G13 et quitte la procédure
If [G13] = "" Then MsgBox "Saisir le nombre de carte d'adhésion"
[G13].Select
Exit Sub 'End if, en bas de la procédure arrête la condition G13

End If

'Fin de la condition initiales ACCUEIL et Adhésion

Call Ventilation

'Active le raffraichissement de l'écran
Application.ScreenUpdating = True

End Sub
Désolée pour les commentaires mais ça m'aide à mieux comprendre ce que je fais

3 réponses

Messages postés
15469
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
12 novembre 2014
2 894
Bonjour.


Personnellement, je préfère ça:

Sub Saisie_Controler()
'
' Macro enregistrée le 02/07/2011 par 10 - MICHEL
'
Range("C6").Select

For MonCompteur = 1 To 6
If ActiveCell.Value = "" And ActiveCell.Offset(0, 2).Value = "" Then
ActiveCell.Offset(0, 3).Value = "<= Donnée manquante"
Exit Sub
Else
ActiveCell.Offset(0, 3).Value = ""
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub


On sort de la macro dès qu'elle rencontre une cellule vide.
Plus un petit message.

On saisie la donnée manquante.

Et bien entendu, on relance la macro pour revérifier.

"Désolée pour les commentaires"
Non, non, c'est très bien, et même indispensable pour s'y retrouver.
Surtout si on on est pas l'auteur de macro.


Cordialement.
Messages postés
72
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
25 octobre 2018

Bonsoir,
Merci de ta réponse.
Cependant, je n'arrive pas à adapter à mes besoins car j'ai des conditions doubles, pour C6 je réussit mais pas pour E16.
je vais continuer de chercher.
En attentant, merci pour ton aide
Evelyne
Messages postés
72
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
25 octobre 2018

Merci antipolis a,

J'ai trouvé une solution et te remercie de ton attention.
Evelyne