Copier feuille excel dans un autre classeur sans l'ouvrir vb excel
erti1711
Messages postés75Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention16 juin 2006
-
22 juin 2005 à 10:51
erti1711
Messages postés75Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention16 juin 2006
-
22 juin 2005 à 11:53
Bonjour a tous les développeurs,
dans le cadre de mon stage je réalises des devis,j'ai un Classeur1 qui me sert de faire les devis et j'ai un autre classeur Archives_Devis dans lequel sera stocker les devis réalisés.Ce que je souhaiterais faire c'est copier UNIQUEMENT la feuille DEVIS du Classeur1 dans le classeur Archives_Devis en gardant aussi la mise en forme si possible et sans l'ouvrir à chaque fois.Sachant que le numéro du devis sera le nom de la feuille dans le classeur Archives_Devis.
On ma déjà proposé un bout de code mais cela ne marche pas.
Sub Export_VersNouvelleFeuille_ClasseurExcelFerme()
'transférer la feuille "devis" dans un nouvel onglet d'un classeur fermé
Dim oRS As ADODB.Recordset
Dim oConn As ADODB.Connection
Dim maFeuille As String, prepaTable As String
Dim j As Integer, i As Integer
'nom(sans espace!) de la feuille Excel qui va etre créée dans le classeur fermé
maFeuille = "ArchiveDevis002"
Set oConn = New ADODB.Connection
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Classeur1_Fermé.xls;" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""
For i = 1 To 10 'nombre de colonnes à transférer
'paramétrage entêtes de colonnes et types de données
prepaTable = prepaTable & "Colonne" & i & " Memo ,"
Next i
Set oRS = New ADODB.Recordset
oRS.Open "Select * from " & maFeuille, oConn, adOpenKeyset, adLockOptimistic
For j = 1 To 40 'nombre de lignes à transferer
oRS.AddNew
For i = 1 To 10 'nombre de colonnes à transférer
oRS.Fields(i - 1) = Sheets("devis").Cells(j, i)
Next i
oRS.Update
Next j
oRS.Close
oConn.Close
End Sub
Quelqu'un aurait-il une autre solution SVP,c'est urgent car je finis bientot mon stage.
MERCI D'AVANCE.
A voir également:
Vba copier une feuille dans un autre classeur sans ouvrir
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 22 juin 2005 à 11:25
Voila un bout de code qui copie la Feuil1 de Classeur2 à la fin de classeur 1 et qui renomme la copie
Public Sub test()
Dim l_WorkSheet As Worksheet
Workbooks("Classeur2").Worksheets("Feuil1").Copy After:=Workbooks("Classeur1").Worksheets(Workbooks("Classeur1").Worksheets.Count)
'Récupère la feuille qui vient d'être copiée (dernière feuille du classeur)
Set l_WorkSheet = Workbooks("Classeur1").Worksheets(Workbooks("Classeur1").Worksheets.Count)
'Renomme la feuille
l_WorkSheet.Name = "toto" & Workbooks("Classeur1").Worksheets.Count
End Sub
erti1711
Messages postés75Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention16 juin 20061 22 juin 2005 à 11:46
Merci pour le bout de code.Cela marche mais on est obligé d'ouvrir le deuxième classeur.Comment faire pour que le nom de la feuille qu'on enregistre soit égale au numéro du devis?SVP
merci