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 : Range("A" & Co).Select sachant que Co = Sheets("FEmai" ).Range("A4" ).End(xlDown).Row + 1 (idem pour Co1 Co2 et Co3)
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.
Marsh Posté le 15-08-2014 à 10:31:38
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 :
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 : Range("A" & Co).Select sachant que Co = Sheets("FEmai" ).Range("A4" ).End(xlDown).Row + 1 (idem pour Co1 Co2 et Co3)
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