Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment utiliser "Application.GetSaveAsFilename" ...

4 réponses
Avatar
François
Bonjour à tous,

dans VBA, j'utilise la formule
nomfichier = Application.GetSaveAsFilename()
afin de recuperer le chemin d'acces et le nom d'un classeur qui m'interesse.
(nomfichier)
Exemple:
C:\monclasseur.xls

Je souhaite ensuite renvoyer dans la cellule A1 de mon classeur de travail
un lien vers la cellule A7 de la premiere feuille de ce
classeur(monclasseur.xls), normalement :
cells(1, 1).value = "='c:\[monclasseur.xls]Feuil1'!A7"

Comment créer dynamiquement, à l'aide de nomfichier (où d'autre chose) cela ?
Je suis bloqué par les "[ ]"... la formule :
cells(1, 1).value = "='" & nomfichier & "Feuil1'!A7" ne fonctionne evidement
pas !
:(

4 réponses

Avatar
michdenis
Bonjour François,

ceci devrait fonctionner :

2 ou 3 petites choses à adapter selon ton application...

Cette procédure requiert au moins excel 2000 à
cause de la fonction Split()
Au besoin on peut la substituer !

'-----------------------------------
Sub OuvertureFichiers()

Dim A As Variant, Fichier As String
Dim Adr As String, C As Variant
Dim Chemin As String

A = Application.GetOpenFilename("fichier excel (*.xls), *.xls", _
, "Sélection de vos fichiers excel", , False)

If TypeName(A) = "Boolean" Then Exit Sub

'Objectif obtenir une chaîne de ce type :
'='C:ATravail[Classeur1.xls]Feuil1'!A1
C = Split(A, "")
Fichier = C(UBound(C)) & "]"
Chemin = "='" & Left(A, Len(A) - Len(C(UBound(C)))) & "["
Adr = "Feuil1'!A1"

With Worksheets("Feuil1")
.Range("B20").Formula = Chemin & Fichier & Adr
End With

End Sub
'-----------------------------------


Salutations!




"François" <Franç a écrit dans le message de news:

Bonjour à tous,

dans VBA, j'utilise la formule
nomfichier = Application.GetSaveAsFilename()
afin de recuperer le chemin d'acces et le nom d'un classeur qui m'interesse.
(nomfichier)
Exemple:
C:monclasseur.xls

Je souhaite ensuite renvoyer dans la cellule A1 de mon classeur de travail
un lien vers la cellule A7 de la premiere feuille de ce
classeur(monclasseur.xls), normalement :
cells(1, 1).value = "='c:[monclasseur.xls]Feuil1'!A7"

Comment créer dynamiquement, à l'aide de nomfichier (où d'autre chose) cela ?
Je suis bloqué par les "[ ]"... la formule :
cells(1, 1).value = "='" & nomfichier & "Feuil1'!A7" ne fonctionne evidement
pas !
:(
Avatar
isabelle
bonjour François,

Sub Macro1()
nomfichier = Application.GetSaveAsFilename()
For i = Len(nomfichier) To 1 Step -1
If Mid(nomfichier, i, 1) = "" Then Exit For
Next
fichier = Right(nomfichier, Len(nomfichier) - i)
chemin = Left(nomfichier, i)
Range("A1").Formula = "='" & chemin & "[" & fichier & "]Feuil1'!A7"
End Sub

isabelle

Bonjour à tous,

dans VBA, j'utilise la formule
nomfichier = Application.GetSaveAsFilename()
afin de recuperer le chemin d'acces et le nom d'un classeur qui m'interesse.
(nomfichier)
Exemple:
C:monclasseur.xls

Je souhaite ensuite renvoyer dans la cellule A1 de mon classeur de travail
un lien vers la cellule A7 de la premiere feuille de ce
classeur(monclasseur.xls), normalement :
cells(1, 1).value = "='c:[monclasseur.xls]Feuil1'!A7"

Comment créer dynamiquement, à l'aide de nomfichier (où d'autre chose) cela ?
Je suis bloqué par les "[ ]"... la formule :
cells(1, 1).value = "='" & nomfichier & "Feuil1'!A7" ne fonctionne evidement
pas !
:(


Avatar
JB
Bonjour,

Sub Essai()
CheminFichier = Application.GetSaveAsFilename()
posSlash = InStrRev(CheminFichier, "")
fichier = Mid(CheminFichier, posSlash + 1)
chemin = Left(CheminFichier, posSlash)
Cells(1, 1).Formula = "='" & chemin & "[" & fichier & "]Feuil1'!A7"
End Sub

Cordialement JB
Avatar
François
Merci à tous pour vos reponses.

Je teste tout cela aujourd'hui ! (Dans le cas d'un chemin d'accés avec
plusieurs "" cela fonctionne t il aussi ? Ex : c:mes
documentsmonclasseur.xls)

Comme il est bon de se coucher après de longue recherche avec simplement des
questions et de se lever avec pleins de reponse.

Merci à vous, ce forum est super !