Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Nom de fichier qui change : Problème d'importation

ouali

XLDnaute Junior
Bonjour,

J'ai un petit souci. J'ai un fichier modèle qui s'appelle SaisieM1.xlsm. Dans ce fichier, je viens y coller des feuillets venant d'autres fichiers. Jusqu'ici tout se passe bien.

Mon problème est que : Le fichier SaisieM1.xlsm est un modèle et plusieurs fichier von être créer un partir de ce modèle. Don pour chaque utilisateur, la première chose à faire est de renommer ce fichier afin de pouvoir remplir la saisie. Or dans mon code VBA, je viens copier un feuillet dans ce classeur et comme le nom du fichier est modifié il ne le reconnait pas !!

Quelqu'un peut-il m'aider ?? Je pensais utiliser les ** et appelés mon fichier toujours SaisieM1_quelqquchose.xlsm, mais ca ne marche pas

Voici le bout de code :



Et Merci d'avance pour votre aide

Ouali
 

Papou-net

XLDnaute Barbatruc
Re : Nom de fichier qui change : Problème d'importation

Bonjour ouali,

Je ne suis pas catégorique, mais il me semble que si tu remplaces le nom du classeur par l'indice de la fenêtre, cela devrait résoudre ton problème.

Ex :

Code:
Windows("*SaisieM1.xlsm*").Activate

à remplacer par

Code:
Windows(1).Activate

L'indice de la fenêtre devrait correspondre à l'ordre d'ouverture des classeurs.

Espérant avoir été utile.

Cordialement.
 
G

Guest

Guest
Re : Nom de fichier qui change : Problème d'importation

Bonjour,

Peut-être que quelquechose comme ceci te conviendrait:
Mettre le nom du fichier en A1 de Libellé puis
Code:
Sub Importe_Libellé()
    Const Repretoire = "P:\DEP_TEC_ELECTRICITE\SPCC\02_Etudes_et_Projets\ 05_Automates_M1\"
    Dim NomFichier As String
    NomFichier = Sheets("Libelle").Range("A1")
    Sheets("Libelle").ClearContents
    If Dir(repertoire & NomFichier, vbDirectory) <> "" Then
        Application.DisplayAlerts = False
        Dim x As Integer
        Dim G As Integer
        'Ouverture du fichier Libelle_objet_M1.xls
        Workbooks.Open Filename:=repertoire & NomFichier
        'Suite de la procédure
    Else
        MsgBox "fichier: " & NomFichier & " introuvable!", vbExclamation, "Importe_Libellé"
    End If
End Sub

A+
 

ouali

XLDnaute Junior
Re : Nom de fichier qui change : Problème d'importation

Bonjour,

Tout d'abord merci a vous deux !!

Je n'aime pas trop ta solution Papou-net car on a souvent plusieurs fichiers Excel ouverts et on peut vite se tromper alors je dois dire que si il y a une autre solution je préférerai.

Quant à la soluton de Hasco sincérement je ne comprend pas trop ce que le code fait pourrais-tu me le commenter un peu.

Bon si jamais je fais déjà une vérification à l'ouverture de mon fichier SaisieM1 si les librairies existent grâce a ce code

Ce que je ne comprend pas c'est que la où tu écris suite de la procédure je dois remettre mon code ms qui contient de nouveau la ligne : Windows("*SaisieM1.xlsm*").Activate

Alors le problème est toujours présent non ?? Si je change le nom de mon fichier SaiseM1.xlsm cela ne marchera pas ??

Désolé mais j'ai pas tout compris au code
 

chris

XLDnaute Barbatruc
Re : Nom de fichier qui change : Problème d'importation

Bonjour
Où se trouve le code ? Dans SaisieM1.xlsm ? Si oui on peux récupérer le nom du classeur en début de code.
Sinon une boucle sur le nombre de fenêtres ouvertes avec recherche dans le nom de la fenêtre de "SaisieM1" permettrait de trouver la bonne si, comme tu l'envisageais, ton nom reste bien SaisieM1 suivi d'un préfixe.
 
