Sub récup_une_plage_de_cellules()
Dim chemin$, fichier$, feuille$, cellule As Range, rang As Range
chemin = "C:\Users\polux\Desktop"
fichier = "hhhhhtml.xls"
feuille = "Feuil1"
Set rang = Range("E3:F5")
tablo = (GetVal_on_closed_fich(chemin, fichier, feuille, rang))
Cells(1, 1).Resize(UBound(tablo), UBound(tablo, 2)) = tablo
End Sub
Sub récup_une_seule_valeur()
Dim chemin$, fichier$, feuille$, cellule As Range, rang As Range
chemin = "C:\Users\polux\Desktop"
fichier = "hhhhhtml.xls"
feuille = "Feuil1"
Set rang = Range("E3")
MsgBox GetVal_on_closed_fich(chemin, fichier...
Dim Source As Worksheet
Set Source = Workbooks("Gestion Temps.xlsm").Worksheets("Planning")
Sub récup_une_plage_de_cellules()
Dim chemin$, fichier$, feuille$, cellule As Range, rang As Range
chemin = "C:\Users\polux\Desktop"
fichier = "hhhhhtml.xls"
feuille = "Feuil1"
Set rang = Range("E3:F5")
tablo = (GetVal_on_closed_fich(chemin, fichier, feuille, rang))
Cells(1, 1).Resize(UBound(tablo), UBound(tablo, 2)) = tablo
End Sub
Sub récup_une_seule_valeur()
Dim chemin$, fichier$, feuille$, cellule As Range, rang As Range
chemin = "C:\Users\polux\Desktop"
fichier = "hhhhhtml.xls"
feuille = "Feuil1"
Set rang = Range("E3")
MsgBox GetVal_on_closed_fich(chemin, fichier, feuille, rang)
End Sub
'La fonction retourne un string ou tableau
'1 un string si l'argument "rang" est une seule celluleet donc sa valeur
'2 une variable tableau si rang est une plage de cellules donc les !! valeurs dans une variable tableau
Function GetVal_on_closed_fich(ByVal chemin As String, ByVal fichier As String, ByVal feuille As String, rang As Range) As Variant
Dim Rc$, tableau(), lig&, col&
If rang.Cells.Count = 1 Then
Rc = "R" & rang.Row & "C" & rang.Column
GetVal_on_closed_fich = ExecuteExcel4Macro("'" & chemin & "\[" & fichier & "]" & feuille & "'!" & Rc)
Else
ReDim tableau(1 To rang.Rows.Count, 1 To rang.Columns.Count)
For Each cel In rang.Cells
lig = cel.Row: col = cel.Column
Rc = "R" & lig & "C" & col
tableau(lig - rang.Row + 1, col - rang.Column + 1) = ExecuteExcel4Macro("'" & chemin & "\[" & fichier & "]" & feuille & "'!" & Rc)
Next
GetVal_on_closed_fich = tableau
End If
End Function
Sub extractionValeurCelluleClasseurFerme()
Dim Source As ADODB.Connection
Dim ADOCommand As ADODB.Command
Dim Rst As ADODB.Recordset
Dim Fichier As String, Cellule As String, Feuille As String
'Adresse de la cellule contenant la donnée à récupérer
Cellule = "A3"
'Pour une plage de cellules, utilisez:
'Cellule = "A4:C10"
NomFeuille = "essai$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
'Chemin complet du classeur fermé
Fichier = ThisWorkbook.Path & "\test2.xlsm"
Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Extended Properties=""Excel 12.0;HDR=NO;"";"
'Source.CursorLocation = adUseClient
Set Rst = New ADODB.Recordset
Rst.Open "SELECT * FROM [" & NomFeuille & "A1:A10000] WHERE NOT ISNULL(F1);", Source, adOpenStatic, adLockReadOnly
If Rst.RecordCount > 0 Then Rst.MoveLast
Set Rst = Source.Execute("SELECT * FROM [" & NomFeuille & Cellule & "]""")
Sheets("Feuil1").Range("B5") = Val(Rst("F1")) + 1
Rst.Close
Source.Close
Set Source = Nothing
Set Rst = Nothing
Set ADOCommand = Nothing
End Sub