VBA : Maccro extraire sur une autre feuille si couleur...

Résolu/Fermé
pnppl2203 Messages postés 2 Date d'inscription mercredi 18 mai 2016 Statut Membre Dernière intervention 21 juillet 2016 - 14 juil. 2016 à 11:00
pnppl2203 Messages postés 2 Date d'inscription mercredi 18 mai 2016 Statut Membre Dernière intervention 21 juillet 2016 - 21 juil. 2016 à 11:34
Bonjour a tous,
J'a une base données ou un certain type de données est de couleur ColorIndex 36 et mis de cette couleur a la main (pas conditionnelle). Je dois extraire de ce type de données certains éléments cependant quand je rentre la formule suivante cela ne m'extrait qu'une dizaine de lignes n’étant même pas de la bonne couleur. C'est ma condition de If qui ne fonctionne pas ? (les numéros de colonne sont justes) Help please

Sub test ()
Dim ligne_valeur As Integer
ligne_affichage = 4
For ligne_valeur = 1 To 4200

If Sheets("PLANNING").Cells(ligne_valeur, 18).Interior.ColorIndex = 36 Then
Sheets("RETARDS").Cells(ligne_affichage, 2) = Sheets("PLANNING").Cells(ligne_valeur, 1)
Sheets("RETARDS").Cells(ligne_affichage, 3) = Sheets("PLANNING").Cells(ligne_valeur, 2)
ligne_affichage = ligne_affichage + 1
Else
End If
Next valeur

End Sub

Merci.

1 réponse

Utilisateur anonyme
14 juil. 2016 à 14:23
Bonjour pnppl2203,

Le code VBA ci-dessous devrait aller, mais ATTENTION : c'est bon tel que
si ligne_affichage ne dépassera JAMAIS 32 767 lignes ; sinon, tu dois
remplacer ligne_affichage As Integer par ligne_affichage As Long :
ça pourra alors aller jusqu'à 2 147 483 647 lignes.


Option Explicit


Sub test()

  Dim ligne_valeur As Integer, ligne_affichage As Integer: ligne_affichage = 4
  
  With Worksheets("PLANNING")
  
    For ligne_valeur = 1 To 4200

      If .Cells(ligne_valeur, 18).Interior.ColorIndex = 36 Then
        Worksheets("RETARDS").Cells(ligne_affichage, 2) = .Cells(ligne_valeur, 1)
        Worksheets("RETARDS").Cells(ligne_affichage, 3) = .Cells(ligne_valeur, 2)
        ligne_affichage = ligne_affichage + 1
      Else
        ' N'oublies pas de compléter cette partie (s'il y en a une) !
        ' sinon, supprime la ligne du Else ci-dessus, et aussi ces
        ' 3 lignes de commentaires.
      End If

    Next ligne_valeur
  
  End With

End Sub


Les lignes #15 et #16 doivent être sur une seule ligne ;
de même pour les lignes #17 et #18.

Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu. »

Cordialement.  😊
 
0
pnppl2203 Messages postés 2 Date d'inscription mercredi 18 mai 2016 Statut Membre Dernière intervention 21 juillet 2016
21 juil. 2016 à 11:34
Merci beaucoup !
0