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

Résolu
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. 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
    1. 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
      1. 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. 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
      2. 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
        1. Application.EnableEvents = False
          Workbooks.Open "C:\Temp\LeClasseurQuiContientWorkbook_Open.xls"
          Application.EnableEvents = True
          0