Copie lignes et coller dans un autre classeur

badr -  
 badr -
Bonjour,

J'ai crée une macro qui permet de copier plusieurs lignes dans la feuille ("Commissions") selon un critére (si la date en colonne "G" est comprise entre 2 dates affichées dans une autre cellule) et de copier ces lignes sur une autre feuille (feuil1).
Ma macro tourne bien, mais le probléme c'est qu'elle colle ces lignes sur la même feuille ou elle les copie, c'est-à-dire dans la feuille ("Commissions").
Voici mon code:

Sub Macro4()

Dim com As Worksheet

Dim dated As Integer
Dim datef As Integer
Dim x1 As Long
Dim fin As Long

dated = Range("J12").Value
datef = Range("J13").Value

Dim reg1 As Variant
MsgBox ("Ouvrir le fichier de commission")
reg1 = Application.GetOpenFilename(" classeur microsoft excel (*.xls), *.xls ", 2, "ouverture du mois en cours", True)
Workbooks.Open Filename:=reg1


Worksheets("Commissions").AutoFilterMode = False
Worksheets("feuil1").Activate
   
NumLig = 1
   With Worksheets("Commissions").Select
   fin = Cells(65536, 7).End(xlUp).Row
    For x1 = 2 To fin
    If dated < Cells(x1, 7).Value < datef Then
    Cells(x1, 7).EntireRow.Copy
    NumLig = NumLig + 1
    Cells(NumLig, 1).Select
    ActiveSheet.Paste
    End If
    Next
    End With

End Sub


Cordialement,
Badr
A voir également:

1 réponse

lilou75
 
Salut,

Cela vient probablement du fait que tu colle dans la feuille active mais la feuille active est "commission" With Worksheets("Commissions").Select
0
badr
 
Re,

Justement aprés le "with" c'est le fichier source qu'il faut mettre et le fichier de destination c'est le "Worksheets("feuil1").Activate" qu'il y a juste au dessus.

Cdlt.
0
lilou75
 
Pour moi le ".select" et le ".activate" donne tout les deux le Focus à un objet.
Donc essai de mettre ça :

With Worksheets("Commissions").Select
fin = Cells(65536, 7).End(xlUp).Row
For x1 = 2 To fin
If dated < Cells(x1, 7).Value < datef Then
Cells(x1, 7).EntireRow.Copy
NumLig = NumLig + 1
Cells(NumLig, 1).Select
Worksheets("feuil1").Activate
ActiveSheet.Paste
End If
Next
End With


Si j'ai bien compris ce que tu veux faire ça devrait fonctionner.
0
badr
 
Re,
j'avais déja esséyé avec ce code la mais ca va copier dans la feuil1 (où il n'y a pas de données) donc ce n'est pas ça.
Je vais voir avec d'autres méthodes.

Merci pour votre aide.

Cdlt.
0