Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
486
Réponses
4
Affichages
151
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…