Traitement de donnees avec une condition if
Fermé
r4944
Messages postés
122
Date d'inscription
Statut
Membre
Dernière intervention
-
PlacageGranby Messages postés 393 Date d'inscription Statut Membre Dernière intervention -
PlacageGranby Messages postés 393 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
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éme c'est que j'aurais toujours un XX si la colonne (i,14).value = EA_DPD alors que la colonne AE a une valeur different que
(''Completed - Pool Created/ Complété - Bassin crée'') , on dirait il fait pas le controle sur la deuxieme condition
voici le code :
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éme c'est que j'aurais toujours un XX si la colonne (i,14).value = EA_DPD alors que la colonne AE a une valeur different que
(''Completed - Pool Created/ Complété - Bassin crée'') , on dirait il fait pas le controle sur la deuxieme condition
voici le code :
Sub Decision()
Dim cell As Range
Dim i 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" 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
If CStr(ActiveSheet.Cells(i, 31).Value) = "Completed - Pool Created/ Complété - Bassin crée" Then
If CStr(ActiveSheet.Cells(i, 14).Value) = "EA_CPC" _
Or CStr(ActiveSheet.Cells(i, 14).Value) = "EA_DPD" Then
ActiveSheet.Cells(i, 42).Value = "XX"
End If
End If
Next i
End Sub
A voir également:
- Traitement de donnees avec une condition if
- Fuite données maif - Guide
- Excel cellule couleur si condition texte - Guide
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Traitement de texte gratuit - Guide
- Supprimer les données de navigation - Guide
1 réponse
Bonjour,
Le code semble ok.
Avez-vous faites une trace pas à pas dans l'éditeur VBA ?
Vous cliqué à gauche dans la marge, et un point rouge apparait.
Ensuite, lors de l'exécution du code, excel stop a ce point, et vous avancer ligne par ligne à l'aide de la touche F8.
A chaque IF, vous regarder si Excel entre dans la boucle ou non.
Vous regardez les valeurs et si excel ne fait pas ce qui était prévu, alors vous savez que l'erreur est dans cette ligne.
Autre chose a regarder, lors de la trace pas à pas, vous pouvez survoler le code pour voir le contenu des variable.
Par exemple, que vaut ActiveSheet.Cells(i, 31).Value lors qu'il est comparé dans la condition ?
La programmation, c'est essai - erreur, et la trace pas à pas, c'est l'outil ultime pour trouver les erreurs.
PS. la première condition
Completed - Appointment made / Complété - Nomination faite
vous avez un espace de chaque coté du /
Completed - Pool Created/ Complété - Bassin crée
Vous avez seulement un seul espace.
En faisait la trace pas à pas, vous pouvez voir le contenu de la variable et voir s'il est identique à la chaine de texte, mais quand c'est un espace qui manque, souvent on passe a coté sans le voir. Mais au moins la trace permet de voir qu'il n'entre pas dans la boucle et vous savez qu'il y a quelque chose qui cloche.
Le code semble ok.
Avez-vous faites une trace pas à pas dans l'éditeur VBA ?
Vous cliqué à gauche dans la marge, et un point rouge apparait.
Ensuite, lors de l'exécution du code, excel stop a ce point, et vous avancer ligne par ligne à l'aide de la touche F8.
A chaque IF, vous regarder si Excel entre dans la boucle ou non.
Vous regardez les valeurs et si excel ne fait pas ce qui était prévu, alors vous savez que l'erreur est dans cette ligne.
Autre chose a regarder, lors de la trace pas à pas, vous pouvez survoler le code pour voir le contenu des variable.
Par exemple, que vaut ActiveSheet.Cells(i, 31).Value lors qu'il est comparé dans la condition ?
La programmation, c'est essai - erreur, et la trace pas à pas, c'est l'outil ultime pour trouver les erreurs.
PS. la première condition
Completed - Appointment made / Complété - Nomination faite
vous avez un espace de chaque coté du /
Completed - Pool Created/ Complété - Bassin crée
Vous avez seulement un seul espace.
En faisait la trace pas à pas, vous pouvez voir le contenu de la variable et voir s'il est identique à la chaine de texte, mais quand c'est un espace qui manque, souvent on passe a coté sans le voir. Mais au moins la trace permet de voir qu'il n'entre pas dans la boucle et vous savez qu'il y a quelque chose qui cloche.