Probléme macro
Bonjour à vous cher contributeur du forum ,
je me permet de venir vous solliciter sur un petit problème que je rencontre sur mon stage , pour vous résumer le problème j’utilise un logicielle qui me sort des rapport Exel , malheureusement le logicielle bug et me sort des rapport erronée , je voudrais crée une macro sur le fichier Exel pour vérifier que les critères son bien respecté .
il apparaît que la colonne 123 de la fiche produit par l’outil ne correspond pas à la règle définie par la spec .
En effet vous pourrez constater dans le fichier joint en exemple :
- Ligne 26 : aucune case noire ou grise dans les matrices et pourtant on trouve oui dans la colonne 123 « Position non acceptable dans l'une des matrices (AQR) «
Rappel des critères entraînant une réponse «O » dans la colonne 123 : Positionnement du segment dans une case noire de la matrice (ELS ou PEL) / Positionnement du segment dans une case grise ou noire de la matrice (ELS ou PEL) et écart à l’article 14 ou 8 / Positionnement du segment dans une case grise de la matrice (ELS ou PEL) et année de pose >=2006.
merci d’avance
bonsoir,
voici une Macro qui effectue la vérification suivant les specifications.
je n'ai pu tester correctement car ton fichier ne contient pas de case grise et de case noire et je ne sais pas comment interpréter 'blanc *'
le résultat est mis en colonne AK
Sub controle()
With Worksheets("AR-Synthèse")
derlig = .Range("a" & Rows.Count).End(xlUp).Row
For i = 10 To derlig
' test Positionnement du segment dans une case noire de la matrice (ELS ou PEL)
If .Range("B" & i) = "Noire" Or .Range("C" & i) = "Noire" Then
res = "O"
' test Positionnement du segment dans une case grise ou noire de la matrice (ELS ou PEL) et écart à l’article 14 ou 8
ElseIf (.Range("B" & i) = "Noire" Or .Range("C" & i) = "Noire" Or .Range("B" & i) = "Grise" Or .Range("C" & i) = "Grise") And (.Range("D" & i) = "O" Or .Range("E" & i) = "O") Then
res = "O"
' test Positionnement du segment dans une case grise de la matrice (ELS ou PEL) et année de pose >=2006
ElseIf (.Range("B" & i) = "Grise" Or .Range("C" & i) = "Grise") And .Range("A" & i) >= 2006 Then
res = "O"
Else
res = "N"
End If
'mettre résultat en colonne AK
.Range("AK" & i) = .Range("F" & i) & " devrait être " & res
Next i
End With
End SubBonjour ,
merci beaucoup l'ami tu me sauve la vie
gracias thanks .