Problème d'ouverture de classeur

Résolu
Pompom974 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
Pompom974 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je viens vers vous car j'ai un énorme souci avec VBA. J'ai réalisé une interface VBA qui récupère les informations dans le fichier que l'utilisateur veut utiliser (un classeur Excel)

Le code fonctionne très bien sur mon ordinateur, et sur celui d'un autre ami. Mais il ne fonctionne pas sur l'ordinateur sur lequel je voudrais l'utiliser. C'est à n'y rien comprendre : La première fois que je lance la macro avec le nom du fichier, il fonctionne. Puis lorsque je ferme le programme et que je le réouvre, au moment d'extraire le fichier une nouvelle fois, il plante et me dit qu'il ne trouve pas le fichier. La manipulation a été effectuée plusieurs fois sans succès.

En changeant le nom, on revient sur le problème de départ : la macro fonctionne une fois, mais pas les autres fois.

Cela va faire 3 jours que je travaille dessus sans arrêt, mais je ne trouve pas le problème... J'ai fait voir mon code à quelque personne qui m'ont dit qu'ils ne voyaient pas d'erreur... Je me tourne vers vous du coup en espèrant que vous pourrez me répondre.

Je vous envoie le code :



'Déclaration d'une variable dans laquelle on va stocker le nom du fichier rentré dans le UserForm
Dim LandingGearFile As String

'On initialise la variable avec le nom du fichier lu à l'écran dans le UserForm
LandingGearFile = FileLG.Value

Dim estOuvert As Boolean
Dim WorkB1_LG As Workbook

For Each WorkB1_LG In Workbooks
If WorkB1_LG.Name = LandingGearFile & ".xls" Then
estOuvert = True
End If

If estOuvert = False Then
Workbooks.Open (LandingGearFile)
End If
Next




J'ai désespérement besoin d'aide et j'espère que vous pourrez m'aider :/ Si il manque quoi que ce soit pour comprendre le problème, dites le moi.
Merci beaucoup!

2 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

1) la partie suivante ne doit pas se situer dans le For ... Next mais après :
    If estOuvert = False Then
    Workbooks.Open (LandingGearFile)
    End If


2) Pour être sur de désigner le bon fichier, la variable LandingGearFile doit indiquer le chemin complet, est-ce le cas ? il semble que non.
0
Pompom974 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
La modification concernant ton premier point a été faite, merci.

Pour ton deuxième point, tu veux dire qu'il faut que je lui précise le chemin exact où aller chercher le fichier ?
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780 > Pompom974 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
C'est exactement cela !
0
Pompom974 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord, je vais essayer, je te tiens au courant. Merci de ta réponse !
0
Pompom974 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Coucou Patrice33740, en rajoutant le chemin ça fonctionne beaucoup mieux c'est vrai :$

Merci beaucoup pour ton aide !
0
Pompom974 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Je reposte le morceau de code, avec les modifications que j'ai faites dessus :



'Déclaration d'une variable dans laquelle on va stocker le nom du fichier rentré dans le UserForm
Dim LandingGearFile As String

'On initialise la variable avec le nom du fichier lu à l'écran dans le UserForm
LandingGearFile = FileLG.Value

Dim estOuvert As Boolean
estOuvert = False
Dim WorkB1_LG As Workbook

For Each WorkB1_LG In Workbooks
If WorkB1_LG.Name = LandingGearFile & ".xls" Or WorkB1_LG.Name = LandingGearFile & ".xlsx" Then
estOuvert = True
End If
Next

If estOuvert = False Then
Workbooks.Open (LandingGearFile & ".xls")
End If

Application.Workbooks(LandingGearFile).Activate

0