récuperer des données d'un autre classeur

  • Initiateur de la discussion Initiateur de la discussion lpp
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

lpp

Guest
Bonjour à tous,
alors mon soucis: j'ai un classeur dans lequel je voudrais ceci:

j'appuie sur un bouton, j'obtiens une fenetre parcourir ou je peux selectionner un classeur excel. qd je valide mon choix, les données contenue ds la première feuille de ce classeur distant, dans des cases bien définies et immuables, sont copiées dans des cellules précises de mon classeur maître (celui où il y a le code VBA ou macro).

mon souci, c'est que si j'utilise la fonction "Application.GetOpenFilename" en retour, j'ai le résultat sous la forme c:\source\toto.xls et apparemment il faudrait que j'ai c:\source\[toto.xls] pour pouvoir après faire mon acquisition sous la forme ='c:\source\[toto.xls]feuille1'!$B1 si je veux prendre les données de la cellule B1 de la première feuille du classeur source pour les mettre ds mon classeur cible

alors du coup, je bloque un peu, je sais pas trop si je suis sur la bonne voie... une idée? une solution?

merci

lpp
 
ah oui, j'oubliais, bien sûr les fichiers sources sont des fichiers fermés, et la fonction "parcourir" est necessaire puiske ces fichiers peuvent ne pas être situés dans une même répertoire...

j'ai trouvé qu'apparemment je pourrais utiliser les fonctions ADO pour récupérer les données d'un fichier fermé... est-ce que ce serait une bonne voie de compiler cette fonction avec Application.GetOpenFilename???

chuis dans l'incertitude totale...

help!

lpp
 
je continue mes périgrinations....

j'ai réussi à obtenir le chemin du fichier de la forme c:\données\[toto.xls] en faisant un test sur la position de "\" sur le resultat de Application.GetOpenFilename...

mais si je fais:

.range ("A" & "1").value = "='" & chemin & "feuille1'!$B1" ben ça marche pas du tout... je sais pas si je m'y prends mal ou si c'est pas possible, ou si le fait que le classeur soit fermé, etc...

une âme charitable?

lpp
 
ok ok...
bon ben je vois que tout ça vous a bien inspiré... lol

j'ai fini par trouver tout seul comme un grand, surtout en fait en compilant les différents morceaux que j'ai trouvé sur ce forum... la solution, c'était la formule "ExecuteExcel4Macro"

je vous donne le code, pour les prochains galériens... 🙂




'clik sur bouton "Parcourir":

Private Sub CommandButton1_Click()


'recherche du fichier source:

With Sheets("Feuil1")
Dim chemin As String
chemin = Application.GetOpenFilename


'obtention du nom de fichier (avec extension):

Dim i As Integer
Dim Pa As String
Pa = chemin
For i = 1 To Len(Pa) - 1
If Mid(Pa, Len(Pa) - i, 1) = "\" Then
Pa = Right(Pa, i)
Exit For
End If
Next i


'obtention du répertoire (avec chemin complet depuis la racine):

Dim j As Integer
Dim Pb As String
Pb = chemin
For j = 1 To Len(Pb) - 1
If Mid(Pb, Len(Pb) - j, 1) = "\" Then
Pb = Left(Pb, Len(Pb) - j)
Exit For
End If
Next j


'compilation pour obtenir la bonne formulation (avec les crochets):
'(là on va chercher la valeur située à la 5ème ligne et 3ème colonne)

Dim tot As String
tot = "'" & Pb & "[" & Pa & "]Feuil1'!R5C3"

'et on effectue la formule magique! (on met la donnée en A5):

Range("A5").Value = ExecuteExcel4Macro(tot)

End With

End Sub



et voilà! encore une mission réussie pour supercanard! lol

merci qd même à ceux qui avaient commencé un bout de petit morceau de reflexion à ce problème!
ciao!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
731
Retour