Chemin d'accès en VBA

Raka

XLDnaute Occasionnel
Bonjour :)

Je souhaite utiliser ceci :
1596460490167.png

sachant que l'image jaune du petit dossier doit servir à ouvrir une boîte de dialogue permettant de sélectionner un dossier (Un dossier, oui, et non un fichier).

J'ai donc été jusque là :

VB:
Sub choix_fichiers()
    Dim fichier As String
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Show
        On Error Resume Next
        fichier = .SelectedItems.Item(1)
        On Error GoTo 0
    End With
    If fichier <> "" Then Range("Filebar").Value = fichier
End Sub

J'ai bien sûr placé cette macro directement dans la feuille concernée.
Ca me renvoyait une erreur 400, impossible d'en trouver la source.

Je l'ai donc déplacée dans un nouveau module ; et là, erreur 1004 sur cette ligne :

1596463491263.png


La méthode Range de l'objet Global a échoué.

Je ne comprends pas vraiment d'où vient le problème. Dois-je définir l'espace de travail puisque je suis dans un module ? De quelle façon ?

Lorsque je la teste sur un nouveau fichier, ça fonctionne... Pourquoi la méthode Range de l'objet global pourrait-il donc avoir un souci ?

Bon.
Après avoir tout redémarré pour la 4ème fois, ça fonctionne. Je ne cherche pas plus loin.
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Raka,

Pourquoi parler de fichier puisque comme vous le dites il s'agit de dossier ?

Ceci fonctionne très bien si "Filebar" est le nom donné à une cellule :
VB:
Sub choix_dossier()
    Dim dossier As String
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show <> False Then dossier = .SelectedItems(1)
    End With
    [Filebar] = IIf(dossier = "", "", dossier)
End Sub
A+
 

Raka

XLDnaute Occasionnel
C'est le cas :)
Mais du coup j'ai remplacé par AU24 et ça fonctionne.
Avec le nom de la cellule, non.
Je n'ai pas cherché plus loin.

Par contre, j'ai une autre question, du coup !
@job75

Je souhaite exporter un fichier sur le chemin demandé.

J'ai donc été jusque là :

VB:
Sub Export_txt()

Dim i As Long, derlig As Long, tabl

derlig = Range("E" & Rows.Count).End(xlUp).Row + 1
tabl = Range("E2:F" & derlig)
Open AU24 & "\nomdufichier.txt" For Output As #1 '<------ cette ligne-ci
    Print #1, Now
    Print #1, " "
For i = 1 To UBound(tabl, 1)
If tabl(i, 1) <> "" Then
   Print #1, tabl(i, 2) & " : "; tabl(i, 1)
End If
Next
Close #1

End Sub

Open AU24 & "\nomdufichier.txt" For Output As #1

Cette ligne-ci, j'ai du mal à lui faire dire "Je veux ce chemin d'accès et un nom de fichier fixe."

Ou alors c'est moi qui suis stupide et qui ai besoin de dormir, au lieu de ne pas mettre Range().Value...

Merci quand même ^^
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 131
Messages
2 116 575
Membres
112 794
dernier inscrit
Gin dono