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

Résolu
_gfv Messages postés 14 Statut Membre -  
 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

  1. g Messages postés 1285 Statut Membre 578
     
    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
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  3. _gfv Messages postés 14 Statut Membre
     
    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
    1. g Messages postés 1285 Statut Membre 578
       
      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
  4. _gfv Messages postés 14 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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