Afficher le nom du fichier ouvert dans une macro sous Excel

Afficher le nom du fichier ouvert dans une macro sous Excel - VB/VBA/VBS - Programmation

Marsh Posté le 06-03-2010 à 01:45:05    

Bonjour à tous.
Je me résigne à demander de l'aide sur le forum car je crois avoir atteint les limites de ma compétence.
 
J'ai créé sur Excel une macro qui agit comme suit lorsque je clique sur un bouton.
- Ouverture de l'explorateur de Windows
- Je sélectionne le fichier que je désire
- Le lien du fichier est mis en lien hypertexte dans la cellule que j'ai préalablement sélectionnée
 
Tout va bien si ce n'est que je n'arrive absolument pas à enlever le chemin du lien affiché dans la cellule.
Je voudrais avoir le nom du fichier uniquement du style "truc.txt" au lieu d'avoir un "C:\répertoire\sous répetoire\truc.txt"
 
Merci à ceux qui pourront m'assister ;)
 
PS : La macro que j'utilise ci-dessous

Citation :


Sub Ouverture()
    fichier = Application.GetOpenFilename()
    If fichier <> False Then
    MsgBox "Insertion du fichier " & fichier, vbOKOnly, "Confirmation"
    Else: MsgBox "Opération annulée ", vbOKOnly, "Confirmation": End
    End If
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="file://" & fichier
End Sub


Message édité par biere sans alcool le 06-03-2010 à 01:46:18
Reply

Marsh Posté le 06-03-2010 à 01:45:05   

Reply

Marsh Posté le 06-03-2010 à 12:39:43    

C'est bon j'ai trouvé tout seul.
Il suffisait de continuer la macro avec un remplacer.
Ca donne ça à la suite pour ceux qui seraient interessés
 

Citation :

   Range("A1:AP411" ).Select
    Selection.Replace What:=".txt", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="C:\répertoire\sous répetoire\", Replacement:="" _
        , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat _
        :=False, ReplaceFormat:=False
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollRow = 2
    ActiveWindow.ScrollRow = 3
    ActiveWindow.SmallScroll ToRight:=28
    Range("A1" ).Select


 
Merci quand même ;)

Reply

Marsh Posté le 17-03-2010 à 16:03:38    

Hello, le souci c'est que si tu changes de dossier, ton code ne fonctionne plus...
 
Une petite routine qui pourrait te servir. Je pars du principe que le chemin complet du fichier est dans la variable fichier
 

Code :
  1. Dim NomFichierLong As String, x As Integer
  2. 'pour avoir fichier comme variable de référence en fin de traitement
  3. NomFichierLong = fichier
  4. 'On passe chaque caractere un par un en partant de la fin
  5. For x = Len(NomFichierLong) To 1 Step -1
  6.     'Si le caractere sur lequel on est, est = à \
  7.     If Mid(NomFichierLong, x, 1) = "\" Then
  8.         'On prend les derniers caracteres jusqu'au \
  9.         fichier = Right(NomFichierLong, Len(NomFichierLong) - x)
  10.         'on sort de la boucle
  11.         Exit For
  12.     End If
  13. Next x


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 18-03-2010 à 09:36:34    

Merci pour la précision ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed