En fonction d'une valeur, la macro s'arrête (avec une action) ou continue

Sofhy

XLDnaute Occasionnel
Bonjour à tous,

J'ai un petit problème sur une macro, et je pense n'avoir pas mis les arguments nécessaires.

Je vous joins mon fichier en exemple, et je vous détaille mon code ici avec mes commentaires en bleu :

Code:
Sub Ma_Macro()
'Recherche les modèles correspondant
    Range("G1").FormulaR1C1 = "Modèle"
    Columns("G:G").Select
    Selection.NumberFormat = "General"
    Range("G2").FormulaLocal = "=SI(ESTERREUR(RECHERCHEV(D2;Criteres!A:B;2;FAUX));Mod_a_creer;RECHERCHEV(D2;Criteres!A:B;2;FAUX))"
    Range("G2").AutoFill Destination:=Range("G2:G" & Range("A65536").End(xlUp).Row)
'Compte le nombre d'élément et le nombre de modèle trouvé afin de vérifier que tous les modèles soient renseignés
    Range("G1").End(xlDown).Offset(1, 0).FormulaLocal = "=NB.SI(G2:G" & Range("A65536").End(xlUp).Row & ";Mod_a_creer)"
'Mettre les modèles non créés en rouge
    Range("G1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
        Formula1:="=""Modèle à créer"""
    Selection.FormatConditions(1).Interior.ColorIndex = 3
'indiquer à l'utilisateur que tous les modèles doivent être créés
[COLOR="Blue"][B]Jusqu'ici, tout fonctionne[/B][/COLOR]
    Dim Nb As String
    Nb = Range("G1").End(xlDown).Value 
[COLOR="Blue"][B]Si Nb >0 alors 1 - MsgBox   2 - Arrêt de la macro  
3 - supprimer la valeur Nb, soit le contenu de la dernière cellule de la
colonne G [/B][/COLOR]
   If Nb > 0 Then MsgBox "Attention!!! Vous devez créer les " & Nb & " couleurs manquantes"
    If Nb > 0 Then Exit Sub [COLOR="Blue"][B]Ca fonctionne jusqu'ici[/B][/COLOR]
    If Nb > 0 Then Range("G1").End(xlDown).Clear [COLOR="Blue"][B]Mais cet argument ne marche pas[/B][/COLOR]
Range("F2") = "toto"
[COLOR="Blue"][B]Toto, c'était juste pour vérifier que si Nb<0
alors la macro continuait. C'est le cas[/B][/COLOR]
End Sub

Merci par avance pour votre aide,
Sofhy
 

Pièces jointes

  • MsgBox.xls
    34 KB · Affichages: 55
  • MsgBox.xls
    34 KB · Affichages: 56
  • MsgBox.xls
    34 KB · Affichages: 55

Pierrot93

XLDnaute Barbatruc
Re : En fonction d'une valeur, la macro s'arrête (avec une action) ou continue

Bonjour Sophy,

A priori tu sors de la procédure, donc l'instruction suivante n'est pas exécutée....

Code:
If Nb > 0 Then Exit Sub 'Ca fonctionne jusqu'ici
    If Nb > 0 Then Range("G1").End(xlDown).Clear 'Mais cet argument ne marche pas

Enfin me semble t-il, mais pas forcément tout compris...

bon après midi
@+
 

Sofhy

XLDnaute Occasionnel
Re : En fonction d'une valeur, la macro s'arrête (avec une action) ou continue

Bonjour Pierrot93 et tototiti2008,

Effectivement, maintenant que vous le dites, ça me parait plus que logique. Mais bon, le Vba, je suis en plein apprentissage. :eek:

Auriez-vous une solution, car si je mets le "Then Range("G1").End(xlDown).Clear"
Du coup le "If Nb > 0 Then Exit Sub" ne fonctionnera plus puisque la valeur Nb aura disparue.

En fait, je tiens à supprimer la valeur Nb car lorsque l'utilisateur aura rempli les couleurs manquantes, il va relancer la macro. Et dans l'état, les "NbVal" vont se succéder à la fin de ma colonne G.

Sofhy
 

tototiti2008

XLDnaute Barbatruc
Re : En fonction d'une valeur, la macro s'arrête (avec une action) ou continue

Re,

Nb est une variable qui a récupéré la valeur de ta dernière cellule en colonne G à un instant t
après ça, tu peux modifier la valeur en colonne G, la vider... tout ce que tu veux, ça n'affectera pas la valeur de Nb
 

Discussions similaires

Statistiques des forums

Discussions
312 295
Messages
2 086 960
Membres
103 407
dernier inscrit
elliott.joliman@bforbank.