Compatibilité entre différentes versions - Modification sur autre classeur Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
A
Alice76
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 4 janvier 2020
Version d'Excel : 2019

Message par Alice76 » 4 janvier 2020, 12:46

Bonjour,

Je viens d'écrire un code pour automatiser une procédure pour le boulot (donc je ne pourrais pas tout copier ici, il y a des données médicales...)
Toutes mes macros fonctionnent parfaitement sur mon ordinateur (il a moins de 6 mois) et sur ma version Excel 2019.
J'ai voulu envoyer le fichier à une collègue pour qu'elle teste, mais ça ne fonctionne pas. Elle tourne sous Excel 2007.

Le problème semble tourner autour d'une modification d'un classeur ouvert mais différent de celui sur lequel se trouve la macro.
En gros, la macro récupère des variables, ouvre un classeur "Classeur vierge", change le nom des onglets de ce classeur vierge avec les variables récupérées et enregistre sous un nom comprenant d'autres variables.
Grâce à des msgBox, j'ai pu voir que les différentes variables sont bien récupérées, et l'ouverture du fichier Classeur vierge se fait bien.

Est-ce que les instructions ci dessous peuvent ne pas être comprises par des versions inférieures ? Et si oui, comment les modifier pour que mon code fonctionne sur toutes les versions ?
Workbooks.Open ("C:\Users\*******\Desktop\Programmation suivi activités\Classeur vierge.xlsm")
Workbooks("Classeur vierge").Sheets("Feuille1").Name = semaine1
Workbooks("Classeur vierge").Sheets("Feuille2").Name = semaine2
Workbooks("Classeur vierge").Sheets("Feuille3").Name = semaine3
Workbooks("Classeur vierge").Sheets("Feuille4").Name = semaine4


Workbooks("Classeur vierge").SaveCopyAs "C:\Users\******\Desktop\Programmation suivi activités\" & mois & "\" & mois & " " & nom & ".xlsm"
Merci d'avance pour votre aide :)
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'246
Appréciations reçues : 372
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 4 janvier 2020, 13:39

Bonjour,

a-priori aucune particularité propre à 2019.
Il faudrait indiquer la ligne en erreur et le message.

On va supposer que les variables semainex et mois sont bien initialisées.
Reste le chemin du bureau. Essaie avec :
cheminBureau = CreateObject("WScript.Shell").specialFolders("Desktop")
pour être sûre de lui et éviter une mise à jour manuelle du code.

Par ailleurs je ne suis pas sûr à 100% que saveAs crée un répertoire inexistant. Tu devrais tester et le créer si besoin avec mkdir.
Toi il doit être créé, tu n'as pas l'erreur.
eric
Modifié en dernier par eriiic le 4 janvier 2020, 13:46, modifié 2 fois.
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
A
Alice76
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 4 janvier 2020
Version d'Excel : 2019

Message par Alice76 » 4 janvier 2020, 13:44

Je vais redemander pour la ligne en erreur, mais le message, c'est : "l'indice n'appartient pas à la sélection"
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'246
Appréciations reçues : 372
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 4 janvier 2020, 13:47

J'ai complété mon post, pas sûr que tu aies vu

Edit : "l'indice n'appartient pas à la sélection"
le nombre de feuille crées à la création d'un classeur dépend du paramétrage du poste.
Là aussi tu dois t'assurer de créer les feuilles absentes
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
A
Alice76
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 4 janvier 2020
Version d'Excel : 2019

Message par Alice76 » 4 janvier 2020, 13:51

Maintenant oui, je vais explorer cette piste, merci
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'246
Appréciations reçues : 372
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 4 janvier 2020, 14:01

Et tes feuilles s'appellent Feuille1 et non Feuil1 ?
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
A
Alice76
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 4 janvier 2020
Version d'Excel : 2019

Message par Alice76 » 4 janvier 2020, 14:16

Pour les feuilles, oui, je les ai renommées sur le classeur vierge

Ce que je ne comprends pas, c'est que je ne crée pas de nouveau classeur, j'ouvre le classeur vierge et je renomme les onglets avant de sauvegarder sous le nouveau nom.
(et que tout fonctionne sous excel 2019...)

Je viens de le faire sur un de mes vieux ordi, qui tourne aussi sous 2007. Les chemins d'accès sont bons, mais même problème que ma collègue.
Je vais tester d'autres instructions pour voir ce qui buggue
A
Alice76
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 4 janvier 2020
Version d'Excel : 2019

Message par Alice76 » 4 janvier 2020, 15:05

J'ai essayé différents trucs que j'ai pu voir sur différents fils de discussion, vérifier les références utilisées par VBA, déclarer mes variables publiques, changer le fichier "classeur vierge" par un fichier sans macro (puisque classeur vierge a ses propres macros autonomes)...
Le problème semble vraiment venir du fait que Excel n'arrive pas à travailler sur le 2ème classeur, alors qu'il a bien réussi à l'ouvrir. Même pour y inscrire une donnée dans une cellule.

J'ai fait ressortir toutes les variables demandées sur la macro par un msgbox et elles sont correctement affichées.

La solution de facilité, si je n'arrive pas à résoudre le problème, sera de restreindre l'utilisation de mon code aux seuls utilisateurs de 2019, mais ça va limiter son utilisation de fait....
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'246
Appréciations reçues : 372
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 4 janvier 2020, 18:09

On ne sait toujours pas la ligne en erreur...

Ton classeur, vu qu'il est existant et que tu l'ouvres doit plutôt être :
Workbooks("Classeur vierge.xlsm").Sheets("Feuille1").Name = semaine1
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
A
Alice76
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 4 janvier 2020
Version d'Excel : 2019

Message par Alice76 » 4 janvier 2020, 19:07

Pardon pour la ligne, il a fallu que je retrouve le moyen de trouver la ligne en question, à savoir le débogage pas à pas... :oops: Il faut que je me remettes au code plus souvent :lol:

Donc après la modif que tu m'as proposé, le changement d'onglet se fait, on arrive donc sur une erreur à cette ligne là :
Workbooks("Classeur vierge.xlsm").SaveCopyAs "C:\Users\Alice\Documents\suivi\" & mois & "\" & mois & " " & nom & ".xlsm"
Avec ou sans le xlsm, ça ne marche pas. Je vais donc me pencher sur cette instruction...
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message