Microsoft 365 De Excel 2006 à EXCEL 365, ma macro ne fonctionne plus, que dois-je faire ?

Cherrylie

XLDnaute Nouveau
Bonjour à tous,

J'ai fait un fichier Excel au boulot avec Excel 2006 mais lorsque je veux l'utiliser sur mon pc portable sur lequel j'ai la version 365, mes macros ne fonctionnent plus. J'ai donc modifié quelques uns d'entre eux qui fonctionnent à nouveau mais je coince avec celle-ci :
VB:
Sub ajouter_une_formation()

'Permet d'ajouter une formation suivie par une personne
With Sheets("SUIVI FORMATIONS")
ListObject("TABLEAUSUIVI").ListRows.Add 1
[TABLEAUSUIVI[NOM-PRENOM]].Rows(1) = .[E7]
[TABLEAUSUIVI[SERVICE/POSTE]].Rows(1) = .[E9]
[TABLEAUSUIVI[FORMATION]].Rows(1) = .[G7]
[TABLEAUSUIVI[OPTIONNEL/OBLIGATOIRE]].Rows(1) = .[G9]
[TABLEAUSUIVI[DATE FORMATION]].Rows(1) = .[I8]
.Range("E7,G7").ClearContents
End With
End Sub

A chaque fois, le message d'erreur suivant s'affiche : "erreur de compilation, projet ou bibliothèque introuvable"

L'objectif est de compléter automatiquement un tableau structuré selon les valeurs renseignées.

Si quelqu'un pouvait me dire où je me suis trompée, ce serait formidable !

Merci d'avance !

Cherrylie
 
Dernière édition:

ALS35

XLDnaute Occasionnel
Bonjour,

Comme ça peut-être :
VB:
Sub ajouter_une_formation()

Dim I As Long

    'Permet d'ajouter une formation suivie par une personne
    With Sheets("SUIVI FORMATIONS")
        .ListObjects("TABLEAUSUIVI").ListRows.Add
        I = .ListObjects("TABLEAUSUIVI").ListRows.Count
        [TABLEAUSUIVI[NOM-PRENOM]].Rows(I) = .[E7]
        [TABLEAUSUIVI[SERVICE/POSTE]].Rows(I) = .[E9]
        [TABLEAUSUIVI[FORMATION]].Rows(I) = .[G7]
        [TABLEAUSUIVI[OPTIONNEL/OBLIGATOIRE]].Rows(I) = .[G9]
        [TABLEAUSUIVI[DATE FORMATION]].Rows(I) = .[I8]
        .Range("E7,G7").ClearContents
    End With
End Sub

Cordialement
 

Cherrylie

XLDnaute Nouveau
Bonjour,

Comme ça peut-être :
VB:
Sub ajouter_une_formation()

Dim I As Long

    'Permet d'ajouter une formation suivie par une personne
    With Sheets("SUIVI FORMATIONS")
        .ListObjects("TABLEAUSUIVI").ListRows.Add
        I = .ListObjects("TABLEAUSUIVI").ListRows.Count
        [TABLEAUSUIVI[NOM-PRENOM]].Rows(I) = .[E7]
        [TABLEAUSUIVI[SERVICE/POSTE]].Rows(I) = .[E9]
        [TABLEAUSUIVI[FORMATION]].Rows(I) = .[G7]
        [TABLEAUSUIVI[OPTIONNEL/OBLIGATOIRE]].Rows(I) = .[G9]
        [TABLEAUSUIVI[DATE FORMATION]].Rows(I) = .[I8]
        .Range("E7,G7").ClearContents
    End With
End Sub

Cordialement
Bonjour ALS35,

Merci pour ta réponse, malheureusement, ça ne fonctionne pas, j'ai toujours le même message d'erreur, je ne comprends pas pourquoi...

Cherrylie
 

Deadpool_CC

XLDnaute Impliqué
Bonjour,
comme cela je vois pas mais je suppose que tu a vérifié que la désignation du tableau ne changeait pas entre le 2 ...
après 2003 c'est l'ancien format de fichier ... j'ai pas Excel 365 et donc je ne sais pas s'il sait ouvrir les fichiers en mode "compatibilité" avec cette vieille version et jusqu'ou porte la compatibilité.
Dsl.
Bon courage

ps : version 2006 ? c'est une version MAC ?
 

soan

XLDnaute Barbatruc
Inactif
Bonjour,

à tout hasard : si le message d'erreur est « erreur de compilation, projet ou bibliothèque introuvable », c'est très probablement car il manque quelque part un projet ou une bibliothèque ! tout à fait au hasard aussi : ça doit sans doute manquer dans les références du projet VBA en cours ; si besoin, vérifier aussi, éventuellement, les compléments. à part ça, j'ai rien d'autre à proposer ; bonne chance quand même ! 🍀

soan
 

Cherrylie

XLDnaute Nouveau
Bonjour,
comme cela je vois pas mais je suppose que tu a vérifié que la désignation du tableau ne changeait pas entre le 2 ...
après 2003 c'est l'ancien format de fichier ... j'ai pas Excel 365 et donc je ne sais pas s'il sait ouvrir les fichiers en mode "compatibilité" avec cette vieille version et jusqu'ou porte la compatibilité.
Dsl.
Bon courage

