Souci VBA

Résolu
gilles8888 -  
 Gilles8888 -
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. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
    1. Gilles8888
       
      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
      0
    2. Gilles8888
       
      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
      0
    3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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"
      
      0
      1. Gilles8888 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Bonjour
        ahh... vraiment merci je prends bonne note de tes conseils ( pour les select et scrlolldown..)
        ma macro fontionne correctement maintenant.

        merci
        0