Sélectionner un fichier pour afficher son nom dans une cellule

David590

XLDnaute Occasionnel
Bonsoir à tous,

J'aurais besoin d'afficher le nom d'un fichier dans une cellule (A1 par exemple) en choisissant le fichier dans une fenêtre du style
Code:
stfile = Application.GetOpenFilename
Mais ce genre de fenêtre ouvre le fichier alors que j'aimerai que le nom du fichier que je choisis dans la fenêtre s'affiche simplement en A1

J'ai fait un petit fichier exemple pour mieux m'expliquer

Merci d'avance
 

Pièces jointes

  • Classeur1.xls
    29 KB · Affichages: 21
  • Classeur1.xls
    29 KB · Affichages: 21
  • Classeur1.xls
    29 KB · Affichages: 23

Staple1600

XLDnaute Barbatruc
Re : Sélectionner un fichier pour afficher son nom dans une cellule

Bonsoir à tous

David590
Ceci semble faire l'affaire.
VB:
Sub a()
Dim NomFic As Variant
NomFic = Application.GetOpenFilename
Range("A1") = Split(NomFic, "\")(UBound(Split(NomFic, "\")))
End Sub
NB:
Du bien-fondé de l'usage de la loupe d'XLD ( en haut à droite de l'écran) avant de poster une question *, qui trotte dans la tête du demandeur ...:rolleyes:
(et du répondeur aussi ...:p:rolleyes:, cela m'aurait d'ailleurs permis de juste faire un petit CTRL+C/CTRL+V, au lieu de réécrire du code tout frais à 1h17! )
*: c'est bien pour cela qu'a été créé le point 1) [section Demandeur] de Lien supprimé, non ? ;)
Nous étions en donc février 2013
https://www.excel-downloads.com/threads/selection-fichier.201271/
Pour le coup, je rafrachi un peu le code de l'époque.
VB:
Sub De_Ricocco_A_DavidEnNePassantPasParLaLorraineMaisParLaLoupe()
Dim arrFichiers As Variant
arrFichiers = Application.GetOpenFilename(MultiSelect:=True)
If IsArray(arrFichiers) Then
[A1].Resize(UBound(arrFichiers)) = Application.Transpose(arrFichiers)
Else
MsgBox "Aucun(s) fichier(s) sélectionné(s).", vbCritical, "Avertissement"
End If
End Sub
NB: Avec ce dernier code, deux petits plus :
1) On peut sélectionner un ou plusieurs fichier(s) (grâce à MultiSelect:=True)
2) On gère le clic sur le bouton Annuler​
 
Dernière édition:

David590

XLDnaute Occasionnel
Re : Sélectionner un fichier pour afficher son nom dans une cellule

Super, le code que tu viens d'ecrire me convient très bien, le deuxieme par contre affiche le chemin complet du fichier, dans mon cas juste le nom me convient

merci Staple ;)
 

David590

XLDnaute Occasionnel
Re : Sélectionner un fichier pour afficher son nom dans une cellule

A tout hasard, peut on gérer le clic sur le bouton annuler avec le premier code

ou bien afficher le nom du fichier uniquement (sans le chemin) avec le deuxieme code ? :)
 

Staple1600

XLDnaute Barbatruc
Re : Sélectionner un fichier pour afficher son nom dans une cellule

Re


Une petite modif (pour ce qui concerne le nom des fichiers)
VB:
Sub RecupererNomFichier()
Dim arrFichiers As Variant, Dcol&
Application.ScreenUpdating = False
arrFichiers = Application.GetOpenFilename(MultiSelect:=True)
If IsArray(arrFichiers) Then
[A1].Resize(UBound(arrFichiers)) = Application.Transpose(arrFichiers)
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=1, _
               TextQualifier:=1, Other:=-1, OtherChar:="\", _
               FieldInfo:=Array([{1, 1}], [{2, 1}], [{3, 1}], [{4, 1}], [{5, 1}])
