Traitement des donnees avec if

Bonjour j'ai de la misére a trouver mon erreur ;

ce code nous permet de remplire la colonne AP de chaque ligne par XX

le probléme que j'aurais toujours un XX si la colonne (i,14).value = STU_IIN alors que la colonne AE a une valeur different que

(Completed – Inventory available / Complété - Inventaire disponible) ,

voici mon code :

Sub Decision()

    Dim cell As Range

    Dim i As Integer
    Dim j As Integer

    For i = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row

        If CStr(ActiveSheet.Cells(i, 31).Value) = "Completed - Appointment made / Complété - Nomination faite" And _
         CStr(ActiveSheet.Cells(i, 14).Value) = "AEP" Or CStr(ActiveSheet.Cells(i, 14).Value) = "CMC_REV" Or CStr(ActiveSheet.Cells(i, 14).Value) = "CMC_APT" _
        Or CStr(ActiveSheet.Cells(i, 14).Value) = "CS_TPD" Or CStr(ActiveSheet.Cells(i, 14).Value) = "DM_ID" Then

                 ActiveSheet.Cells(i, 42).Value = "XX"

      End If

      Next i

   For j = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row

    If CStr(ActiveSheet.Cells(j, 31).Value) = "Completed - Appointment made / Complété - Nomination faite" And _
         CStr(ActiveSheet.Cells(j, 14).Value) = "INA_ACIN" Then

 ActiveSheet.Cells(i, 42).Value = "XX"

       End If
       Next j

     end sub
     

Bonjour,

Essaie comme cela

Sub Decision()
Dim cell As Range
Dim i As Integer
Dim j As Integer
    For i = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
        If CStr(ActiveSheet.Cells(i, 31).Value) = "Completed - Appointment made / Complété - Nomination faite" And _
        (CStr(ActiveSheet.Cells(i, 14).Value) = "AEP" Or _
        CStr(ActiveSheet.Cells(i, 14).Value) = "CMC_REV" Or _
        CStr(ActiveSheet.Cells(i, 14).Value) = "CMC_APT" Or _
        CStr(ActiveSheet.Cells(i, 14).Value) = "CS_TPD" Or _
        CStr(ActiveSheet.Cells(i, 14).Value) = "DM_ID" Or _
        CStr(ActiveSheet.Cells(j, 14).Value) = "INA_ACIN") Then
            ActiveSheet.Cells(i, 42).Value = "XX"
        End If
    Next i
End Sub

Remarque : je n'ai rien vu qui ressemble à STU_IIN dans ton code.

A+

Bonsoir,

Je pense que Frangy a mis le doigt sur l'erreur, mais je suis quelque peu intrigué :

  • quel est le rôle de la variable cell inutilisée ?
  • pourquoi 2 boucles successives sur la même zone ?
  • pourquoi une conversion en chaînes de données qui en sont manifestement ?

C'est seulement STU_IN j'ai fais une faute de frappe , je les ai mis dans une seule boucle ca marchait non plus :/

Aussi par ce que c'est pas toujours la meme condition ( (ActiveSheet.Cells(i, 31).Value) = "Completed - Appointment made / Complété - Nomination faite")

Un peu difficile de te suivre...

Une version un peu allégée devrait cependant fonctionner :

Sub Decision()
    Dim i As Integer, n As Integer
    With ActiveSheet
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 2 To n
            If .Cells(i, 31).Value = "Completed - Appointment made / Complété - Nomination faite" Then
                Select Case .Cells(i, 14).Value
                    Case "AEP", "CMC_REV", "CMC_APT", "CS_TPD", "DM_ID", "INA_ACIN"
                        .Cells(i, 42).Value = "XX"
                End Select
            End If
        Next i
    End With
End Sub

Cordialement

Rechercher des sujets similaires à "traitement donnees"