Souci VBA

Résolu/Fermé
gilles8888 - Modifié le 23 juin 2017 à 18:03
 Gilles8888 - 26 juin 2017 à 11:13
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

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
23 juin 2017 à 18:18
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
0
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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié le 26 juin 2017 à 09:57
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
Gilles8888 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
26 juin 2017 à 11:13
Bonjour
ahh... vraiment merci je prends bonne note de tes conseils ( pour les select et scrlolldown..)
ma macro fontionne correctement maintenant.

merci
0