Range("A1,A3,A5...") ne marche plus

Bonjour,

J'ai un problème depuis quelque heures qui me rend plutôt perplexe.

J'utilise dans un document excel plusieurs macro de type set maFeuille.Range("A1,B50,G56,H85"). Cela me permet de récupérer une liste de cellules pour les protéger par exemple ou changer leur format sans avoir à les appeler une à une.

Jusqu'à présent ces macros marchaient et se compilaient très bien mais depuis peu et ce sans aucune modification des macros, je ne peux plus les compiler.

De plus, j'avais associé des boutons à ces macros et si je les appelle via ces boutons, les macros fonctionnent parfaitement !

D'autres macro ne se compilent également plus comme par exemple une macro qui utilise : .Rows("4:12").EntireRow.Hidden = True

J'avoue ne pas trop comprendre d'où vient ce problème, si cela vient de mon fichier ou d'un paramètre de compilation que je n'ai pas saisi peut être.

Merci d'avance à l'attention portée à mon problème,

Tarmak

Voici un petit exemple de macro qui fonctionnait parfaitement jusqu'à peu et qui ne se compile plus :

Sub exemple()
Dim rng As Range

Feuil1.unprotect "mdp"

Set rng = Feuil1.Range("A1,G25,J45")
rng.Locked = True

Feuil1.protect "mdp"
End Sub

bonjour,

il n'y a pas d'erreur de compilation avec ce code. Le problème vient donc de ton fichier, que tu ne nous as pas mis ou de ton excel.

Bonjour,

Merci de ta réponse !

Voici un fichier exemple dont la macro ne se compile pas :

image

Mais qui marche si j'utilise le bouton "Lock abc" que j'ai placé sur la feuille et à qui j'ai affecté la macro.

Le fichier exemple :

7exemple.xlsm (17.20 Ko)

re-bonjour,

pas de problème avec ce fichier quelle que soit la manière dont on exécute les macros, pas de problème de compilation non plus. essaie en arrêtant et redémarrant excel voire windows. tu peux aussi essayer de sauver ton fichier sous un autre nom, fermer excel et relancer excel et ouvrir le fichier copié

Bonjour,

J'avais regardé votre souci avant que H2s04 ne vous réponde. Là je confirme ce que H2so4 dit. Pas de soucis de fonctionnement.

De plus, j'avais associé des boutons à ces macros et si je les appelle via ces boutons, les macros fonctionnent parfaitement !

Mais qui marche si j'utilise le bouton "Lock abc" que j'ai placé sur la feuille et à qui j'ai affecté la macro.

A la lecture de ceci de vos deux posts, je ne suis pas sûr que l'on a bien compris le souci puisque tout fonctionne chez vous et chez nous avec des boutons

D'où la question de savoir comment vous exécutez la macro exemple et d'expliquer ce que vous entendez par "compilation"

Bonjour,

Un redémarrage windows à réglé le problème, j'avais déjà essayer de redémarrer excel sans succès.

Quand je parlais de compilation je parlais de ce bouton là je ne sais pas si cela a un autre nom en vba?

image

Merci à vous pour l'aide apporté !

Quand je parlais de compilation je parlais de ce bouton là je ne sais pas si cela a un autre nom en vba?

Oui --> exécuter

Un redémarrage windows à réglé le problème,

Cordialement

Bonjour toute l'équipe,

Je suppose que tu peux avoir sur-simplifié ton exemple en nous proposant cette feuille.
Une question : est-ce bien la feuille active ?
Tu peux vérifier en glissant un MsgBox ActiveSheet.Name juste avant le Set.

Bonjour,

L'exemple que j'ai montré n'avait qu'une seule feuille et engendrait malgré tout une erreur si j'appuyais sur le bouton exécuter (comme sur la capture d'écran un peu plus haut). Cette erreur ne se provoquait pas si j'utilisais un bouton "Lock abc" que j'avais créé sur la feuille auquel j'avais affecté la macro :

image

De plus dans ma macro originale qui est un peu plus conséquente j'avais bien pris soin de spécifier la feuille et j'avais rajouter un .Activate au cas où.

Pour le coup l'erreur était seulement provoquée quand j'essayais d'exécuter la macro via le bouton d'exécution. Quand je l'exécutais sur ma feuille en utilisant "Lock abc" ou par SelectionChange la macro fonctionnait.

Après redémarrage windows les deux macros (l'originale et l'exemple) fonctionnaient parfaitement quand j'utilisais l'éxecution.

Comme quoi parfois il vaut mieux tout redémarrer que de se prendre la tête sur un problème irrésolvable.

Rechercher des sujets similaires à "range marche"