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

Problème avec activeworkbook et Excel 97

1 réponse
Avatar
Moureau Laurent
Bonjour à tous,

Voici mon problème,

Au lancement de Excel je charge un fichier xla qui contient toute mes macros
Au démarrage de fichier Excel j'ai une procédure qui appelle une fonction du
fichier xlaet qui test la version du classeur Excel (cellule réservée à
cette effet) et si version du fichier est mauvaise alors j'appelle une
fonction de conversion du classeur

Si je lance mon fichier Excel via l'explorateur les fonctions sont bien
appellées et mon fichier Excel est bien converti mais si je lance mon
fichier Excel via un programme Vb que j'ai écrit là j'ai une erreur de type
9 apparait : indice en dehors de page dans ma fonction de conversion du xla.

Ce problème ne se pose qu'avec Excel 97 en Excel 2000 et XP tout est OK
J'ai fait du debug de ma fonction de conversion et j'ai remarqué que mon
activeworkbook était mon fichier xla et pas mon classeur Excel.
Si l'on regarde la fonction ci-dessous j'active bien mon classeur mais c'est
toujours mon fichier xla qui est actif.
la ligne UCase(Sheets("Devis").Range("A11").Value) plante donc avec une
erreur de type 9
Si je compléte ma ligne par
UCase(Workbooks(Workbooks.Count).Sheets("Devis").Range("A11").Value) ca
fonctionne correctement .

Comment puis je faire pour ne pas chaque fois fois
ajouterWorkbooks(Workbooks.Count)

Merci

Function TestVersion() As String
Dim x As Workbook
Workbooks(Workbooks.Count).Worksheets("Devis")Activate
TestVersion = UCase(Sheets("Devis").Range("A11").Value)
End Function

--
!!!!ANTISPAM!!!!

Cliquez sur le lien pour répondre

http://cerbermail.com/?YFShDEWIbx

1 réponse

Avatar
Frédéric Sigonneau
Bonsoir,

Tu pourrais modifier ta fonction de test comme ceci :

Function TestVersion() As String
Dim x As Workbook
Set x = Workbooks(Workbooks.Count)
TestVersion = UCase(x.Sheets("Devis").Range("A11").Value)
End Function

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à tous,

Voici mon problème,

Au lancement de Excel je charge un fichier xla qui contient toute mes macros
Au démarrage de fichier Excel j'ai une procédure qui appelle une fonction du
fichier xlaet qui test la version du classeur Excel (cellule réservée à
cette effet) et si version du fichier est mauvaise alors j'appelle une
fonction de conversion du classeur

Si je lance mon fichier Excel via l'explorateur les fonctions sont bien
appellées et mon fichier Excel est bien converti mais si je lance mon
fichier Excel via un programme Vb que j'ai écrit là j'ai une erreur de type
9 apparait : indice en dehors de page dans ma fonction de conversion du xla.

Ce problème ne se pose qu'avec Excel 97 en Excel 2000 et XP tout est OK
J'ai fait du debug de ma fonction de conversion et j'ai remarqué que mon
activeworkbook était mon fichier xla et pas mon classeur Excel.
Si l'on regarde la fonction ci-dessous j'active bien mon classeur mais c'est
toujours mon fichier xla qui est actif.
la ligne UCase(Sheets("Devis").Range("A11").Value) plante donc avec une
erreur de type 9
Si je compléte ma ligne par
UCase(Workbooks(Workbooks.Count).Sheets("Devis").Range("A11").Value) ca
fonctionne correctement .

Comment puis je faire pour ne pas chaque fois fois
ajouterWorkbooks(Workbooks.Count)

Merci

Function TestVersion() As String
Dim x As Workbook
Workbooks(Workbooks.Count).Worksheets("Devis")Activate
TestVersion = UCase(Sheets("Devis").Range("A11").Value)
End Function

--
!!!!ANTISPAM!!!!

Cliquez sur le lien pour répondre

http://cerbermail.com/?YFShDEWIbx