Microsoft 365 vba récupérer valeur cellule d'une autre feuille

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 !

Diane272727

XLDnaute Junior
Bonjour ,
je n'arrive pas à récupérer la valeur d'une cellule d'une feuille d'un autre fichier
voici mes fichiers :

Source :
Onglet "toto", cellule A1 = 8

Test
A1 : =GetCellValue(A2; "toto"; "A1") -> ça devrait me renvoyer la valeur 8
A2 : C:\Users\XX\Desktop\Source.xlsx (chemin à adapter sur votre PC)

ça me renvoi "Erreur : Fichier non trouvé".
Pourtant, mon fichier est bien présent au bon endroit.

Auriez vous une idée ?
merci beaucoup
 

Pièces jointes

Solution
Bonjour,

Une fonction bien plus rapide en utilisant une requête ADODB
VB:
Function GetCelVal(FilePath As String, SheetName As String, CellRef As String)
  Dim Conn As Object
  Dim Rs As Object
  Dim FileFullPath As String
  Dim Query As String
 
  FileFullPath = "'" & FilePath & "[" & Mid(FilePath, InStrRev(FilePath, "\") + 1) & "]" & SheetName & "'"
  Query = "SELECT * FROM [" & SheetName & "$" & CellRef & ":" & CellRef & "]"
  ' Création de la connexion ADODB
  On Error Resume Next
  Set Conn = CreateObject("ADODB.Connection")
  Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath & ";Extended Properties='Excel 12.0;HDR=No'"
  ' Exécuter la requête
  Set Rs = Conn.Execute(Query)
  ' Vérifier si des données sont...
Bonjour,

Une fonction bien plus rapide en utilisant une requête ADODB
VB:
Function GetCelVal(FilePath As String, SheetName As String, CellRef As String)
  Dim Conn As Object
  Dim Rs As Object
  Dim FileFullPath As String
  Dim Query As String
 
  FileFullPath = "'" & FilePath & "[" & Mid(FilePath, InStrRev(FilePath, "\") + 1) & "]" & SheetName & "'"
  Query = "SELECT * FROM [" & SheetName & "$" & CellRef & ":" & CellRef & "]"
  ' Création de la connexion ADODB
  On Error Resume Next
  Set Conn = CreateObject("ADODB.Connection")
  Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath & ";Extended Properties='Excel 12.0;HDR=No'"
  ' Exécuter la requête
  Set Rs = Conn.Execute(Query)
  ' Vérifier si des données sont retournées
  If Not Rs.EOF Then
      GetCelVal = Rs.Fields(0).Value
  Else
      GetCelVal = "Erreur"
  End If
  ' Fermer les objets
  Rs.Close
  Conn.Close
  Set Rs = Nothing
  Set Conn = Nothing
End Function

A+
 
- 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

Discussions similaires

Réponses
38
Affichages
468
Réponses
4
Affichages
146
Retour