Dcol = Cells(1, Columns.Count).End(xlToLeft).Column - 1
Columns(1).Resize(, Dcol).Delete Shift:=xlToLeft
Else
MsgBox "Aucun(s) fichier(s) sélectionné(s).", vbCritical, "Avertissement"
End If
Application.ScreenUpdating = True
End Sub
Pour le reste
A tout hasard, peut on gérer le clic sur le bouton annuler avec le premier code
ou bien afficher le nom du fichier uniquement (sans le chemin) avec le deuxieme code ? :)
Teste, adapte, modifie le(s) code(s) VBA proposé(s) ,utilises la loupe du forum et/ou un moteur de recherche
Bref, expérimentes, camarade XLDnaute. ;)
Mais cela , je l'ai déjà dit, non dans le précédent message ;)
NB:
Du bien-fondé de l'usage de la loupe d'XLD( en haut à droite de l'écran) avant de poster une question*, qui trotte dans la tête du demandeur ...:rolleyes:
(et du répondeur aussi ...:p:rolleyes:, cela m'aurait d'ailleurs permis de juste faire un petit CTRL+C/CTRL+V, au lieu de réécrire du code tout frais à 1h17! )
*: c'est bien pour cela qu'a été créé le point 1) [section Demandeur] de Lien supprimé, non ? ;)
 
Dernière édition:

David590

XLDnaute Occasionnel
Re : Sélectionner un fichier pour afficher son nom dans une cellule

Bonsoir Staple,

Ne crois surtout pas que je ne cherche pas, comme je l'ai appris sur le forum, je commence par chercher sur la loupe ou google et dans le cas ou je ne trouve pas, j'essai d'expliquer au mieux mon problème, encore mieux avec un fichier exemple (que j'ai fait) :D
Et ensuite je cherche à l'adapter à mon classeur, modifié, tésté, adapté, c'est aussi comme ça que j'ai appris pas mal

Bref malgré tout je sèche sérieusement pour l'adapter lol, si au lieu de A1 je souhaite mettre T6 ? J'ai essayé de mettre T6 la place des A1 et des ("T:T") à la place des ("A:A"), mais j'avoue que c'est au dessus de mes competence

Autre chose, après chaque execution, le bouton se deplace sur la gauche?? bizzare! :confused:
 

Staple1600

XLDnaute Barbatruc
Re : Sélectionner un fichier pour afficher son nom dans une cellule

Bonne nuit à tous

David950
Une petite question nuitamment surgie
Pourquoi veux-tu stocker le nom du fichier dans une cellule ?

NB: Mon dernier code (de fainéant) supprime des colonnes pour n'avoir que le nom du fichier.
C'est peut-être ce qui explique le décalage du bouton.

je commence par chercher sur la loupe ou google et dans le cas ou je ne trouve pas, j'essai d'expliquer au mieux mon problème, encore mieux avec un fichier exemple (que j'ai fait)

[aparté]
Si ces éléments ne sont pas précisés dans le premier message du demandeur, je ne peux pas le deviner ;)
Sauf à décréter que tous les membres fraîchement inscrits fassent comme toi des recherches avant de poser leur question, ce qui à mon avis n'est pas un réflexe majoritaire chez les petits nouveaux xldiens ;)
[/ fin aparté]
 

David590

XLDnaute Occasionnel
Re : Sélectionner un fichier pour afficher son nom dans une cellule

Bonjour Staples,
J'ai besoin du nom dans une cellule parce que j'ai des macros qui passent d'un classeur a l'autre et le nom de ce classeur n'est pas toujours le même
Ton premier code me convient très bien mais il est vrai que ca aurait ete pas mal la gestion du bouton annuler, ça evite juste un bug en cas de clique sur annuler

Merci encore
A bientôt :cool:
 

Staple1600

XLDnaute Barbatruc
Re : Sélectionner un fichier pour afficher son nom dans une cellule

Bonjour à tous

David950
Chez moi, quand je clique sur Annuler, une MsgBox apparaît.
Grâce à la ligne de code ci-dessous (incluse dans If/Else/End If)
MsgBox "Aucun(s) fichier(s) sélectionné(s).", vbCritical, "Avertissement"
 

Si...

XLDnaute Barbatruc
Re : Sélectionner un fichier pour afficher son nom dans une cellule

salut

chez moi, pas de problème avec
Code:
Sub CommandButton1_Click()
  Dim f
  f = Application.GetOpenFilename
  If f <> 0 Then [T6] = Split(f, "\")(UBound(Split(f, "\")))
End Sub

où T6 désigne l'adresse de la cellule réceptrice.

@Staple : pas de spleen avec le Split:p
 

Discussions similaires

Réponses
9
Affichages
172
Réponses
0
Affichages
155

Statistiques des forums

Discussions
312 345
Messages
2 087 466
Membres
103 550
dernier inscrit
ALHAERi