Votre question
Résolu

Lignes supplémentaires fausse dans copier/coller sous conditions dans autre feuille

Tags :
  • Programmation
Dernière réponse : dans Programmation
20 Juin 2017 14:24:09

Bonjour :)  ,
Je viens de faire un bout de code qui fonctionne plutôt bien grâce aux conseils et post de Zeb. :D 
Ce code a pour but de copier coller les lignes entières selon trois conditions sur une colonne précise du premier worksheet. Et ça marche bien.
Mais j'ai un seul soucis sur ma macro... (VBA-2013-Excel)
A la fin de chaque données de chaque onglet je me retrouve avec des lignes qui n'appartiennent à aucune conditions .... :pfff: 
Un overflow ? J'ai regardé, se ne sont pas le même nombre de lignes, ni même les même lignes..
Et dans chacun de mes trois onglets j'ai un nombre total différent de lignes...
Avez vous eu déjà ce type de problèmes ?
Merci à vous de me lire, et de m'éclairer sur ce point Obscur...
  1. Sub Vitesses()
  2. Dim iLI As Long
  3. Dim iRE As Long
  4. Dim iLO As Long
  5. Dim iLA As Long
  6.  
  7. Dim LI As Worksheet
  8. Dim RE As Worksheet
  9. Dim LA As Worksheet
  10. Dim LO As Worksheet
  11.  
  12. Set LI = Worksheets("DATAS")
  13. Set RE = Worksheets("150kmh")
  14. Set LA = Worksheets("200kmh")
  15. Set LO = Worksheets("260kmh")
  16.  
  17. iRE = 2
  18. iLA = 2
  19. iLO = 2
  20. iLI = 2
  21.  
  22. For iLI = 2 To Range("R" & Rows.Count).End(xlUp).Row
  23. If LI.Cells(iLI, 18).Value > "148" And LI.Cells(iLI, 18).Value < "152" Then
  24. LI.Range(iLI & ":" & iLI).Copy RE.Cells(iRE, 1)
  25. iRE = iRE + 1
  26. ElseIf LI.Cells(iLI, 18).Value > "198" And LI.Cells(iLI, 18).Value < "202" Then
  27. LI.Range(iLI & ":" & iLI).Copy LA.Cells(iLA, 1)
  28. iLA = iLA + 1
  29. ElseIf LI.Cells(iLI, 18).Value > "258" And LI.Cells(iLI, 18).Value < "262" Then
  30. LI.Range(iLI & ":" & iLI).Copy LO.Cells(iLO, 1)
  31. iLO = iLO + 1
  32.  
  33. End If
  34. Next
  35. End Sub

Autres pages sur : lignes supplementaires fausse copier coller conditions feuille

Meilleure solution

a b L Programmation
25 Juin 2017 21:18:38

si tu travailles avec des int au lieu de string ça va pas mieux ?
(LI.Cells(iLI, 18).Value > 148) And (LI.Cells(iLI, 18).Value < 152)
partage