Code

bonjour, je rame sur le code du fichier joint depuis hier et j'aimerais svp bénéficier de votre aide pour atterrir.

le but est de mettre en forme en colonne H de la feuille "Planning" si le lot en colonne G de la feuille "Planning" existe en colonne C de la feuille "Stocks" et si le commentaire correspondant en colonne J de la feuille "Stocks" commence par les lettres "NC". je me suis inspiré de quelques codes sur ce site pour l'écrire mais le résultat n'est pas bon. merci d'avance pour votre aide.

Moutchec

2classeur1.xlsm (44.74 Ko)

Bonjour,

Avec Find() car plus rapide qu'une double boucle puis ensuite, dans ton code tu compare deux colonnes qui ne possèdent absolument pas le même type de valeurs ! Tu recherches les valeurs colonne H de "Planning" dans la colonne C de "Stocks" alors qu'il faudrait que tu recherches les valeurs de la colonne G de "Planning" dans la colonne C de "Stocks" :

Private Sub CommandButton1_Click()

    Dim PlgPlanning As Range
    Dim CelPlanning As Range
    Dim PlgStocks As Range
    Dim CelStocks As Range

    With Worksheets("Planning"): Set PlgPlanning = .Range(.Cells(2, 7), .Cells(.Rows.Count, 7).End(xlUp)): End With
    With Worksheets("Stocks"): Set PlgStocks = .Range(.Cells(4, 3), .Cells(.Rows.Count, 3).End(xlUp)): End With

    For Each CelPlanning In PlgPlanning

        Set CelStocks = PlgStocks.Find(CelPlanning, , xlValues, xlWhole)

        If Not CelStocks Is Nothing Then

            If Left(CelStocks.Offset(, 7).Value, 2) = "NC" Then

                With CelPlanning.Offset(, 1)

                    .Interior.ColorIndex = 3
                    .Font.ColorIndex = 6
                    .Font.Size = 11

                End With

            End If

        End If

    Next CelPlanning

End Sub

Bonjour, c'est vraiment parfait. merci bcp.

cordialement.

Moutchec

Rechercher des sujets similaires à "code"