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

Résolu/Fermé
_gfv Messages postés 14 Date d'inscription lundi 10 janvier 2011 Statut Membre Dernière intervention 24 mars 2011 - 24 mars 2011 à 07:25
 MAt - 28 nov. 2012 à 11:16
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





A voir également:

5 réponses

g Messages postés 1262 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 15 mai 2017 572
24 mars 2011 à 08:09
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
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
24 mars 2011 à 08:43
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
_gfv Messages postés 14 Date d'inscription lundi 10 janvier 2011 Statut Membre Dernière intervention 24 mars 2011
24 mars 2011 à 08:10
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
0
g Messages postés 1262 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 15 mai 2017 572
24 mars 2011 à 08:27
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 ?
0
_gfv Messages postés 14 Date d'inscription lundi 10 janvier 2011 Statut Membre Dernière intervention 24 mars 2011
24 mars 2011 à 10:28
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Application.EnableEvents = False
Workbooks.Open "C:\Temp\LeClasseurQuiContientWorkbook_Open.xls"
Application.EnableEvents = True
0