Bonjour,
(Je suis encore debutant sur VBA Excell, je m'en sors pas mal sur VB-Access)
Je voudrais vous demander une aide svp par rapport à ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
Private Sub valider_Click()
Dim k As Integer
 
With Sheets("Feuil2")
Columns("A:F").ClearContents
End With
 
Set rst = db.OpenRecordset("SELECT [table].[id], [table].[Name], [table].[PrName], [table].[Start Date], [table].[End Date] FROM [table];")
 
k = 0
Do
    k = k + 1
    If k > 100 Then Exit Do
        With Sheets("Feuil2")
            .Cells(k, 1) = rst.Fields("id").Value
            .Cells(k, 2) = rst.Fields("Name").Value
            .Cells(k, 3) = rst.Fields("PrName").Value
            .Cells(k, 4) = rst.Fields("Start Date").Value
            .Cells(k, 5) = rst.Fields("End Date").Value
        End With
   rst.MoveNext
Loop Until rst.EOF
rst.Close
End Sub
Actuellement, tt est OK, ce code implement la feuil2 du meme fichier par la requete SQL, en connexion avec une BD (code sur module, aucun soucis de ce coté la aussi).
La requete est apte à recevoir une clause Where.
Mais je sens que ce code n'est pas ... assez flexible; du coup, je voudrais savoir si possible comment :

  1. Créer un nouveau fichier Excel(une seule feuille) en mode lecture seul (modification impossible, enregistrement possible) implementé par la requete (et qu'il l'ouvre entre temps).
  2. Sur le nouveau fichier Excel, mettre en premiere colonne les noms des colonnes de la requete SQL (coloré et figé).


Voila ! Merci d'avance!