Demander à l'utilisateur le chemin d'accès

Bonsoir,

La macro que j'ai, ouvre un excel pour ensuite faire des manipulations par rapport au excel d'origine et au excel ouvert.

Cependant pour cela elle doit trouver où est l'excel à ouvrir, et le chemin d'accès n'est pas tout le temps le même.

J'ai trouvé 2 solutions (que je n'arrive pas à réaliser), soit demander à l'utilisateur de renseigner le chemin d'accès avec : Application.FileDialog(msoFileDialogFolderPicker).Show (Cependant quand j'arrive à la ligne Set balance = Workbooks.Open(adresse), ça bug.

Soit faire apparaitre une inputbox pour demander à l'utilisateur de renseigner le chemin d'accès, mais j'aurais le même problème je pense arrivé à la ligne Set balance.

Je vous ai mis l'excel, j'ai modifié le nom des variables, et présenté uniquement le début, là où ça plante.

Après ça j'arrête de vous solliciter pour ce soir

4classeur7.xltm (11.73 Ko)

Bonsoir NeddTuto,

Il serait peut-être bon d'avancer dans le code donner et de mettre celui en cours de dév. (c'est toujours le même)

Il y a pleins de sujets qui traitent du choix d'un fichier, merci d'effectuer des recherches SVP

@+

Yes bien sûr, en fait tout le reste de la macro fonctionne, c'est testé, c'est pourquoi je l'ai pas mis.

Mon problème c'est que ma ligne de code ne voit pas les fichiers CSV donc faut je trouve comment identifier les fichiers CSV et si c'est réellement possible avec Application.FileDialog...

Mais je comprends je vais bien finir par trouver une rustine !

Re,

Mon problème c'est que ma ligne de code ne voit pas les fichiers CSV

Ce n'était pas indiqué dans votre précédente demande

Voici de l'aide : https://docs.microsoft.com/fr-fr/office/vba/api/office.filedialog.filters

@+

Merci pour ton aide, je fais un retour quand ça marche !

Re,

Sub Data_B_R()

Sheets("Envoi").Activate

INSEE = Range("N2")
IDENT = Range("N4")
collectivite = Range("N3")
NomDoc = ThisWorkbook.Name
serveur = Range("G1")
Nom_fichier = "balance_commune.csv"

adresse = "" & serveur & ":\Données_bob\4_Dossiers_bob\1_bob_isolés\" & INSEE & "_" & collectivite & "\" & Nom_fichier & ""

Set balance = Workbooks.Open(adresse)

Windows("balance_commune.csv").Activate
Cells.Select
Selection.Copy
Windows("Saisie_balance_" & INSEE & "_zip.xlsm").Activate
Sheets("Data_B").Select
Range("A1").Select
ActiveSheet.Paste

Sheets("Data_B").Select

Columns("P:P").Select
Selection.NumberFormat = "0"
Worksheets("Data_B").Range("P1").AutoFilter _
Field:=16, _
Criteria1:=IDENT

Dim Trouve As Range, PlageDeRecherche As Range
Dim Colonnetarget As Long, AdresseTrouvee As String

Sheets("Data_R").Select
For Colonnetarget = 1 To 13
Sheets("Data_R").Select
Valeur_cherche = Cells(1, Colonnetarget).Value

Sheets("Data_B").Select

Set PlageDeRecherche = ActiveSheet.Range("A1:AJ1")
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_cherche, lookAt:=xlWhole)

If Trouve Is Nothing Then
AdresseTrouvee = Valeur_Cherchee & PlageDeRecherche.Address
Else
AdresseTrouvee = Trouve.Address
Trouve.Select
Range(Selection, Selection.End(xlDown)).Copy Destination:=Sheets("Data_R").Cells(1, Colonnetarget)

End If

Next Colonnetarget

End Sub

Pour vous faire un récap =>

En l'état ça fonctionne, cependant si je remplace adresse = "" & serveur & ":\Données_clients\4_Dossiers_clients\1_Clients_isolés\" & INSEE & "_" & collectivite & "\" & Nom_fichier & ""

Par : adresse = Cells(5, 16) (Pour que l'utilisateur renseigner le chemin du dossier), la macro trouve bien le dossier, renseigné par l'utilisateur mais ne trouve plus le CSV..ce qui est bizarre

Re,

Que contient la cellule P5 sur la feuille ?

D'ailleurs le mieux serait de donnée l'objet contenant

adresse = Sheets("MaFeuille").Cells(5, 16) 

@+

Merci pour ta réactivité

P5, l'utilisateur doit renseigner le chemin d'accès donc un copier/coller du chemin d'accès d'où se trouve le CSV. Mais pour ce qui est de cela y'a pas de soucis la macro identifie bien le parcours renseigné par l'utilisateur

Pour ce qui est du sheets, c'est déjà renseigné au début du code :Sheets("Envoi").Activate

Re,

Donc par rapport à ce que vous disiez :

En l'état ça fonctionne, cependant si je remplace adresse = "" & serveur & ":\Données_clients\4_Dossiers_clients\1_Clients_isolés\" & INSEE & "_" & collectivite & "\" & Nom_fichier & ""

Par : adresse = Cells(5, 16) (Pour que l'utilisateur renseigner le chemin du dossier), la macro trouve bien le dossier, renseigné par l'utilisateur mais ne trouve plus le CSV..ce qui est bizarre

Donc pour moi c'est tout à fait logique, puisque l'utilisateur ne renseigne que le chemin d'accès et pas le nom de fichier

Bon, sinon je pense que je vais arrêter là, puisque selon vous : Sheets("Envoi").Activate
Est le bon fonctionnement

@+

Ducoup le problème est réglé il manquait simplement le nom du fichier dans l'adresse, tout fonctionne maintenant

Pour te répondre, je n'ai jamais dis qu'il s'agissait du bon fonctionnement, simplement je comprend pas la différence, c'était plus une question.

Bonjour

Rechercher des sujets similaires à "demander utilisateur chemin acces"