Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1677 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  macro qui me renvoie le nom et le chemin d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

macro qui me renvoie le nom et le chemin d'un fichier

n°2305821
Bonjour766​7
Posté le 19-09-2017 à 18:15:16  profilanswer
 

Bonjour,
 
Je recherche a faire une macro qui me renvoie le nom et le chemin d'un fichier.
1. Une fenetre apparait me demandant de selectionner un fichier
2. renvoie du nom du fichier
3. renvoie du chemin
 
Si possible stocké dans 2 variables différentes
 
Merci d'avance
 

mood
Publicité
Posté le 19-09-2017 à 18:15:16  profilanswer
 

n°2305824
Marc L
Posté le 19-09-2017 à 18:54:06  profilanswer
 

 
            Bonjour !
 
            Pour la sélection d'un fichier voir dans l'aide VBA interne la propriété FileDialog
            ou en plus simple pour les débutants la méthode GetOpenFilename
 
            Pour extraire nom et chemin, avec une paire de neurones et les fonctions textes internes au VBA
            c'est à la portée d'un débutant !   Utiliser la fonction InStrRev pour trouver la position du dernier antislash
            et à partir de là c'est un jeu d'enfant pour séparer le texte !  Voir les fonctions texte Right, Left, Len, Mid, …
 

n°2305877
Bonjour766​7
Posté le 20-09-2017 à 12:26:12  profilanswer
 

Bonjour,
 
Merci du retour. Je n'arrive pas à me positionner.
Voila mon code :
 
Sub NameFichier()
   
    Dim Fichier As Variant
    Dim nom As Variant
    Dim longueur As Integer
     
     
 
    'Affiche la boîte de dialogue "Ouvrir"
    Fichier = Application.GetOpenFilename("Tous les fichiers (*.*),*.*" )
 
    'On sort si aucun fichier n'a été sélectionné ou si l'utilisateur
    'a cliqué sur le bouton "Annuler", ou sur la croix de fermeture.
    If Fichier = False Then Exit Sub
 
 
   
End Sub
 
 
De la je n'arrive pas malgré vos conseils a me positionner  et stocker le nom du fichier dans une variable
 
merci

n°2305891
kiki29
Posté le 20-09-2017 à 14:20:39  profilanswer
 

Salut, voir http://silkyroad.developpez.com/VB [...] aracteres/ ou http://warin.developpez.com/access/fichiers/ pour la suite
 

Option Explicit
 
Sub SelectionFichier()
Dim sFichier As String
Dim sChemin As String
 
    sChemin = ThisWorkbook.Path & "\"
 
    With Application.FileDialog(msoFileDialogFilePicker)
        .InitialFileName = sChemin
        .Title = "Sélectionner le fichier"
        .AllowMultiSelect = False
        .ButtonName = "Sélection Fichier"
        With .Filters
            .Clear
            .Add "All", "*.*"
        End With
        .Show
        If .SelectedItems.Count > 0 Then
            sFichier = .SelectedItems(1)
            MsgBox sFichier
        End If
    End With
End Sub


Message édité par kiki29 le 20-09-2017 à 14:52:21

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
n°2305892
Bonjour766​7
Posté le 20-09-2017 à 15:09:59  profilanswer
 

Merci du retour. J'ai reuissi à le coder de manière différente.
 
Cependant, j'arrive à une annomalie que je ne comprend pas.  
A la ligne    Workbooks.Open Filename:=CheminSource & NomSource, il bloque
 
code:
 
Sub Transfert2()
' Transfert Macro               OBjet
' Copie de [DATA3] de source.xlsx vers [ORG] puis [TRAV]
     
    Dim NomSource   As String
    Dim NomTravail As String
    Dim OngletSource As String
    Dim OngletDesti As String
    Dim CheminSource As String
    Dim Fichier As Variant
    Dim nom As String
    Dim longueur As Integer
    Dim Taille_chaine As Integer
    Dim Position As Integer
     
     
     'Affiche la boîte de dialogue "Ouvrir"
    Fichier = Application.GetOpenFilename("Tous les fichiers (*.*),*.*" )
 
    'On sort si aucun fichier n'a été sélectionné ou si l'utilisateur
    'a cliqué sur le bouton "Annuler", ou sur la croix de fermeture.
    If Fichier = False Then Exit Sub
 
    longueur = Len(Fichier)
     
         Position = longueur - InStrRev(Fichier, "\", -1, 1)
         
   
 
     
     
    NomSource = Right(Fichier, Position)
    CheminSource = Fichier
    NomTravail = "4-6 sept.xlsm"
    OngletSource = "Data3"
    OngletDesti = "Org"
     
     
     
    'Ouverture classeur source.xlsx
    'ChDir "C:\Users\Formateur\Desktop"
        Workbooks.Open Filename:=CheminSource & NomSource
     
    'Copy des colonnes Onglet "Data3" de source
        Workbooks(NomSource).Sheets(OngletSource).Columns("A:C" ).Copy
     
    'On colle dans source.xls [ORG]
        Workbooks(NomTravail).Sheets(OngletDesti).Columns("A:A" ).PasteSpecial
   
   'Fermeture de Source
        Application.CutCopyMode = False     'Echap  (pour désactiver la copie)
        Workbooks(NomSource).Close                  'On ferme
         
    'On copie de ORG => Trav
        OngletSource = "Org"
        OngletDesti = "Trav"
     
        Workbooks(NomTravail).Sheets(OngletSource).Range("A1" ).CurrentRegion.Copy      'CTRL *
         
        'On colle dans Trav
        Workbooks(NomTravail).Sheets(OngletDesti).Range("A1" ).PasteSpecial
         
    'Deselction copie
        Application.CutCopyMode = False
End Sub

n°2305923
Marc L
Posté le 21-09-2017 à 10:06:48  profilanswer
 

 
            Conformément aux règles de ce forum, merci de baliser le code via l'icône dédiée !
 

Bonjour7667 a écrit :

Workbooks.Open Filename:=CheminSource & NomSource, il bloque


            Si « il bloque » alors la Logique n'est pas respectée, juste vérifier le contenu des variables
            et comparer par exemple avec ce que renvoie  GetOpenFileName  …


Message édité par Marc L le 21-09-2017 à 10:07:20

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  macro qui me renvoie le nom et le chemin d'un fichier

 

Sujets relatifs
Formulaire d'envoi de fichierWord 2016 : Formulaire, insertions automatiques, Macro... ?
SAP SQL Importer un fichier excel[PRC]Ouvrir un fichier au format PRC?
Nommer un fichier aléatoirementMacro pour insertion ligne après saisie
macro pour filtrerCréation d'un fichier avec signature MD5 définie
suppression de fichier impossibleFermer workbook ouvert depuis une macro dans userform
Plus de sujets relatifs à : macro qui me renvoie le nom et le chemin d'un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR