Macro Excel ne fonctionne plus après re installation de Office 2007

J'ai la meme application à base de macros qui fonctionne sans problème sur plusieurs pc (windows 10, Office 2007, que je conserve toujours, pour qq raisons).

J'ai du réinstaller Office 2007 sur l'un d'eux, avec une nouvelle licence, mais ma macro ne fonctionne plus,

malgré avoir paramétré Office exactement comme sur les autres pc ( sécurité macros, reférences dans vba, etc...).

Pour simplifier , j'écris la macro

a=2

a=a*2

et je lance en pas à pas : rien ne se passe, je ne vois pas le curseur sur la 1ere instruction.Pourquoi?

je suis sur que c'est très simple mais je ne trouve pas . quelles st les raisons possibles?

Bonjour,

et je lance en pas à pas : rien ne se passe, je ne vois pas le curseur sur la 1ere instruction.Pourquoi?

Quand vous écrivez "curseur", vous voulez dire le curseur de la souris ?
Est-ce que le mode pas à pas colorie bien en jaune les lignes de code ?

Crdlt

c'est çà, je ne vois le marqueur jaune habituel.

c'est çà, je ne vois le marqueur jaune habituel.

sans votre fichier ou la macro...
Essayez ceci :
- Fermer toutes les applications ouvertes pour ne conserver que le fichier Excel à vérifier.
- Allez dans l'éditeur Visual Basic
- veillez à voir le fichier Excel ET l'éditeur Visual Basic
- Placer le curseur sur la 1iere lignede la procédure à vérifier et faire F8 pour exécuter le code

c'est ce que je fait pour constater le pb:

rien ne se passe si ce n'est l'affichage , pendant1 seconde ou 2 de

"exécution en cours",

suivi de la disparition d'excel.

J'ajoute que je peux me mettre en mode création, insérer sur la feuille un bouton de commande(controle activex),

lui associer une routine se résumant à une instruction , par exemple a=2,

et exécuter en cliquant sur le bouton,

il se produira exactement la meme chose.

rien ne se passe si ce n'est l'affichage , pendant1 seconde ou 2 de "exécution en cours",
suivi de la disparition d'excel.

Dans l'éditeur VBA, allez dans Thisworkbook (ou ailleurs dans votre projet) et vérifier toujours que vous n'avez pas une instruction -->

Application.Visible = False

insérer sur la feuille un bouton de commande(controle activex), lui associer une routine se résumant à une instruction , par exemple a=2,

Mais là que voulez-vous qu'excel comprenne avec a=2. Pour excel, il s'agit d'une variable placé en mémoire.
Quel est le code que vous avez ?

Bonjour Sandoz et Bonjour Dan.

Je suis d'accord avec Dan pour la ligne instruction. Difficile de savoir si excel a lu quelque chose avec cette ligne.

Une ligne plus visuelle serait préférable pour tester exemple :

Msgbox "Test de lecture"

peu importe que j'écrive

a=2

a=a

ou

msgbox " xxx"

je ne vois aucune exécution de ces instructions, car la trace jaune du pas à pas n'apparait pas.

Mais là que voulez-vous qu'excel comprenne avec a=2. ???

excel/vba comprend qu' il faut assigner 2 à la variable "a" , déclarée ou pas,

et l'exécution de" Msgbox a" affichera la valeur 2

Bonjour,

Lorsque vous reprenez dans votre post une citation, utilisez l'icone " " dans la barre de menu plutôt que d'utiliser les guillemets.
J'ai corrigé sur votre post.

excel/vba comprend qu' il faut assigner 2 à la variable "a" , déclarée ou pas,
et l'exécution de" Msgbox a" affichera la valeur 2

Ben oui. Cela je sais.

Vérifiez ceci pour votre surlignage jaune
- allez dans l'éditeur VBA
- dans le menu Outils, choisir Options--> onglet "format de l'éditeur"
- sélectionnez "Texte du"point d'exécution"
Vous devriez voir le choix de couleur jaune dans les rubriques "arrière plan" et "indicateur"

je resume le problème , que j'ai cerné un peu plus:

pourquoi le code :

option explicit

sub test

dim a

a=2*2

end test

s'execute bien dans Excel365 et Excel2007, quand il est écrit dans un module,

mais seulement dans Excel365 quand il est écrit dans une feuille ?

il ne s'execute pas Excel 2007, c'est à dire que le lancement en pas à pas avec F8 ne fait rien bouger, mais plante Excel au bout de qq secondes

Lorsque vous postez un code pensez à utiliser les balises de code disponibles dans le menu en cliquant sur l'icone </> dans la barre de menu.
C'est plus facile à lire pour celui qui vous répond
J'ai corrigé dans votre post


Votre code est erroné. Il vous manque les parenthèses et la fin n'est pas End test mais bien End sub

Essayez plutôt ceci :

option explicit
sub test()
dim a
a=2*2
End SUB

La version excel n'est pas concernée. Ce code peut s'exécuter avec dans les versions excel précédentes à 2007

