Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[2007] plantage de la plupart de mes xlsm

22 réponses
Avatar
L.MAITRE
Bonjour

tout fonctionnaient parfaitement sous Office XP ou 2003

Maisdepuis mon passage à Excel 2007, quelques semaines d'utilisation plutôt
PLUS que moins sans problème...et quelques modifications,

La plupart de mes 170 classeurs similaires .xlsm plantent si j'active les
macros...
Tous font référence à 1 classeur xla dans lequel ce trouvent mes macros...

(j'avais essayé avec un xlam (2007) ) mais çà plantais completement je suis
donc revenu à mon xla ( XP 2003)... )


soient dès l'ouverture
soient à la 1ère modification de cellule

"Excel à rencontré un problème...."

....

des idées ?

merci d'avance

PS : toutes les mises à jour XP et Offices sont faites

Louis

10 réponses

1 2 3
Avatar
L.MAITRE
"MichDenis" a écrit dans le message de news:

A )quand tu ouvres un fichier Excel en local (sur ton HD) avec
un tas de macros, mais ne faisant pas appel à des macros
externes, est-ce que ton fichier se comporte normalement ?




Je n'ai pas de xlsm avec des tas de macros internes...mes seuls xlsm sont
ces 170 là
dont le seul code interne est

Private Sub Workbook_Open()
gene_menu ("Autom. Pré-Paye")
End Sub

"gene_menu" faisant partie des 21 sub ou/et function situées dans le Xla
"référencé"

je n'ai aucun problème ni en reseau ni en local avec tous mes xls (avec
macro) même ouvert avec Excel 2007...

Je vais donc copier le code du xla dans un xlsm et oter la référence vers la
xla... et tester...
mais comme je ne sais pas encore vraiment reproduire le "cassage" de ces
xlsm... le test ne va pas être probant...

par contre depuis peu ( hier soir) , j'arrive à réparer momentenément ...un
de ces classeurs qui plante lors de l'activation de ses macros : message
"excel à rencontrer......"

IL se referme... :-s je le ré ouvre SANS activer les macros !!!,
dans VBA je supprime le dernier retour chariot je sauvegarde, ja
quitte tout !!
je peux alors le révouvrir et activer ses macros sans qu'il
plante.... mais jusqu'a quand ???

... pour pouvoir écrire ces lignes, j'ai peaufiné mes tests... et là,
j'arrive à reproduire :-)

donc je révouvre, j'active les macros et j'en execute une
(je ne sais pas encore si toutes posent le problème)
j'enregistre, je quitte Excel, je re ouvre CE classuer ... çà plante
à l'activation des macros ....

on avance...

B )
En local, déverrouille le projet VBA de ton fichier de macros
complémentaires,
il est "possible" dans ce cas où une erreur se produit, qu'Excel
t'emmène directement à la ligne de code qu'il n'aime pas !




qu'entends tu par "Dévérouiller" le projet VBA ?

C ) Pour ce qui est des tests en réseau... comme je ne suis pas en réseau,
impossible pour moi de tester quoi que ce soit.




...
(après nouveau test à l'instant même de "mise et plantage" et "réparation"
EN LOCAL)

... ce n'est donc pas grave car tous ces comportement sont identique en
LOCAL .... ;-)

encore merci

PS (j'allège en supprimant l'antériorité du post)

Cordialement
Louis
Avatar
L.MAITRE
"MichDenis" a écrit dans le message de news:

Dernière suggestion que je peux te faire :

A ) lorsque tu es passé à Excel 2007, as-tu pris le temps d'ouvrir
chacun tes fichiers et de les enregistrer sous leur nouveau format ...
ou tu t'es contenté de renommer le fichier dans l'explorateur de Windows ?



J'ai bien sur "enregistrer sous leur nouveau format " mais pas à la main ...
(170 classeurs )
j'ai écrit et executé une macro pour çà a partir d'un autre classeur ...



Et qu'en est-il de ton fichier de macros complémentaires ?




??
je ne comprends pas ta question :-s
il est toujours en xla (à quoi sert le format xlsb ? )


B ) pour passer un fichier de la version Excel 2003 (ou versions
précédentes)
à Excel 2007, il faut l'enregistrer avec l'extension de fichier
appropriée. Il
devient un fichier Excel 2007 seulement après l'avoir fermé et ré ouvert.



j'en suis bein d'accord


C ) Dans ta procédure d'ouverture dans le ThisWorkbook, place l'expression
Stop en première ligne de ton code. Cela a pour effet d'arrêter
l'exécution
du code. Tu le termines en pas en pas en utilisant la touche F8

Pour ce faire, il faut obligatoirement que tu déverrouille ton fichier
de macros complémentaires.



qu'entends tu par déverrouiller les macro complétentaires ???