G

Guest

Guest
Re : Nom de fichier qui change : Problème d'importation

Re,

De retour. J'avais pas compris ton problème.

Si le fichier non reconnu est celui qui contient la macro. tu peux y faire référence dans le code par ThisWorkBook.

Par Exemple au lieu de 'Windows("*SaisieM1.xlsm*").Activate
tu pourras mettre ThisWorkBook.activate.

Code:
Sub Importe_Libellé()
    Application.DisplayAlerts = False
    Dim x As Integer
    Dim G As Integer
    'Ouverture du fichier Libelle_objet_M1.xls
    Workbooks.Open Filename:= _
                   "P:\DEP_TEC_ELECTRICITE\SPCC\02_Etudes_et_Projets\ 05_Automates_M1\Libelle_objet_M1.xlsx"
    ' Tout sélectionner et copier
    Range("A2:E900").Select
    Selection.Copy
    ' On retourne dans le fichier de saisie M1 et on sélectionne le feuillet Libelle
  ThisWorkbook.Activate
 
    With Sheets("Libelle")
        .Select
        .Range("A1").Select
    End With
    ' Copie de tous les éléments contenu dans la librairie
    ActiveSheet.Paste
    ' Fermeture du fichier source Libellé_ObjectText.csv
    Windows("Libelle_objet_M1.xlsx").Activate
    Application.CutCopyMode = False
    Workbooks("Libelle_objet_M1.xlsx").Close

A+
 

ouali

XLDnaute Junior
Re : Nom de fichier qui change : Problème d'importation

Salut Chris

Oui le code se trouve dans SaisieM1.xlsm. Il s'agit d'un classeur pour saisir des données et à l'ouverture de ce classeur, des librairies sont chargés d'un autre classeur dans un feuillet du fichier SaisieM1.

Cela me semble une bonne idée de récupérer le nom du fichier à son ouverture. Mais comment puis-je le faire ??

Et après tu penses que ca joue si je rentre ce nom du fichier dans une variable du genre "Nomfichier" et qu'après j'écrive
Windows("Nomfichier.xlsm").Activate ou Windows("Nomfichier").Activate ?

Merci pour ton aide
 

ouali

XLDnaute Junior
Re : Nom de fichier qui change : Problème d'importation

Salut Hasco

Pas de soucis mais il me semblait bien que ton code ne répondait pas à mes besoins Par contre ta solution : ThisWorkbook.Activate
marche très bien et je t'en remercie déjà un problème de résolu.

Par contre pour Chris je veux bien savoir quand même comment récupérer le nom du fichier au cas où

Bonne journée à tout le monde
 

Hippolite

XLDnaute Accro
Re : Nom de fichier qui change : Problème d'importation

Bonjour à tous,

Heureusement que j'ai lu jusqu'au bout pour ne pas répéter la même chose que Hasco.

J'ajouterai juste une précision pour ceux qui n'y sont pas rodés :
ThisWorkbook fait référence au classeur contenant la macro en cours,
à ne pas confondre avec
ActiveWorkbook qui fait référence au classeur actif, et dont l'dentité peut devenir "incertaine" en cas de macros s'appelant depuis différents fichiers.

Bonne journée
 

ouali

XLDnaute Junior
Re : Nom de fichier qui change : Problème d'importation

Bonjour,

Et merci a Hasco et Hippolite pour vos précisions bien utiles.

Est-ce qu'il y a un moyen de dire que la discussion est terminé enfin que la réponse à la question du départ est posée ??

Bonne journée a tous
 
G

Guest

Guest
Re : Nom de fichier qui change : Problème d'importation

Re,

Non il n'y a pas de moyen de mettre en RESOLU. C'est une volonté expresse d'xld afin que les discussions restent ouvertes.

A+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…