Hello,
J'ai dans une programme VBA une ligne qui ne s'exécute pas, alors que si j'exécute en "pas à pas" elle est prise en compte!
Merci si vous avez une explication ….et une solution à ce mystère.
Hello,
J'ai dans une programme VBA une ligne qui ne s'exécute pas, alors que si j'exécute en "pas à pas" elle est prise en compte!
Merci si vous avez une explication ….et une solution à ce mystère.
Bonjour,
Toutes nos boules de cristal sont confinées, essaies de mettre un grand miroir connecté face à ton écran pour qu'on puisse voir à quoi ressemble ta macro.
Si tu n'as pas de miroir connecté, publies le code de la macro dans ton prochain post (en indiquant quelle ligne ne s'exécute pas).
Merci Patrick,
Ci-joint
Je veux ouvrir le classeur2 par une macro qui se trouve dans classeur1 (si classeur2 n'est pas déjà ouvert)
Classeur1 et classeur2 dans le même répertoire
Je veux revenir à classeur1 après ouverture de classeur2.
Avec le programme ci-joint pas de problème ça marche.
Mais avec mes fichiers réels ça ne marche pas. Je ne reviens pas à classeur1.
Ce n'est pas semble-t-il un problème de programme mais de fichier (trop gros, trop de macros)? de synchro ? d'excel ?
merci à ceux qui auraient déjà rencontré ce type de problème ou qui auraient des idées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Workbooks("Classeur2.xlsm").Activate If Err.Number <> 0 Then chemin = ActiveWorkbook.Path Workbooks.Open chemin & "\Classeur2.xlsm" End If On Error GoTo 0 Workbooks("Classeur1").Activate
Quand tu publies un code, il faut utiliser le bouton # pour le baliser :
démonstration de l'utilisation du bouton code (#)
Ton code est partiel, il faut la totalité du code qui pose problème (pas d'un exemple).
Merci Patrice,
Le code ne vous apprendra rien puisqu'il fonctionne dans la casi totalité des cas ! Et toujours quand il est exécuté pas a pas.
Son principe est donc OK.
Dans le cas qui m'occupe avec des fichiers dont je me sers, il ne fonctionne pas.
Ma question s'adresse donc à des développeurs qui auraient déjà rencontre ce type d'anomalie explicable (? peut être) par d'autres raisons que le code. Mémoire ? Machine, Excel ? Tempo
Bonjour
En fait ma question plus générale est "Comment expliquer qu'un programme fonctionne en pas a pas et ne fonctionne pas s'il s'execute en continu.
Merci pour vos infos
Merci Patrice pour cette piste.
Je vais me renseigner sur le multithread
Je l'aurais ecrit comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Option Explicit Sub Bilan_PP() Dim wbkMaster As Workbook Dim wbkOpen As Workbook Set wbkMaster = ActiveWorkbook 'Verif ouverture fichier a traiter On Error Resume Next Set wbkOpen = Workbooks("OPeration_PP.xlsm") On Error GoTo 0 If wbkOpen Is Nothing Then 'Si fichier a traiter non encore ouvert On Error Resume Next Set wbkOpen = Workbooks.Open(wbkMaster.Path & "\OPeration_PP.xlsm") On Error GoTo 0 If wbkOpen Is Nothing Then Err.Raise 53 End If 'reactive fichier mster_fich wbkMaster.Activate End Sub
Merci Patrice
C'est écrit dans une langue (langage) plus académique
Le traitement de err 53 semble avoir été oublié.
Bien cordialement
Patrice,
J'abuse une dernière fois de tes compétences.
Comment fais tu pour te passer des "On error" en particulier de celui de la ligne 7.
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Option Explicit Sub Bilan_PP() Dim wbkMaster As Workbook Dim wbkOpen As Workbook Dim wbk As Workbook Dim ouvert As Boolean Dim nomComplet As String Set wbkMaster = ActiveWorkbook 'Verif ouverture fichier a traiter For Each wbk In Workbooks If wbk.Name = "OPeration_PP.xlsm" Then ouvert = True Next wbk If Not ouvert Then nomComplet = wbkMaster.Path & "\OPeration_PP.xlsm" 'Si fichier a traiter non encore ouvert If Dir(nomComplet) <> "" Then Set wbkOpen = Workbooks.Open(nomComplet) Else MsgBox "Fichier introuvable : " & vbCrLf & nomComplet, vbCritical End If End If 'reactive fichier mster_fich wbkMaster.Activate End Sub
Partager