Voici la source complète :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| Sub VerificationDuContenuDeLaDerniereLigne()
'!!! référence Microsoft ActiveX Data Objects x.x & Microsoft ADO ext x.x for DLL and Security Library necessaire
'connection en SQL via ADO
Dim Source As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim ADOCommand As ADODB.Command
'Recherche des fichiers
Dim ListeFich As New Collection
Dim Fichier As Variant
Dim Repertoire As String, Plage As String, Feuille As String
Dim Resultat As String
Dim Ligne As Double
'Adresse de la plage de Plages contenant les impulsions
Plage = "C1442:C1442"
Feuille = "Brut$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
'Chemin complet des classeurs fermés
Repertoire = "D:\SavBDDBIPV"
RecursiveDir ListeFich, Repertoire, "*.xlsx", True
For Each Fichier In ListeFich
'Initialisation de la connection avec la source de données
Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Fichier & ";Extended Properties=""Excel 12.0 Xml;HDR=Yes;IMEX=1"";"
Set ADOCommand = New ADODB.Command
'Initialisation de la commande à envoyer
With ADOCommand
.ActiveConnection = Source
.CommandText = "SELECT * FROM [" & Feuille & Plage & "]"
End With
'Envoi de la requête
Set Rst = New ADODB.Recordset
Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
Set Rst = Source.Execute("[" & Feuille & Plage & "]")
'->à cette étape, on a un Rst qui contient nos données
Range("A" & Ligne) = Fichier
Range("B" & Ligne).CopyFromRecordset Rst
If Range("B" & Ligne) = "" Then Range("C" & Ligne) = 1
Ligne = Ligne + 1
Rst.Close
Source.Close
Set Source = Nothing
Set Rst = Nothing
Set ADOCommand = Nothing
Next Fichier
End Sub |
Effectivement, il faut peut être que je précise la feuille dans laquelle je veux travailler. Dois-je donc écrire quelque chose comme
"Data Source=" & Fichier & "[" & Feuille & "]"
???
Info : RecursiveDir est une fonction de recherche des fichiers.
Edit : Les fichiers et les feuilles ne sont pas protégées.
P.
Partager