Excel : Copier des lignes sous condition
Allllex
Messages postés
3
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis débutant en VBA et je n'arrive pas à adapter les macros que j'ai pu trouver sur ce site.
Je travaille sur une feuille excel avec environ 10 000 lignes. Elles sont actuellement rangées par date. Dans la 3ème colonne ( positionnée en colonne E ), est renseigné le département. Je dois créer 3 nouveaux tableaux correspondants à 3 grands groupes de départements. Je donc veux copier toutes les lignes dont le département est 1,2,5,8...93 dans la feuille excel 1, les lignes dont le département est 3,9,...94 dans la feuille excel 2, les lignes dont le département est 4,6,7...95 dans la feuille excel 3.
Si je ne peux copier que les lignes correspondants à un département à la fois ce n'est pas grave, je peux le faire 95 fois. J'ai besoin d'une macro car je ne peux pas raisonnablement le faire pour chaque ligne à la main, soit plus de 10 000 fois...
Merci de votre aide !
Alex
Je suis débutant en VBA et je n'arrive pas à adapter les macros que j'ai pu trouver sur ce site.
Je travaille sur une feuille excel avec environ 10 000 lignes. Elles sont actuellement rangées par date. Dans la 3ème colonne ( positionnée en colonne E ), est renseigné le département. Je dois créer 3 nouveaux tableaux correspondants à 3 grands groupes de départements. Je donc veux copier toutes les lignes dont le département est 1,2,5,8...93 dans la feuille excel 1, les lignes dont le département est 3,9,...94 dans la feuille excel 2, les lignes dont le département est 4,6,7...95 dans la feuille excel 3.
Si je ne peux copier que les lignes correspondants à un département à la fois ce n'est pas grave, je peux le faire 95 fois. J'ai besoin d'une macro car je ne peux pas raisonnablement le faire pour chaque ligne à la main, soit plus de 10 000 fois...
Merci de votre aide !
Alex
A voir également:
- Excel : Copier des lignes sous condition
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
8 réponses
Bonjour,
Il faudrait connaitre au minimum les listes complètes ds 3 groupes de départements
et d'indiquer quelles colonnes on doit copier car copier toute une ligne encombre plus que bêtement la mémoire....
Au besoin, mettre un extrait (env 1000 lignes)du classeur, et non un exemple, sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le lien proposé dans le message de réponse
Dans l'attente
Michel
Il faudrait connaitre au minimum les listes complètes ds 3 groupes de départements
et d'indiquer quelles colonnes on doit copier car copier toute une ligne encombre plus que bêtement la mémoire....
Au besoin, mettre un extrait (env 1000 lignes)du classeur, et non un exemple, sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le lien proposé dans le message de réponse
Dans l'attente
Michel
Bonjour
donne au moin un modele de ton fichier reduit
avec la liste des departement par groupe
A+
Maurice
donne au moin un modele de ton fichier reduit
avec la liste des departement par groupe
A+
Maurice
Zone 1
2
8
10
14
18
27
28
45
50
51
54
57
58
59
60
61
62
75
76
77
78
80
89
91
92
93
94
95
Zone 2
1
3
5
7
13
15
20
21
25
26
38
39
42
43
52
55
63
67
68
69
70
71
73
74
88
90
Zone 3
4
6
9
11
12
16
17
19
22
23
24
29
30
31
32
33
35
36
37
40
41
44
46
47
48
49
53
56
64
65
66
72
79
81
82
83
84
85
86
87
et voici l'extrait de mon fichier : https://www.cjoint.com/?3BklVeHwdom
Je souhaiterais copier les toutes les colonnes (il y en a 5) à chaque fois.
Merci pour votre rapidité !!
2
8
10
14
18
27
28
45
50
51
54
57
58
59
60
61
62
75
76
77
78
80
89
91
92
93
94
95
Zone 2
1
3
5
7
13
15
20
21
25
26
38
39
42
43
52
55
63
67
68
69
70
71
73
74
88
90
Zone 3
4
6
9
11
12
16
17
19
22
23
24
29
30
31
32
33
35
36
37
40
41
44
46
47
48
49
53
56
64
65
66
72
79
81
82
83
84
85
86
87
et voici l'extrait de mon fichier : https://www.cjoint.com/?3BklVeHwdom
Je souhaiterais copier les toutes les colonnes (il y en a 5) à chaque fois.
Merci pour votre rapidité !!
Merci de mettre tes 3 listes dans ton classeur XL: évite moi le pensum de les recopîer à la main
d'autre part il est important que que tu me livre au moins 1000 lignes car on code pas de la m^me manière avec > 1000 lignes
A toi de voir mais Si ca te gène d'accèder à mes demandes pour t'aider, j'arr^te tout de suite :-(
d'autre part il est important que que tu me livre au moins 1000 lignes car on code pas de la m^me manière avec > 1000 lignes
A toi de voir mais Si ca te gène d'accèder à mes demandes pour t'aider, j'arr^te tout de suite :-(
Bonjour
je pense a un truc comme ca
http://cjoint.com/?3Bkm0OR0nrn
a toi de voir si ca te va
A+
Maurice
je pense a un truc comme ca
http://cjoint.com/?3Bkm0OR0nrn
a toi de voir si ca te va
A+
Maurice
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci pour le classeur :-(
et en + il faut recopier à la main tes 3 listes ?
Tu veux vraiment qu'on t'aide ou pas ?
et en + il faut recopier à la main tes 3 listes ?
Tu veux vraiment qu'on t'aide ou pas ?
Bonjour
avec recupe des Zone
A+
Maurice
avec recupe des Zone
Sub TestZone()
Application.ScreenUpdating = False
Feuil2.Cells.ClearContents
Feuil3.Cells.ClearContents
Feuil4.Cells.ClearContents
L1 = 2
L2 = 2
L3 = 2
R = 10
For L = 9 To Range("C" & Rows.Count).End(xlUp).Row
Select Case Cells(L, 5).Value
'Zone 1
Case 2, 8, 10, 14, 18, 27, 28, 45, 50, 51, 54, 57, 58, 59, 60, 61, 62, 75, 76, 77, 78, 80, 89, 91, 92, 93, 94, 95
Cells(L, R).Value = "Zone1"
Range("C" & L & ":G" & L).Copy
Feuil2.Range("B" & L1).PasteSpecial xlPasteValues
L1 = L1 + 1
'Zone 2
Case 1, 3, 5, 7, 13, 15, 20, 21, 25, 26, 38, 39, 42, 43, 52, 55, 63, 67, 68, 69, 70, 71, 73, 74, 88, 90
Cells(L, R).Value = "Zone2"
Range("C" & L & ":G" & L).Copy
Feuil3.Range("B" & L2).PasteSpecial xlPasteValues
L2 = L2 + 1
'Zone 3
Case 4, 6, 9, 11, 12, 16, 17, 19, 22, 23, 24, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 44, 46, 47, 48, 49, 53, 56, 64, 65, 66, 72, 79, 81, 82, 83, 84, 85, 86, 87
Cells(L, R).Value = "Zone3"
Range("C" & L & ":G" & L).Copy
Feuil4.Range("B" & L3).PasteSpecial xlPasteValues
L3 = L3 + 1
Case Else
Cells(L, R).Value = ""
End Select
Next
Application.CutCopyMode = False
End Sub
A+
Maurice