ps : version 2006 ? c'est une version MAC ?
Oui, j'ai vérifié, rien n'a changé dans la désignation du tableau.

Pour la version 2006, je ne suis pas sûre, quand je cherche sur le pc du boulot, c'est ce qui est écrit.

Merci quand même...
 

Cherrylie

XLDnaute Nouveau
Bonjour,

à tout hasard : si le message d'erreur est « erreur de compilation, projet ou bibliothèque introuvable », c'est très probablement car il manque quelque part un projet ou une bibliothèque ! tout à fait au hasard aussi : ça doit sans doute manquer dans les références du projet VBA en cours ; si besoin, vérifier aussi, éventuellement, les compléments. à part ça, j'ai rien d'autre à proposer ; bonne chance quand même ! 🍀

soan
Bonjour Soan,

J'ai eu la même réflexion que toi, j'ai cherché mais normalement, il ne manque rien. Visiblement, c'est le tableau que le code ne retrouve pas mais je ne sais pas pourquoi, le nom n'a pas changé
 

soan

XLDnaute Barbatruc
Inactif
Visiblement, c'est le tableau que le code ne retrouve pas

le nom n'a pas changé

alors même si le nom du tableau n'a pas changé, c'est vraiment très bizarre ! car si c'est un tableau (ListObject) qui n'est pas trouvé, le message d'erreur de compilation ne devrait pas être à propos d'un projet ou d'une bibliothèque introuvable ! ça serait un autre message d'erreur !​

Image.jpg


ci-dessus, le message d'erreur 9 survient car même si "Feuil1" existe bien, je n'ai mis dessus aucun tableau structuré ! (la feuille est entièrement vide !) ; donc bien évidemment, ça ne trouve pas ListObjects(1) : le premier tableau structuré qui est censé se trouver sur "Feuil1" ! 😭

soan
 
Dernière édition:

Deadpool_CC

XLDnaute Impliqué
Pour la version 2006, je ne suis pas sûre, quand je cherche sur le pc du boulot, c'est ce qui est écrit.
je connaissais Excel 2003, Excel 2007 mais pas 2006 ... et cela fait depuis 1995 que j'utilise les produits Microsoft ... lol

En fait au boulot ... tu dois être sur une version 365 daitant de juillet 2020 mais pas à jour des updates.

... Mais cela ne fait pas avancer ta résolution ... dls ... je me tais !
 

soan

XLDnaute Barbatruc
Inactif
moi non plus, je ne connais pas Excel 2006 ! peut-être une version Mac, comme l'a mentionné Deadpool dans son post #5 ? mais selon le post #7 de Cherrylie, si c'est écrit sur l'ordinateur du boulot (que ce soit réellement un PC ou que ce soit un Macintosh), faut croire que cette version étrange existe quand même réellement ! ... en espérant que ça ne soit pas une version contrefaite, ni une version alien ! 🛸 (la vérité se cache peut-être ailleurs ? 😄 demandez à Fox Mulder ! ;))

autres pistes pour Cherrylie : a) vérifie si le nom de la feuille est bien "SUIVI FORMATIONS" (sans espace avant ou après), ceci dans le code VBA et sur l'onglet de la feuille ; b) vérifie si le nom du tableau est bien "TABLEAUSUIVI" et pas "TABLEAU_SUIVI" (avec un souligné ; attention : en principe, le caractère espace " " n'est pas autorisé dans un nom de tableau structuré, donc ça serait inutile de vérifier le nom "TABLEAU SUIVI") ; c) pour la 1ère ligne juste après le With, as-tu bien mis un point devant ListObjects("TABLEAUSUIVI") ? comme ceci :

.ListObjects("TABLEAUSUIVI").ListRows.Add (c'est ce qu'a fait ALS35 dans son code vba du post #3)

soan
 
Dernière édition:

Katido

XLDnaute Junior
Bonjour,

Ce code devrait mieux marcher, mais ce n'est peut-être pas tout à fait ce qu'il faut. Donc à ajuster au besoin.

Sub ajouter_une_formation()

Dim lo As ListObject

'Permet d'ajouter une formation suivie par une personne
With Sheets("SUIVI FORMATIONS")
Set lo = .ListObjects("TABLEAUSUIVI")
lo.ShowHeaders = False
lo.ListRows.Add 1
lo.ListColumns("NOM-PRENOM").Range(1) = .[E7]
lo.ListColumns("SERVICE/POSTE").Range(1) = .[E9]
lo.ListColumns("FORMATION").Range(1) = .[G7]
lo.ListColumns("OPTIONNEL/OBLIGATOIRE").Range(1) = .[G9]
lo.ListColumns("DATE FORMATION").Range(1) = .[I8]
.Range("E7,G7").ClearContents
End With

End Sub
 

Statistiques des forums

Discussions
300 874
Messages
1 987 963
Membres
210 032
dernier inscrit
pbellin06