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
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.