Un utilisateur a essayé d'ouvrir avec Excel 2013 et W8.1 un fichier conçu sous Excel 2007 et W7 qui comporte des userforms et apparemment le fichier ne s'ouvre pas.
Malheureusement, je n'ai que Excel 2007 et je ne peux pas faire des essais. Avez-vous déjà eu ce genre de problème, que peut-on faire pour le contourner?
Bonjour,
Je possède également 2007 et n'ai pas le 2013.
Ma première réaction : Excel 2013 devrait savoir se débrouiller pour ouvrir en version inférieure.
Un problème peut par contre se poser entre W8.1 et W7, si certains des composants utilisés par ton classeur ne sont pas compatibles avec W8.1
Ah !
Questions qui viennent donc à l'esprit :
1) quels composants contient cet Userform ?
2) quelles fonctions autres que celles de VBA/Excel y sont utilisées ?
1) A part les contrôles de base (label, textbox, listbox, Frame, Commandbutton, scrollbar) j'utilise un module de classe basé sur un label. Justement j'ai essayé de ne pas utiliser pas de contrôles "exotiques" pour privilégier la compatibilité (par rapport à Excel 2003 dans ma tête).
2) Les fonctions utilisées sont aussi celles qui sont fournies de base dans VBA/Excel. Pas de private declare, ni de référence externe.
C'est vraiment étrange.
As-tu essayé de voir sur la machine WIN8 si les références cochées sont celles attendues ? (et de supprimer, s'il y en a, les références manquantes) ?
Sur la win8 en cause : outils - références :
Regarde, parmi les cochées, celles qui pointent vers system32.
Essaye, pour voir, ce qu'il se passe en pointant les mêmeS (bouton parcourir) sur syswow64
Edit : et si déjà vers syswow64, tente l'inverse (vers system32).
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Avec un peu de retard, il semble que ce ne soit pas l'userform qui pose problème mais plutôt la réduction de la fenêtre Excel à l'ouverture de l'userform.
J'ai fait un essai sur une autre machine et en supprimant le code suivant, le fichier s'exécute normalement.
Private Sub Workbook_Open()
'Réduction de la fenêtre Excel et ouverture de l'userform
With Application
.WindowState = xlNormal
.Height = 1
.Width = 1
.Top = 1
.Left = 1
End With
Formulaire_Principal.Show vbModeless
End Sub