VBA / condition pour non prise en compte d'une ligne

Bonjour,

J'aimerais comprendre comment rajouter une condition pour ne pas prendre en compte une ligne.

Je souhaiterai dans le code suivant ne pas avoir la prise en compte des lignes contenant la valeur "EV" sans suppression de ses informations pour autant.

Je ne trouve rien à ce sujet.

Aussi j'aimerais comprendre où je dois poser la condition pour qu'elle soit optimisé. J'avais penser à ici.

    For iR = 2 To UBound(tabloR, 1)                                             'On va passer toutes les lignes de la BDD
        For jR = 2 To UBound(tabloR, 2)                                         'et toutes les colonnes

            For n = 0 To ListBox1.ListCount - 1                                 'On va passer tous les items sélectionnés dans la boite de dialogue
                If ListBox1.Selected(n) Then
                    For i = 2 To UBound(tablo, 1)
                        If tablo(i, 1) = ListBox1.List(n) Then                                      'condition sur la région
                            If tabloR(1, jR) = tablo(i, 1) And tabloR(iR, 1) = tablo(i, 7) Then
                                 If tablo(i, 4) = "EV" Then
                                    'code non prise en compte des lignes concernés
                                    If tablo(i, 5) = "Tool" Then
                                        tabloR(iR, jR) = Application.Max(tabloR(iR, jR), tablo(i, 9))
                                    Else
                                        tabloR(iR, jR) = tabloR(iR, jR) + tablo(i, 9)
                                 End If
                               End If
                            End If
                        End If
                    Next i
                End If
            Next n
        Next jR
    Next iR

J'avais aussi essayé avec le code ci dessous pour prendre en compte seulement les valeurs "SYS" mais cela me fait buguer la macro sans faire les calculs demandés.

    For Each Rw In Selection.Rows

    Ligne = Rw.Row
    If Rw.Cells(1, 4).Value = "SYS" Then

Quelqu'un pourrait me sortir de ce mauvais pas ?

Cordialement

Bonjour Starck, bonjour le forum,

Peut-être en remplaçant le début du code :

Private Sub CommandButton1_Click()
dicoV.RemoveAll
For n = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(n) Then
        For i = 2 To UBound(tablo, 1)
            If Not tablo(i, 4) = "EV" Then               '<=== nouvelle condition ici
                If tablo(i, 1) = ListBox1.List(n) Then
                    dicoV(tablo(i, 1)) = ""             'Liste des régions sans doublons
                    dicoL(tablo(i, 7)) = ""             'Liste des Manu Code sans doublon
                End If
            End If                                        '<===  fin de la nouvelle condition ici
        Next i
    End If
Next n

Bonjour,

J'ai essayé en rajoutant ta condition mais cela ne la prends pas en compte. Les valeurs de calculs ne changent pas..

Re,

J'avoue ne pas avoir analyser complètement ton code mais cela me paraissait une solution viable. Il faut voir plus loin dans le code et imposer la même condition....

Bonjour,

Ca marche ! j'ai trouvé l'endroit ou il faut mettre ce code pour que cela soit pris en compte !

 For n = 0 To ListBox1.ListCount - 1                                 'On va passer tous les items sélectionnés dans la boite de dialogue
                If ListBox1.Selected(n) Then
                    For i = 2 To UBound(tablo, 1)
                        If tablo(i, 1) = ListBox1.List(n) Then                                      'condition sur la région
                            If tabloR(1, jR) = tablo(i, 1) And tabloR(iR, 1) = tablo(i, 7) Then     '
                                If Not tablo(i, 4) = "EV" Then      'nouvelle condition
                                If tablo(i, 5) = "Tool" Then
                                    tabloR(iR, jR) = Application.Max(tabloR(iR, jR), tablo(i, 9))
                                Else
                                    tabloR(iR, jR) = tabloR(iR, jR) + tablo(i, 9)
                                End If
                               End If
                            End If
                        End If
                    Next i
                End If
            Next n
        Next jR

Est-il possible par hasard sur la même condition de :

- soit mettre plusieurs critères ou faut il ajouter d'autres conditions similaires ?

- Le modifier légèrement pour qu'il prenne en compte le texte sans prise en compte des majuscules ?

Cordialement

Rechercher des sujets similaires à "vba condition prise compte ligne"