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 -
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
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:
- Copier des lignes avec condition vers une autre feuille
- Comment copier une vidéo youtube - Guide
- Excel cellule couleur si condition texte - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Super copier - Télécharger - Gestion de fichiers
- Partager des photos en ligne - Guide
1 réponse
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)
Michel
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
Tu peux aussi utiliser les filtres
voir
http://boisgontierjacques.free.fr/
onglet VBA -filtres
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
Dans le code fourni, remplacer AE par Dercol
Abandon du suivi, Bonne continuation