Merci
Avatar
MichDenis
je ne comprends pas ta question :-s
il est toujours en xla (à quoi sert le format xlsb ? )

**** Un fichier de macros complémentaires avec Excel 2007 a
une extension xlam et non xla.
Pour vérifier, ouvre Excel et fait enregistrer sous et sélectionne
le type de fichier : macro complémentaire Excel 2007

qu'entends-tu par déverrouiller les macros complémentaires???
**** Tu enlèves le mot de passe du projetVBA du fichier contenant les macros
complémentaires.
Lorsque ton fichier à l'ouverture exécute la macro du fichier, si
Excel n'apprécie pas une ligne de code, il va t'amener directement
à la ligne.
Avatar
L.MAITRE
"MichDenis" a écrit dans le message de news:

je ne comprends pas ta question :-s
il est toujours en xla (à quoi sert le format xlsb ? )

**** Un fichier de macros complémentaires avec Excel 2007 a
une extension xlam et non xla.
Pour vérifier, ouvre Excel et fait enregistrer sous et sélectionne
le type de fichier : macro complémentaire Excel 2007




je le sais bien...
je précise dans la pluspart de mes posts que je l'ai remis en xla car en
xlam
çà plantait dès les premieres ouvertures des xlsm...


je vais le repasser en xlam à présent...


qu'entends-tu par déverrouiller les macros complémentaires???
**** Tu enlèves le mot de passe du projetVBA du fichier contenant les
macros
complémentaires.
Lorsque ton fichier à l'ouverture exécute la macro du fichier, si
Excel n'apprécie pas une ligne de code, il va t'amener directement
à la ligne.



je n'ai jamais mis de mis de mot de passe sur mes xla

et... dans quel cas utiliser un xlam dans quel cas utiliser un xlsb ?
Avatar
MichDenis
| dans quel cas utiliser un xlam dans quel cas utiliser un xlsb ?

*** xlsb -> le fichier de macros perssonnelles
Utile pour un usager qui emmagasine ses macros localement
pour son usage personnel.

*** xlam -> fichier de macros complémentaires.
Utilse pour toutes les autres circonstances ;-))
Avatar
L.MAITRE
"MichDenis" a écrit dans le message de news:
%

| dans quel cas utiliser un xlam dans quel cas utiliser un xlsb ?

*** xlsb -> le fichier de macros perssonnelles
Utile pour un usager qui emmagasine ses macros localement
pour son usage personnel.

*** xlam -> fichier de macros complémentaires.
Utilse pour toutes les autres circonstances ;-))



A:
j'ai copié l'ensemble du code de mon Macros.xlA vers un Macros.xlAM
comment changer la référence (Vba, outils, réréfences) de mes 170 classeurs
rapidement ??
sachant que j'ai un classeur qui contient la liste des ces 170 classeurs
xlsM ...

(je viens malheureusement de le faire à la main vers un Macros.xlsB ( 1
petite heure de modif et des crampes) mais çà plante toujours et comme du
viens de me le préciser,
c'est pas fait pour çà ... en plus le xlsb n'est pas refermer à la
fermeture du classeur qui " l'appelle" ...


B:
tu m'as suggéré de mettre un stop avant l'appel de la sub située dans le
classeur de macros...

et bien à priori, çà ne "casse" pas tant que je laisse ce stop
...
serait-ce un problème de tempo... je vais essayé
1° de mettre le stop en début de la sub appelée ..... et tester
si çà ne casse toujours plus... 2° de le
remplacer par une temporisation


Encore merci

Louis
Avatar
MichDenis
**** Un fichier de macros complémentaires avec Excel 2007 a
une extension xlam et non xla.

**** L'utilisation de l'expression STOP c'est seulement pour permetttre
d'exécuter la macro pas à pas afin de connaître la ligne de code
problématique à l'ouverture. Ce n'est pas une fin en soi.

****Commence à régler ce problème avant de passer au suivant !!!!
Avatar
L.MAITRE
"MichDenis" a écrit dans le message de news:

**** Un fichier de macros complémentaires avec Excel 2007 a
une extension xlam et non xla.



j'ai bien compris...



**** L'utilisation de l'expression STOP c'est seulement pour permetttre
d'exécuter la macro pas à pas afin de connaître la ligne de code
problématique à l'ouverture. Ce n'est pas une fin en soi



je sais je developpe en VBA depuis environ 1997...

n'empeche qu'à cette heure... le seul moyen que j'ai d'executer mon
application sans planter est effectivement

de mettre ce STOP avant l'appel de cette sub,
de faire un F5 pour poursuivre l'execution de cette 1ere sub
de quitter VBA

(j'ai tenté le STOP DANS la macro appelée, il n'est pas pris en compte)

il n'y a pas à proprement parler de ligne de code problèmatique
il n'y a pas de ligne de code qui plante



****Commence à régler ce problème avant de passer au suivant !!!!




je n'ai qu'UN problème d'ailleurs je suis repassé en xlaM sur 2 de mes 170
classeurs et le problème persiste.

----------------------------------
Résumé du problème :

j'ouvre une premiere fois le classeur xlsm (j'active les macros) il
appelle le xlam référencé

