Bonjour a tous,
Je suis débutant en macro
Je viens vers vous pour résoudre un problème sur une macro en boucle
je vous détail ce que je veux faire :
Dans un onglet j'ai un tableau avec une liste. je veux reclasser chaque ligne de ce tableau dans différents tableaux selon des critères différents.
J'utilise une boucle pour traiter ligne par ligne mon tableau avec ma liste.
voici ma macro :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 Sub liste() Sheets("D05" ).Select FindeLigne = ActiveSheet.UsedRange.Rows.Count + 1 Numeroligne = 1 Co = Sheets("FEmai" ).Range("A4" ).End(xlDown).Row + 1 Co1 = Sheets("FEmai" ).Range("A33" ).End(xlDown).Row + 1 Co2 = Sheets("FEmai" ).Range("A58" ).End(xlDown).Row + 1 Co3 = Sheets("FEmai" ).Range("A208" ).End(xlDown).Row + 1 While Numeroligne < FindeLigne Sheets("D05" ).Select Range("A" & Numeroligne, "J" & Numeroligne).Select Selection.Copy If Sheets("D05" ).Range("I" & Numeroligne).Value = "AMB" Then Sheets("FEmai" ).Select Range("A" & Co).Select ActiveSheet.Paste Range("A4" ).Select End If If Sheets("D05" ).Range("I" & Numeroligne).Value = "T" Then Sheets("FEmai" ).Select Range("A" & Co1).Select ActiveSheet.Paste Range("A4" ).Select End If If Sheets("D05" ).Range("I" & Numeroligne).Value = "TM" Then Sheets("FEmai" ).Select Range("A" & Co2).Select ActiveSheet.Paste Range("A4" ).Select End If If Sheets("D05" ).Range("I" & Numeroligne).Value = "VSL" Then Sheets("FEmai" ).Select Range("A" & Co3).Select ActiveSheet.Paste Range("A4" ).Select End If Numeroligne = Numeroligne + 1 Wend
Mon problème vient d'une ligne de ma macro à partir du 2ème tour de ma boucle car au 1er tour tt marche correctement.
Voici la ligne qui beug :sachant que
Code : Sélectionner tout - Visualiser dans une fenêtre à part Range("A" & Co).Select(idem pour Co1 Co2 et Co3)
Code : Sélectionner tout - Visualiser dans une fenêtre à part Co = Sheets("FEmai" ).Range("A4" ).End(xlDown).Row + 1
Mon souci vient du +1 car je veux sélectionner la première cellule vide de la colonne "A" pour coller à la suite de mon tableau la ligne avec le critère demander.
Donc sur le 1er tour la première tt se passe comme je veux.
Mais sur le deuxième tour la macro ne prend pas en consédration le +1, la cellule qu'elle selection est la derniére cellule du tableau qui est rempli.
Si quelqu'un peut m'aider ça serai super sympa.
J'espère avoir été claire dans mes explication.
Merci
Partager