Comment contourner un problème de version excel ?

Noeste

XLDnaute Nouveau
Bonjour à tous,

J'ai réalisé une petite macro sur excel 2003, mais mes collègues qui utilisent des versions antérieures (2000 et plus ancien apparemment) n'arrivent à faire tourner ma macro.
Est il possible de trouver une solution pour contourner cet ennuyeux problème ?

Amicalement
Noeste
 

Gorfael

XLDnaute Barbatruc
Re : Comment contourner un problème de version excel ?

Noeste à dit:
Bonjour à tous,

J'ai réalisé une petite macro sur excel 2003, mais mes collègues qui utilisent des versions antérieures (2000 et plus ancien apparemment) n'arrivent à faire tourner ma macro.
Est il possible de trouver une solution pour contourner cet ennuyeux problème ?

Amicalement
Noeste
Salut à tous et joyeux Noël
ce qui est le plus problèmatique sur les changement de version Excel est justement les macros.
tu peux essayer de modifier les références : tu regardes sur ton ordi (VBE>>Outils>>références) et tu mets les mêmes sur les ordis qui coincent. Mais il serait étonnant qu'elles existent, puisqu'elles ne sont apparues que plus tard (d'ou une nouvelle version)

La solution la plus simple, c'est de faire ta macro sur la version la plus ancienne d'Excel et quand elle fonctionne, de l'adapter sur les version récentes en ajoutant les anciennes références.
ou de faire comme l'a dit excalibur, de la donner ici
A+
 

Creepy

XLDnaute Accro
Re : Comment contourner un problème de version excel ?

Bonjour le Forum, Noeste,

Effectivement quand tu crées une macro qui fait appel à des références Office, il faut faire attention aux version d'Office. Si tu développes ta macro en Excel 2003, la référence sera Excel 11, si tu execute la macro sur un poste en 200 la référence est Excel 9, donc la macro plante car la référence Excel 11 n'existe pas !!!

Ainsi la solution est de passer en late binding. Le fait d'utiliser cette méthode te permet de t'affranchir des versions d'office et des références.

Pour plus de détail sur les différences entre le late et le early binding, va voir ici : http://faq.vb.free.fr/index.php?question=104

Attention toutefois le late binding est un peu plus lent que le early, aucune solution n'est parfaite ! :p

De même si tu utilises des références comme ADO ou XML, ne prends pas la dernière version qui ne sera pas forcement installée sur tous les postes.
Prend les version installées par défaut avec Windows, comme ca tu sera sûr qu'il n'y aura pas de problème.
Par exemple ne prend pas la référence XML 3.0, mais XML 2.6 installée avec IE 6. Je pense que tout le monde à IE6 maintenant.

Voila bonne continuation.

A+

Creepy
 

Noeste

XLDnaute Nouveau
Re : Comment contourner un problème de version excel ?

J'avais bien pensé refaire ma macro sur une version plus ancienne mais je n'en ai pas sous la main car mes collègues sont éparpillés aux quatre coins de la France (commerciaux).

Je veux bien vous donner ma macro qui me permet de fusionner 4 fichiers html sur un seul onglet, macro dont j'ai repris le début à mon ancien tuteur de stage et ainsi adapté à mes besoins, mais je ne peux pas vous envoyer les fichiers car ils sont trop volumineux.

Public Sub Importation()
Dim varReturn As Variant, intloop As Integer
varReturn = Application.GetOpenFilename(, , , , True)
If TypeName(varReturn) = "Boolean" Then Exit Sub
If TypeName(varReturn) = "String" Then
Workbooks.Open CStr(varReturn)

Else
For intloop = 1 To UBound(varReturn) Step 1
Workbooks.Open CStr(varReturn(intloop))

Next intloop
End If

Windows("1 Produit.html").Activate
Columns("A:L").Select
Selection.Copy
Windows("Consolidation.xls").Activate
ActiveSheet.Paste
Range("M1").Select
Windows("2 Contrat.html").Activate
Columns("A:L").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Consolidation.xls").Activate
ActiveSheet.Paste
Range("Y1").Select
Windows("3 Condition.html").Activate
Columns("A:M").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Consolidation.xls").Activate
ActiveSheet.Paste
Range("AL1").Select
Windows("4 Durée.html").Activate
Columns("A:N").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Consolidation.xls").Activate
ActiveSheet.Paste

Range("A1").Select
Windows("1 Produit.html").Activate
ActiveWindow.Close savechanges:=False
Windows("2 Contrat.html").Activate
ActiveWindow.Close savechanges:=False
Windows("3 Condition.html").Activate
ActiveWindow.Close savechanges:=False
Windows("4 Durée.html").Activate
ActiveWindow.Close savechanges:=False

Range("A1").Select
Sheets("Fusion").Select
Range("A1").Select

End Sub

Je trouve le début de cette macro parfait car elle permet de sélectionner les fichiers depuis n'importe quel dossier ou serveur.

Cordialement
Noeste
 

Discussions similaires

Statistiques des forums

Discussions
312 235
Messages
2 086 476
Membres
103 228
dernier inscrit
malik832