et execute
Private Sub Workbook_Open()

' Stop si j'active ce stop suivi d"un F5 dans vba
AUCUN PROBLEME (si ce n'est la pratique de la chose...)

gene_menu ("Autom. Pré-Paye")
End Sub

le menu "complément"s'affiche avec mon menu personnel.

SI j'execute une des autres macros du xlam (par mon menu généré)
ET SI j'enregistre ce classeur...


je ne peux plus activer les macro lors de la suivante ouverture de ce
classeur...
message " Excel a rencontré une erreur ......"

info importante, TANT QUE ce classeur n'est pas refermé, TOUTES LES MACROS
S'EXECUTENT SANS PROBLEMES

le seul moyen de pouvoir à nouveau activer les macro de CE classeur sera
d'aller dans son "module" 'ThisWorkbook" et de cliquer sur la disquette DE
VBA (j'ai essayé de simplement réenregistrer le classeur excel, çà ne
suffit PAS )
Pourtant cela semble être la même chose ...

------------------------------


Cordialement

Louis
Avatar
L.MAITRE
"MichDenis" a écrit dans le message de news:

Remplace Stop par une temporisation comme ceci :

Exemple pour 2 secondes

Dim T As Double
T = Timer + 2
Do While Timer <= T
DoEvents
Loop
Appel de ta macro





désolé

comme je m'en doutais....

remplacer le stop par une tempo ne change rien car ce qui évite le "cassage"
est :

de passer réeelement en débogage.. arreter l'execution ! (ouverture de la
fenêtre VBA ...)
puisque ce qui "répare" le "cassage" est de forcer le réenregistrement du
code...

le plus étrange dans l'affaire est que

çà casse si ou éxecute une macro complémentaire ( du xlaM)
et on répare en ré enregistrant le CODE du xlsm ... !!!!


on stagne :-S


encore merci

Louis




"L.MAITRE" a écrit dans le message de groupe
de discussion : ##

"MichDenis" a écrit dans le message de news:

**** Un fichier de macros complémentaires avec Excel 2007 a
une extension xlam et non xla.



j'ai bien compris...



**** L'utilisation de l'expression STOP c'est seulement pour permetttre
d'exécuter la macro pas à pas afin de connaître la ligne de code
problématique à l'ouverture. Ce n'est pas une fin en soi



je sais je developpe en VBA depuis environ 1997...

n'empeche qu'à cette heure... le seul moyen que j'ai d'executer mon
application sans planter est effectivement

de mettre ce STOP avant l'appel de cette sub,
de faire un F5 pour poursuivre l'execution de cette 1ere sub
de quitter VBA

(j'ai tenté le STOP DANS la macro appelée, il n'est pas pris en compte)

il n'y a pas à proprement parler de ligne de code problèmatique
il n'y a pas de ligne de code qui plante



****Commence à régler ce problème avant de passer au suivant !!!!




je n'ai qu'UN problème d'ailleurs je suis repassé en xlaM sur 2 de mes
170
classeurs et le problème persiste.

----------------------------------
Résumé du problème :

j'ouvre une premiere fois le classeur xlsm (j'active les macros) il
appelle le xlam référencé

et execute
Private Sub Workbook_Open()

' Stop si j'active ce stop suivi d"un F5 dans vba
AUCUN PROBLEME (si ce n'est la pratique de la chose...)

gene_menu ("Autom. Pré-Paye")
End Sub

le menu "complément"s'affiche avec mon menu personnel.

SI j'execute une des autres macros du xlam (par mon menu généré)
ET SI j'enregistre ce classeur...


je ne peux plus activer les macro lors de la suivante ouverture de ce
classeur...
message " Excel a rencontré une erreur ......"

info importante, TANT QUE ce classeur n'est pas refermé, TOUTES LES MACROS
S'EXECUTENT SANS PROBLEMES

le seul moyen de pouvoir à nouveau activer les macro de CE classeur sera
d'aller dans son "module" 'ThisWorkbook" et de cliquer sur la disquette DE
VBA (j'ai essayé de simplement réenregistrer le classeur excel, çà ne
suffit PAS )
Pourtant cela semble être la même chose ...

------------------------------


Cordialement

Louis












Avatar
L.MAITRE
Pour info çà fait bien 200 fois que j'envoie le fameux "rapport d'erreur"

n'y a t il pas moyen d'avoir un retour d'info sur ses "rapports d'erreur" ?
ou de l'étudier "nous" même ?


cordialement

Louis
1 2 3