Code exécuté differemment selon lancement par bouton ou par éditeur VBA

Mathilde

XLDnaute Nouveau
Bonjour à tous,

J'ai un problème lors de l'exécution de deux de mes macros. En effet, elles fonctionnent parfaitement lorsque je fais du pas à pas ou que je les lance via l'éditeur de macro. Seulement, lorsque je les lance avec les boutons auxquels je les ai affectées, certaines commandes ne sont plus exéctuées.

Il s'agit en particulier d'un ".ClearContents" et d'un "If.... is nothing then".

Tout le reste fonctionne correctement sur ces deux macros lorsque je les lance via le bouton, je n'ai pas constaté d'autres anomalies.

Je ne comprend pas du tout à quoi ça peut être dû, d'autant que le pas à pas fonctionnant correctement, cela rend impossible le débuggage !

J'espère que vous pourrez me donner des pistes pour résoudre ce problème.
N'hésitez pas à me demander des précisions si je n'ai pas été assez claire.

Bonne journée,

Mathilde
 

Dranreb

XLDnaute Barbatruc
Re : Code exécuté differemment selon lancement par bouton ou par éditeur VBA

Bonjour.

Et si vous les lancez avec le bouton mais après avoir mis un Stop ou un point d'arrêt au début du code ?
(Question sous entendue: y utilisez vous Selection, et que se passe-t-il quand c'est le bouton ?)
 

Mathilde

XLDnaute Nouveau
Re : Code exécuté differemment selon lancement par bouton ou par éditeur VBA

Merci beaucoup pour vos réponses !

Je n'utilise pas de sélections dans mon code. Lorsque je lance la macro avec le bouton, tout en mettant un point d'arrêt, l'erreur est toujours constatée.

Je vous met le fichier en pièce jointe.

Le bouton est dans l'onglet "MAJ" et la macro est dans le module.

Vous pouvez faire le test en lançant la macro des deux manières, elle traite la colonne C. Les résultats sont différents (couleurs uniquement), le reste est bon.

Cela vous inspire ?
 

Pièces jointes

  • Test1.xlsm
    31.1 KB · Affichages: 44
  • Test1.xlsm
    31.1 KB · Affichages: 55
  • Test1.xlsm
    31.1 KB · Affichages: 61
Dernière édition:

ERIC S

XLDnaute Barbatruc
Re : Code exécuté differemment selon lancement par bouton ou par éditeur VBA

Re

je ne sais pas si cela joue mais regarde

VersionApp = Cells(i, ColVersion).Value

à quelle feuille fais-tu référence ? quelle feuille est valide à ce moment là?

Peut-être VersionApp = wksSVL.Cells(i, ColVersion).Value
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Code exécuté differemment selon lancement par bouton ou par éditeur VBA

Bonjour à tous.


Chez moi, ça coince la-dessus :​
Code:
    SRS1 = PlagePerim.Find("SRS", lookat:=xlPart).Column
quel que soit le mode d'appel de la procédure.​


Bonne soirée.


ℝOGER2327
#7889


Mercredi 11 Merdre 142 (Saint Memnon, vidangeur - fête Suprême Quarte)
9 Prairial An CCXXIII, 6,8492h - serpolet
2015-W22-4T16:26:17Z
 

Mathilde

XLDnaute Nouveau
Re : Code exécuté differemment selon lancement par bouton ou par éditeur VBA

Merci beaucoup Eric S, c'était effectivement le problème !
Ce qui est bizarre c'est que lorsque j'effectuais du pas à pas, il identifiait bien la bonne valeur, correspondant à la bonne page.

Concernant la remarque de Roger, je ne comprend pas que d'un ordinateur à l'autre, certaines commandes ne fonctionnent pas. Pensez-vous que cela peut être lié à une différence de version de Microsoft Office ?

Quoi qu'il en soit, merci de votre aide !

Mathilde
 

ERIC S

XLDnaute Barbatruc
Re : Code exécuté differemment selon lancement par bouton ou par éditeur VBA

Bonjour Mathilde
le problème peut être qu'en mode normal (pas en pas à pas), une instruction démarre alors qu'une précédente n'est peut-être pas terminée et du coup la valeur prise en compte est erronée ---- A confirmer

je l'ai lancé sous 2010, pas vu de pb
 

Mathilde

XLDnaute Nouveau
Re : Code exécuté differemment selon lancement par bouton ou par éditeur VBA

Je viens de réfléchir à une autre explication : lorsque je fais du pas à pas, j'affiche généralement wksSVL (ma page à mettre à jour), pour voir les modifications, donc par défaut de précision, peut être que la macro prend l'onglet actif. Alors que mon bouton est placé sur l'autre onglet, qui me sert uniquement pour gérer des paramètres.
 

ROGER2327

XLDnaute Barbatruc
Re : Code exécuté differemment selon lancement par bouton ou par éditeur VBA

Re...


(...)
Concernant la remarque de Roger, je ne comprend pas que d'un ordinateur à l'autre, certaines commandes ne fonctionnent pas. Pensez-vous que cela peut être lié à une différence de version de Microsoft Office ?
(...)
Peut-être une piste ? Placez le code​
Code:
Sub Test()
Const texte$ = "SRS"
Dim c As Range, feuille As Worksheet, s(), msg$
  s = Array("""" & texte & """ dans la cellule """, "Pas de """ & texte & """ dans l'onglet """)
  For Each feuille In Worksheets
    Set c = feuille.UsedRange.Find(texte, LookAt:=xlPart)
    If c Is Nothing Then msg = s(1) & feuille.Name Else msg = s(0) & feuille.Name & "!" & c.Address(0, 0)
    MsgBox msg & """."
  Next
End Sub
dans un module standard du classeur, et exécutez Test...​


Bonne journée.


ℝOGER2327
#7890


Jeudi 12 Merdre 142 (Saintes Miches, catéchumènes - fête Suprême Quarte)
10 Prairial An CCXXIII, 4,2784h - faux
2015-W22-5T10:16:06Z
 

Mathilde

XLDnaute Nouveau
Re : Code exécuté differemment selon lancement par bouton ou par éditeur VBA

Ha oui, effectivement, c'est une erreur de ma part que je pensais avoir corrigée.
Voici la version corrigée de mes deux erreurs.

Bonne journée !
 

Pièces jointes

  • Test2.xlsm
    33.6 KB · Affichages: 34
  • Test2.xlsm
    33.6 KB · Affichages: 48
  • Test2.xlsm
    33.6 KB · Affichages: 45

ERIC S

XLDnaute Barbatruc
Re : Code exécuté differemment selon lancement par bouton ou par éditeur VBA

Re

je viens de réessayer, cela plante.
je ne comprends pas trop ce qui s'est passé hier puisque je lançais les macros aussi bien en pas à pas que normal et j'observais les différences de couleur....

J'avoue que je ne vais pas approfondir:)
 

ROGER2327

XLDnaute Barbatruc
Re : Code exécuté differemment selon lancement par bouton ou par éditeur VBA

Re...


Re

je viens de réessayer, cela plante.
(...)
Me voici rassuré !

Réessayer est toujours une bonne précaution à prendre avant de contredire qui n'a qu'essayé.


Bonne journée.


ℝOGER2327
#7892


Jeudi 12 Merdre 142 (Saintes Miches, catéchumènes - fête Suprême Quarte)
10 Prairial An CCXXIII, 5,2479h - faux
2015-W22-5T12:35:42Z
 

Discussions similaires

Réponses
11
Affichages
497

Statistiques des forums

Discussions
312 083
Messages
2 085 187
Membres
102 809
dernier inscrit
Sandrine83