Office 365 Nouvel ordinateur - Anciennes macros

Pier3d

XLDnaute Nouveau
Bonjour à tous,

Après la mort de mon disque C:, j'ai dû reconstruire mon ordinateur qui avait 8 ans. Nouveau C: en SSD, nouvelle carte-mère, processeur I5, mémoire (16 Go.), nouveau Windows 10 et nouveau Office 365. Avant j'avais le Windows 10 donné en 2016 par Microsoft et un Office 2007, datant de 2007.

J'ai beaucoup de macros, surtout dans Excel et aussi dans Word. La plupart ont repris du service sans ronchonner.

Si je viens ici c'est pour une macro ou le problème semble plus grave. En fait c'est une suite de procédures qui commence avec l'ouverture d'un formulaire que j'ai fait avec l'éditeur de UserForms de VBA. La première de ces procédures ne contient qu'une seule ligne qui lance le formulaire : F1.Show

Donc le programme débute avec cette procédure qui s'appelle UserForm_Activate(). Et ça bloque en partant. On dirait que VBA ne sait plus où se trouvent les autres procédures qui sont appelées. Pourtant, je le répète, ça fonctionnait parfaitement avant et, cela, depuis 10 ans.

Si j'ajoute le nom du module où se trouve la procédure, ça fonctionne. Par exemple, pour la procédure ' FaitCeci ' qui est dans le module ' Action ', VBA ignore FaitCeci mais comprend et exécute Action.FaitCeci.

Comme c'est un très long programme avec beaucoup d'appels à différentes procédures, ajouter le nom des modules partout serait une tâche longue et fastidieuse. J'espère donc avoir une réponse d'experts avant d'aller plus loin.

Merci d'avance,

Pierre Cloutier


---
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

Pier3d (Bienvenue sur le forum)
Tu peux publier ta procédure FaitCeci ici?
Voir joindre une copie allégée et anonymisée de ton classeur avec l'userform et le code VBA s'y rattachant?
 

JBARBE

XLDnaute Barbatruc
Bonsoir à tous, toutes, Staple, Per3d,
A tout hasard enregistre ton ficher en xls ( si ce n'est déjà fait ) et dit nous comment se comporte les macros !
Sinon, fait ce que te demande Staple !
Bonne nuit !
 

Dranreb

XLDnaute Barbatruc
Bonsoir à tous aussi.
Moi l'idée qui me vient à l'esprit suite à la description du problème ce serait des doublons de code, des noms ambigus.
Je ne vois pour l'instant que cela qui pourrait obliger à préciser le module où la macro est écrite.
 

Pier3d

XLDnaute Nouveau
Bonjour et merci pour vos réponses.

Je ne pense pas que ce soit nécessaire de vous envoyer le code parce que, selon moi, ce n'est pas une question de code. Voici pourquoi mais d'abord je pense qu'il serait bon que vous relisiez mon message d'introduction ci-dessus.

Maintenant, quelques détails :

1- Mes macros fonctionnent depuis des années et presque toutes fonctionnent toujours sous le nouveau Windows et Office 365. Il n'y en a qu'une qui me donne des soucis. Cette macro s'ouvre après l'ouverture d'un formulaire (userform) et donc, le début du code se trouve dans la procédure « userform_activate () ». Voici le formulaire :

1033729
Et le début du code :
VB:
Private Sub UserForm_Activate()     ' Ouverture du formulaire
Dim L As Range
Dim a As String, y As String
Dim i As Integer

Application.ScreenUpdating = False

SecurChange (False)

TrimTablo ' Efface les colonnes à droite de la dernière bonne colonne (dont la valeur est une date)

ClNoM = TrouveCol("Nom")      ' trouve la colonne du Nom
ClPrM = TrouveCol("Prénom")   ' trouve la colonne du Prénom
Ligne = ActiveCell.Row: If Ligne = 1 Then Ligne = 2 ' Si le curseur était dans la ligne 1 (Entête)

On Error GoTo 0
    Fv = LaFinv: Fh = LaFinh
 [...]
2- J'ai mis un bout de code pour illustrer ce qui ne va pas. Vous voyez la variable ClNoM =... La fonction TrouveCol() rapporte le numéro de la colonne et la sauve dans ClNoM. Dans ce cas-ci, la colonne des Noms. Quand le déroulement du programme arrive là, la fonction n'est pas appelée et donc une erreur se produit puisque ClNoM vaut 0 et que la colonne 0 n'existe pas. Les deux procédures précédentes, SecurChange et Trimtablo ne sont pas appelées non plus.

Essentiellement, c'est là le problème. Et c'est la seule macro parmi des dizaines qui souffre de ce problème.

Et avant le passage à Office 365 (à moins que ce soit le passage à Windows 10 "acheté") le code ci-dessus a fonctionné pendant 10 ans sous Vista, Win 7 et Windows 10 "donné en 2016".

Vous comprenez bien la nuance entre Windows 10 "donné" et Windows 10 "acheté". Oui, pour Microsoft la formule « donné c'est donné » ne fait pas partie de ses valeurs. On nous le donne mais si on le perd, on doit ensuite le payer. :(

Pierre Cloutier
 

Fichiers joints

Dranreb

XLDnaute Barbatruc
En tout cas on ne peut pas vous dire si ça tourne chez nous et sinon pourquoi, vu que vous ne nous en avez pas joint une copie anonymisée.
À tout hasard avez vous vérifié s'il n'y a pas de référence cochée portée MANQUANT ?
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

Je ne pense pas que ce soit nécessaire de vous envoyer le code parce que, selon moi, ce n'est pas une question de code. Voici pourquoi mais d'abord je pense qu'il serait bon que vous relisiez mon message d'introduction ci-dessus.
Dans ce cas, pourquoi solliciter les avis et conseils d'autrui?
Ce n'est pas un problème de Windows et/ou un problème Excel
C'est un problème entre toi et Toi ;)

PS: message rédigé en mode ironico-humouristique mais en restant amical
Donc inutile de s'énervouiller
 

Discussions similaires


Haut Bas