SOS: copie de feuille dans un autre classeur
bocman
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
j'ai besoin d'un renseignement.
j'ai deux fichiers Excel
le premier qui est le fichier source s'appelle EXTRACTION.xls avec une feuille qui s'appelle "summary" qui contient des données
le deuxième qui sera le fichier cible s'appel QAcier.xls avec une feuille qui s'appel "Extraction" qui devra contenir les données de la feuille "summary" du fichier EXCTRACTION.xls.
Pour cela j'ai créé un bouton sur la feuille du fichier QAcier.xls qui lorsque je clique dessus me permettra d'avoir les données de la feuille "summary" du fichier "Extraction" dans la feuille "Extraction" du fichier QAcier.xls
J'ai créé le début de mon programme mais il me manque la fin.
Si vous pouviez m'aider.
Sub MAJ()
Dim cellule As Range, Ligne As Integer, colonne As Integer
EXTRACTION = "J:\Projet LP CAODAO\Projet 2.0\EXCEL\EXTRACTION.xls"
Workbooks.Open (EXTRACTION)
Ligne = 1
colonne = 1
For Each celle In Workbooks(EXTRACTION)
celle(Ligne, colonne) = Workbooks.Sheet.celle.Value("Extraction")
Ligne = Ligne + 1
Next
End Sub
j'ai besoin d'un renseignement.
j'ai deux fichiers Excel
le premier qui est le fichier source s'appelle EXTRACTION.xls avec une feuille qui s'appelle "summary" qui contient des données
le deuxième qui sera le fichier cible s'appel QAcier.xls avec une feuille qui s'appel "Extraction" qui devra contenir les données de la feuille "summary" du fichier EXCTRACTION.xls.
Pour cela j'ai créé un bouton sur la feuille du fichier QAcier.xls qui lorsque je clique dessus me permettra d'avoir les données de la feuille "summary" du fichier "Extraction" dans la feuille "Extraction" du fichier QAcier.xls
J'ai créé le début de mon programme mais il me manque la fin.
Si vous pouviez m'aider.
Sub MAJ()
Dim cellule As Range, Ligne As Integer, colonne As Integer
EXTRACTION = "J:\Projet LP CAODAO\Projet 2.0\EXCEL\EXTRACTION.xls"
Workbooks.Open (EXTRACTION)
Ligne = 1
colonne = 1
For Each celle In Workbooks(EXTRACTION)
celle(Ligne, colonne) = Workbooks.Sheet.celle.Value("Extraction")
Ligne = Ligne + 1
Next
End Sub
2 réponses
Bonjour, bonjour pijaku,
Apparemment le feuille EXTRACTION est soit vide ou les données existantes sont écrasées.
Dans ces conditions, une autre solution...
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Apparemment le feuille EXTRACTION est soit vide ou les données existantes sont écrasées.
Dans ces conditions, une autre solution...
Sub MAJ()
Dim NomSource As String, i As Integer
For i = 1 To Sheets.Count 'supprime la feuille EXTRACTION si existe
If Sheets(i).Name = "EXTRACTION" Then Sheets(i).Delete: Exit For
Next i
NomSource = "J:\Projet LP CAODAO\Projet 2.0\EXCEL\EXTRACTION.xls"
Workbooks.Open (NomSource)
ActiveWorkbook.Sheets("EXTRACTION").Copy before:=ThisWorkbook.Sheets(1)
ActiveWorkbook.Close
End Sub
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Bonjour,
essayez ceci (non testé) :
essayez ceci (non testé) :
Sub ImportDonnees()
Dim Extraction As String, DernCel As String
Dim RngUtile As Range
Dim TablDonnées()
Dim Col As Long, Lig As Long, DrLig As Long
'ouverture du fichier "source"
Extraction = "J:\Projet LP CAODAO\Projet 2.0\EXCEL\EXTRACTION.xls"
Workbooks.Open (Extraction)
'on remplit une variable tableau (TablDonnées) avec les éléments contenus dans
'la feuille summary
With ActiveWorkbook.Worksheets("summary")
DernCel = .Range("A1").SpecialCells(xlCellTypeLastCell).Address
Set RngUtile = .Range("A1:" & DernCel)
TablDonnées() = RngUtile
End With
'on ferme le classeur source
ActiveWorkbook.Close
'restitution des données
With Workbooks("QAcier.xls").Worksheets("summary")
DrLig = .Range("A" & Rows.Count).End(xlUp).Row
For Col = 1 To UBound(TablDonnées, 2)
For Lig = 1 To UBound(TablDonnées, 1)
On Error Resume Next ' Si erreur renvoyée par une formule
.Cells(Lig + DrLig, Col) = TablDonnées(Lig, Col)
On Error GoTo 0
Next Lig
Next Col
End With
Par contre j'aimerai que ça me ferme aussi EXTRACTION.xls
j'ai rajouter
Workbooks.close (NomSource) mais ça n'a pas l'air d'etre cela
'.... ActiveWorkbook.Sheets("EXTRACTION").Copy before:=ThisWorkbook.Sheets(1) ActiveWorkbook.Close'Cette ligne
Pour sauver la modif et fermer le classeur . EXTRACTION.xls
A+
mais pas le fichier EXTRACTION.xls
WorkBooks("EXTRACTION.xls").close true