LUSTRUCRU
Messages postés91Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention15 mars 2013
-
27 nov. 2009 à 00:17
userrrqi115
Messages postés181Date d'inscriptionmardi 18 novembre 2008StatutMembreDernière intervention 4 février 2011
-
27 nov. 2009 à 10:27
Bonsoir le Forum
Voici un code que je souhaite utiliser pour copier d'un fichier Excel Ouvert vers un fichier Excel Fermé Ce code fonctionne parfaitement bien pour un enregistrement.
J'ai sur le fichierOuvert X enregistrement (cela bouge tout les jours mais avec un limite à 1000 lignes), donc pour mettre mon fichier Fermé à jour il me faut dans l'absolue cliquer 1000 fois sur la commande déclenchant la routine d'écriture.
Ma question est donc la suivante, comment faire une boucle (For je crois)pour boucler sur toute les lignes remplies dans le fichier ouvert,
c'est à dire faire tourner ce code autant de fois qu'il y a "d'enregistrements" dans le fichier ouvert. Je ne "copie" pas les entêtes bien entendu.
j'espère ne pas avoir été trop confus dans mes explications.
je vous joint le code pour étayer mes propos.
Nb je suis relativement néophyte en la matière (VBA)merci donc de votre indulgence
Voci le code
Sub ajoutEnregistrement()
Dim Cn As ADODB.Connection
Dim Fichier As String, Feuille As String, strSQL As String
Dim LaDate As Date
Dim PrixUnit As Integer
Dim leNom As String, lePrenom As String
Fichier = "C:\Base.xls"
Feuille = "Feuil1"
'Les données à insérer:
LaDate = Cells.range("A1")
leNom = cells.range("A2")
lePrenom = cells.range("A3")
PrixUnit = cells.range("A4")
Set Cn = New ADODB.Connection
With Cn
.Provider = "MSDASQL"
.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & Fichier & "; ReadOnly=False;"
.Open
End With
'Les données doivent être indiquées dans le même ordre que les champs dans la base de données.
strSQL = "INSERT INTO [" & Feuille & "$] " _
& "VALUES (#" & LaDate & "#, " & _
"'" & leNom & "', " & _
"'" & lePrenom & "', " & _
PrixUnit & ")"
Cn.Execute strSQL
Cn.Close
Set Cn = Nothing
End Sub