Copier des lignes avec condition vers une autre feuille

r4944 Messages postés 122 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour ,

je voudrais copier des ligne d'une feuille vers un autre classeur ,mais avec une condition ,( copier seulement les lignes qui ont ''XX'' a la colonne (AE)
voici le code que j'utilise pour le moment mais comme vous voyez il copie toute la feuille


Sub Importdata()



Dim classeurSource As Workbook, classeurDestination As Workbook

Set classeurSource = Application.Workbooks.Open("C:\Users\riadh.said@cic.gc.ca\Desktop\Updatev3.xlsm", , True)

Set classeurDestination = ThisWorkbook






classeurSource.Sheets("Workload - Charge de travail").Cells.Copy classeurDestination.Sheets("Sheet1").Range("A2")

classeurSource.Close False

End Sub
A voir également:

1 réponse

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour

Merci d'envoyer le classeur source afin d'essayer d'être efficace
pour cela
Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le raccourci proposé (clic droit) dans le message de réponse
Dans l'attente

en attendant fait à l'aveugle en supposant que le point de départ dans la source est la colonne A et que l'on connait pas la dernière colonne (pourquoi transporter plus de 1000 cellules en copiant la ligne ?)
donc ce code sera à simplifier et corriger car il faudrait connaitre le nombre de lignes (environ)
Option Explicit
Option Base 1
'--------
Sub Importdata()
Dim Source As Workbook, Dercol As Integer
Dim Nbre As Integer, Tablo, Cptr As Integer, Lig As Integer, Col As Integer

Application.ScreenUpdating = False

Set Source = Application.Workbooks.Open("C:\Users\riadh.said@cic.gc.ca\Desktop\Updatev3.xlsm", , True)
With Sheets("Workload - Charge de travail")
Dercol = .Rows(2).Find(what:="*", searchdirection:=xlPrevious).Column
Nbre = Application.CountIf(.Columns("AE"), "XX")
ReDim Tablo(Nbre, Dercol)
Lig = 1
For Cptr = 1 To Nbre
Lig = .Columns("AE").Find("XX", .Cells(Lig, "AE"), xlValues).Row
For Col = 1 To Dercol
Tablo(Cptr, Col) = .Cells(Lig, Col)
Next Col
Next Cptr
End With
Source.Close False

With ThisWorkbook.Sheets("Sheet1")
.Range("A2").Resize(Cptr, Dercol) = Tablo
.Activate
End With

End Sub



Michel
2
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
au fait,

Tu peux aussi utiliser les filtres
voir
http://boisgontierjacques.free.fr/

onglet VBA -filtres
0
r4944 Messages postés 122 Date d'inscription   Statut Membre Dernière intervention  
 
https://www.cjoint.com/c/EJkuzb8Y2qi

voici le fichier , je voulais juste copier les actions qui on été complétés vous trouveriez XX dans la colonne AE , j'ai essayé d'utiliser les use forms c'était trop dure :/

merci pour votre aide
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > r4944 Messages postés 122 Date d'inscription   Statut Membre Dernière intervention  
 
pas vu de XX dans la colonne AE
0
r4944 Messages postés 122 Date d'inscription   Statut Membre Dernière intervention  
 
excusez c'est dans la dernière colonne
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > r4944 Messages postés 122 Date d'inscription   Statut Membre Dernière intervention  
 
Pas sérieux !!! :-(

Dans le code fourni, remplacer AE par Dercol
Abandon du suivi, Bonne continuation
0