Coller premiere cellule vide dans un fichier fermé.

guigui76

XLDnaute Occasionnel
Bonjour est bon week-end.
Peut-on coller une selection à la premiere cellule vide d'une colonne sans ouvrir le fichier destination?
J'ai fait un essai mais sans réussite.
J'ai mis en rouge la ligne défecttueuse.
Merci de votre patiente.
Guillaume
Voici le code
Code:
Sub exportDonneeDansCelluleClasseurFerme()
    Dim Cn As ADODB.Connection
    Dim Cd As ADODB.Command
    Dim Rst As ADODB.Recordset
    Dim Fichier As String
    
    Fichier = "C:\Users\Moi\Desktop\11.xlsx"
    
    Set Cn = New ADODB.Connection
    
    Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=no;"""
    Set Cd = New ADODB.Command
    Cd.ActiveConnection = Cn
    Cd.CommandText = "Range(e65536).End(xlUp).Row + 1"
    
    Set Rst = New ADODB.Recordset
    [COLOR="red"]Rst.Open Cd, , adOpenKeyset, adLockOptimistic[/COLOR]   Rst(0).Value = "a1:an800"
    Rst.Update
    
    Cn.Close
    Set Cn = Nothing
    Set Cd = Nothing
    Set Rst = Nothing
End Sub
 
G

Guest

Guest
Re : Coller premiere cellule vide dans un fichier fermé.

Bonjour,

Cela va être difficile.
De plus CommandText doit contenir une requête SQL "SELECT, INSERT, UPDATE, DELETE" etc.

Pour ton cas se serait INSERT INTO pour chaque ligne (800)
ta commande dans une boucle 1 à 800 ressemberait à ceci:
Code:
    For i = 1 to 800
Set Cd = New ADODB.Command
    With Cd
        .ActiveConnection = Cn
        .CommandText = "INSERT into MaFeuille([Champ1],[Champ2],[Champ3]) values(" & Range("A" & i) &"," & Range("B" & 1) & "," & Range("C" & i) & ")"
        .CommandType = adCmdText
        .Execute
    End With
Next

Là je n'ai mis que 3 champs et tu en as 40.

Autant ouvrir le classeur, cela irait plus vite.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 510
Messages
2 089 149
Membres
104 051
dernier inscrit
jjouneau