Excel : Copier des lignes sous condition
Allllex
Messages postés
3
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 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
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - 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