Traitement des donnees avec la condition if

r4944 Messages postés 122 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

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 suite a une condition

le problémec'est 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



A voir également:

2 réponses

Utilisateur anonyme
 
Dans ce cas, il aurait un peu trop d'argument pour ton If
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

Il te faut donc, imbriquer tes conditions If. Exemple :

    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" Then
            If 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              
        End If
    Next i
0
r4944 Messages postés 122 Date d'inscription   Statut Membre Dernière intervention  
 
merci pourr votre reponse ,et si je dois utiliser une autre condition sur If CStr(ActiveSheet.Cells(i, 31).Value) = "xxxx" est ce que je dois mettre une autre boucle?
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > r4944 Messages postés 122 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Pour cela, vous utilisez If ElseIf.... End If
Comme ceci :
    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" Then
            If 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   
        ElseIf CStr(ActiveSheet.Cells(i, 31).Value) = "xxxx" Then
            'ici du code si la cellule contient xxxx
        ElseIf CStr(ActiveSheet.Cells(i, 31).Value) = "YYYYY" Then     
            'ici du code si la cellule contient YYYYY
        Else
            'ici le code pour tous les autres cas 
        End If
    Next i
0