Excel VBA Code pour ne pas éxécuter la macro

[Résolu/Fermé]
Signaler
Messages postés
14
Date d'inscription
lundi 10 janvier 2011
Statut
Membre
Dernière intervention
24 mars 2011
-
 MAt -
Bonjour à tous,

Dans une macro, je suis amené à ne pas "lancer" la macro si une condition n'est pas remplie.
Je suis donc à la recherche d'un code pour ne pas que la suite s'exécute...je ne sais pas si je suis très clair, vous pouvez me questionner :)

merci pour votre aide, cela fait 2 jours que je galère !!

gfv





5 réponses

Messages postés
1263
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
15 mai 2017
573
Bonjour,

If, Then, Else....

Mais sans ton code et ta condition ce ne va pas être facile d'être plus précis.

Bonne journée.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
17601
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 octobre 2021
4 785
Salut,

Il suffit de mettre une conditionnelle si en VBA IF

Si tu en dis plus sur ta conditionnelle on pourra t'écrire un code
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
14
Date d'inscription
lundi 10 janvier 2011
Statut
Membre
Dernière intervention
24 mars 2011

bonjour g, voici mon code :

Sub Macro4()

Const plage = "A8:BC16"
Dim li As Long, nbli As Long
nbli = Range(plage).Rows.Count
Selection.Offset(0, 0).Select
For li = 1 To nbli
ActiveCell.EntireRow.Insert
Next li
Range(plage).Copy
ActiveSheet.Paste

plage2 = "J12:U12"
Range(plage2).Copy
Selection.Offset(13, 9).Select
ActiveSheet.Paste


End Sub


gfv
Messages postés
1263
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
15 mai 2017
573
Je suppose que la suite qui ne doit pas s'exécuter est

plage2 = "J12:U12"
Range(plage2).Copy
Selection.Offset(13, 9).Select
ActiveSheet.Paste

mais à quelle condition ?
Messages postés
14
Date d'inscription
lundi 10 janvier 2011
Statut
Membre
Dernière intervention
24 mars 2011

en effet, j'ai trouvé...le problème que j'avais est résolu avec une condition If Then Else.

J'ai calé après le If ma condition, après le Then je lance une Box avec le petit message qui va bien, et après le Else je lance le code plus haut et le tour est joué !

Je vous remercie pour votre aide qui m'est précieuse.

Si quelqu'un veux le code complet :

ligne = ActiveCell.Row
col = ActiveCell.Column 'définition de la cellule active

If Cells(ligne, 37) = "XXX" Then
Application.Run ("boite") 'affiche une box si l'insertion n'est pas au bon endroit et n'exécute pas l'insertion

Else
Const plage = "A8:BC16"
Dim li As Long, nbli As Long
nbli = Range(plage).Rows.Count
Selection.Offset(0, 0).Select
For li = 1 To nbli
ActiveCell.EntireRow.Insert
Next li
Range(plage).Copy
ActiveSheet.Paste 'copier et insertion des cellules de la plage définie

plage2 = "J12:U12"
Range(plage2).Copy
Selection.Offset(13, 9).Select
ActiveSheet.Paste 'copier et coller des cellules de la plage(2) définie - pour les formules

End If


voilà, voilà :)

gfv
Application.EnableEvents = False
Workbooks.Open "C:\Temp\LeClasseurQuiContientWorkbook_Open.xls"
Application.EnableEvents = True