Le code peut s'exécuter dans une feuille ou un module mais placez plutôt dans un module.
De base oubliez de placer ce code dans une feuille. Les codes dans les feuilles sont plutôt consacrés aux codes événementiels.

Private Sub CommandButton1_Click()
    Dim a
    a = 2 * 2
End Sub

c'est bien le meme code que j'ai utilisé ( il n' y a que le nom de la sub qui change)

mes macros st écrites dans une feuille par ce qu'elles st lancées à partir d'un control activex qui s'installe sur une feuille quand on en a besoin et un double click dessus crée la structure de la sub, dans laquelle j'ai mis mon code. (exemple simplifié ci-dessus)

lorsque, ayant re installé Excel 2007 sur une machine( que j'ai meme réinitialisé pour réduire d'éventuels pb d'environnement), je lance cette macro en cliquant sur le control, rien ne se passe, et pas davantage en pas à pas avec F8; à la place Excel se plante.

Alors que la meme manip avec Excel 365 ( déjà installé sur la meme machine) fonctionne .

pendant des années ce code a fonctionné avec excel 2007 sur plusieurs machines. récemment j'ai du changé de machines et donc réinstallé cette meme version 2007: c'est à ce moment qu'il est arrivé que, parfois, excel plante . Le code n'y est pour rien , plutot l'environnement mais quoi exactement? la meme sub fonctionnant en revanche si elle est installée dans un module, alors montrez moi comment la lancer à partir d'un controle.

.....lancées à partir d'un control activex qui s'installe sur une feuille quand on en a besoin et un double click dessus crée la structure de la sub, dans laquelle j'ai mis mon code. (exemple simplifié ci-dessus)

c'est peut être l'installation de votre controle activex qui pose souci ou si je comprends les lignes de codes la mise en place des lignes de code qui sont créées à partir du double clic ?

Le code n'y est pour rien , plutot l'environnement mais quoi exactement?

Là mystère pour moi aussi..

la meme sub fonctionnant en revanche si elle est installée dans un module, alors montrez moi comment la lancer à partir d'un controle.

Votre contrôle correspond à quoi ? un bouton ?

J'ai re initialisé un pc/tour non utilisé depuis 4 ans puis y ai installé (clé+activation)un office famille et etudiant de 2007 déjà utilisé l'année derniere sur un portable.

J' ai seulement ajouté la fonction Développement dans le menu et activé les macros dans les options d'excel: mes macros se st remises à fonctionner comme d'habitude.

Pas moyen de savoir si c'est du à cette version d'excel ou à l'environnement du pc.Je trouverai peut-etre plus tard en essayant different cas de figure.

merçi pour l'aide.

Pas moyen de savoir si c'est du à cette version d'excel ou à l'environnement du pc.Je trouverai peut-etre plus tard en essayant different cas de figure.

Peut être oui, mais lorsque l'on s'attaque à de la programmation, le mieux serait de comprendre ce qu'excel voit en cours d'exécution.. et là mystère souvent...
Sinon peut-être que la clé se trouvait dans le centre de gestion de confidentialité ou le clavier ou encore une version 2007 installée par dessus une ancienne version excel ?

Bon si cela fonctionne autant oublier sans quoi on risque parfois de passer à l'essentiel

Cordialement

J'ai acheté hier plusieurs exemplaires d'excel 2007 sur ebay pour un prix dérisoire, bien décidé à retrouver sur tous mes pc la version 2007 d'excel.

Lors de la 1ere installation (avec cle de licence et activation) sur un pc comportant déjà Office 365, j' ai commencé par avoir , en lançant Excel, l'erreur

"erreur de compilation dans le module caché:mdlReg4x64", rencontré si souvent et suivi à chaque d'un plantage d'excel.

J'ai continué malgré tout, pour voir, et surprise, ça a marché! Les macros fonctionnent de nouveau.

Sinon votre message "erreur de compilation dans le module caché:mdlReg4x64", me fait penser à un problème version 32bits sur PC64 bit
Peut être une correction à faire dans la base des registres mais là cela me dépasse un peu...

Quelques idées :
1. lorsque la fenêtre de l'éditeur de code est ouverte (VBA), allez dans outils / références --> Vérifiez que dans la fenêtre vous n'avez pas des termes marqués "MANQUANTS". Si oui, décochez-les

2. Sur excel 2007, il me semble qu'il y avait plusieurs versions si je me rappelle (c'est vieux çà...) genre pack 1, 2....

3. Voir si vous n'avez pas des ADD-INS qu'il faudrait supprimer (menu developpeur --> Compléments)

Si terminé pensez à

voilà 3 idées interessantes à creuser.

concernant la 2ième effectivement, qqn sur stack overflow m' a suggéré d'aller voir du coté d'Excel 2007 service Pack 3

Bonjour

Ce qui est curieux c'est que tu aies réussi à activer : les serveurs Microsoft n'activent plus les anciennes versions jusqu'à 2013 voir 2016 il me semble

Rechercher des sujets similaires à "macro fonctionne installation office 2007"