Lecture / Ecriture sur Excell
Bonsoir à tous,
Après de nombreuses recherches, j'aurai aimé avoir votre avis sur ce que j'ai pu récolter ..
Tout d'abord, je souhaiterais afficher dans un programme en VB le contenu de cellules d'un dossier Excell.
Celui ci se présente de façon suivante, des questions en colonne A, les réponses en B et une lettre (O/N) servant d'indicateur dans la colonne C.
Mon souhait serait de pouvoir afficher la question dans un simple label, proposer à l'utiliser sa réponse puis lui montrer celle indiquée dans le fichier excell. Après quoi l'utilisateur indiquera si il souhaite revoir la question (notion de O/N)..
Donc voici ce que j'ai trouvé, si j'ai bien compris cette première partie sert à se connecter au classeur :
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| Sub RequeteClasseurFerme()
Dim Cn As ADODB.Connection
Dim Fichier As String
Dim NomFeuille As String, texte_SQL As String
Dim Rst As ADODB.Recordset
'Définit le classeur fermé servant de base de données
Fichier = "C:\monClasseurBase.xls"
'Nom de la feuille dans le classeur fermé
NomFeuille = "Feuil1"
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
Et cette partie pour lire directement les cellules :
Sub extractionValeurCelluleClasseurFerme()
Dim Source As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim ADOCommand As ADODB.Command
Dim Fichier As String, Cellule As String, Feuille As String
'Adresse de la cellule contenant la donnée à récupérer
Cellule = "B4:B4"
'Pour une plage de cellules, utilisez:
'Cellule = "A4:C10"
Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
'Chemin complet du classeur fermé
Fichier = "C:\Base.xls"
Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
Set ADOCommand = New ADODB.Command
With ADOCommand
.ActiveConnection = Source
.CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
End With
Set Rst = New ADODB.Recordset
Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
Set Rst = Source.Execute("[" & Feuille & Cellule & "]") |
Déjà est ce que les deux parties sont nécessaires, ou la dernière se suffit-elle ?
Et sinon que pensez vous de ce code, extrait du FTP du site de developpez.net
Merci pour votre réponse.