Souci VBA

Résolu
Bonjour,

J'ai un soucie avec VBA, aufaite j'ai une macro qui ouvre 2 onglets à la fois en fonction d'une liste de chiffre et j'aimerais faire que si l'un des chiffres venaient à manquer que la macro puisse éxécuter les suivante tout simplement.

Cordialment

1 réponse

  1. Modérateur
    Bonjour,

    Pour te répondre ... il faudrait que tu nous montres ton code.

    NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
    Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
    1. Voici le code en question

      Sub TEST1()
      '
      ' TEST1 Macro
      '

      Application.Run "'ProjetsIII.xlsm'!automatisation"
      Application.Run "'ProjetsIII.xlsm'!NomsOnglets"

      Sheets("P.994").Select
      Range("B8").Select
      ActiveCell.FormulaR1C1 = _
      "=SUMIFS('Actualisation des PFR'!C[89],'Actualisation des III'!C[35],""P.994"",'Actualisation des III'!C[1],""CA "")"

      Sheets("P.999").Select
      ActiveWindow.SmallScroll Down:=-12
      Range("B8").Select
      Range("D18").Select
      ActiveCell.FormulaR1C1 = "=R[-4]C+R[-2]C"
      Range("D19").Select

      End Sub
    2. Bonjour,
      Ces macros sont faites en fonction d'une liste nottament dans lequel on retrouve les projets P.994 et P.999.
      Mon probléme est de pouvoir faire que si P.994 n'est pas dans la liste ou a un souci pour ouvrir que le P.999 s'ouvre sans dificulter et vise versa.

      merci
    3. Modérateur
      Bonjour,

      - Je t'avais demandé d'utiliser les BALISES DE CODE pour poster ton code sur le forum ....

      Ensuite... il ne faut pas voir que le "chiffre" n'existe pas... mais plutot vérifier si la FEUILLE existe ou non.
      Pour ça.. tu peux utiliser une fonction comme celle la :
      Function FExist(NomF As String) As Boolean ' test si la feuille existe
      Application.ScreenUpdating = False
      On Error Resume Next
      FExist = Not Sheets(NomF) Is Nothing
      Application.ScreenUpdating = True
      End Function 
      


      Puis dans ton code
      IF FExist("P.994") THEN
       ' le code pour cette feuille
      
      END IF
      
      IF FExist("P.999") THEN
       ' le code pour cette feuille
      
      END IF
      


      NB : Evite de laisser les SELECT et les scrlolldown ....
      Par exemple tes lignes de code :
      Sheets("P.999").Select
      ActiveWindow.SmallScroll Down:=-12
      Range("B8").Select
      Range("D18").Select
      ActiveCell.FormulaR1C1 = "=R[-4]C+R[-2]C"
      Range("D19").Select 
      

      Peuvent plus simplement s'écrire :
      Sheets("P.999").Range("D18").FormulaR1C1 = "=R[-4]C+R[-2]C"
      
    4. @jordane45Bonjour
      ahh... vraiment merci je prends bonne note de tes conseils ( pour les select et scrlolldown..)
      ma macro fontionne correctement maintenant.

      merci