Lecture classeur fermé et récupérer cellule
Bonjour,
J'ai un code qui cherche dans les classeurs des mots et les fait apparaitre en rouge
Code:
1 2 3 4 5 6 7 8 9 10 11
| Set Wb = Workbooks.Open(Repertoire & Fichier)
For Each cellule In Range("A1:A300")
If UCase(cellule.Value) Like "*" & UCase(mot) & "*" Then
'ici on mettra en gras rouge
cellule.Font.Color = vbRed
cellule.Font.Bold = True
Set j = cellule
Application.ScreenUpdating = False
End If |
: ouvre le classeur, recherche dans les cellules A1:A300 le mot et le met en rouge. Le souci c'est l'ouverture "physique" du classeur....je souhaiterais ne pas l'ouvrir "physiquement".
J'ai essayé de changer, modifier, et d'adapter le code de SilkyRoad
Code:
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
| Sub Requeteliste()
Dim Cn As ADODB.Connection
Dim Fichier As String
Dim NomFeuille As String, texte_SQL As String
Dim Rst As ADODB.Recordset
Application.Calculation = xlCalculationManual
'Définit le classeur fermé servant de base de données
Fichier = "C:\essais\miseajour.xls"
'Nom de la feuille dans le classeur fermé
NomFeuille = "Listes"
Set Cn = New ADODB.Connection
'--- Connection ---
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Fichier & _
";Extended Properties=Excel 8.0;"
.Open
End With
'-----------------
'Définit la requête.
'/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille.
texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
Set Rst = New ADODB.Recordset
Set Rst = Cn.Execute(texte_SQL)
'Ecrit le résultat de la requête dans la cellule A2
ThisWorkbook.Sheets("Listes").Range("A2").CopyFromRecordset Rst
'--- Fermeture connexion ---
Cn.Close
Set Cn = Nothing |
J'ai prévu de boucler sur les classeurs xls du dossier "essais", afin de boucler sur la lecture classeur fermé, mais je n'arrive pas à inclure mon code de recherche.....je vois bien qu'il faut que je remplace la ligne
Code:
ThisWorkbook.Sheets("Listes").Range("A2").CopyFromRecordset Rst
pa mon code de recherche, mais ça ne fonctionne pas....ou alors (mais c'est que je crois comprendre), c'est que le language ADO a des subtilités qui m'échappe...:lol:
Des idées ?
Merci,
A+