Bonjour,
J'ai un bout de code où j'utilise des Select Case. Je me demandais si quelqu'un aurait une idée sur comment le simplifier. Puis-je incrémenter string1 à String11 puis lire ce qui se retrouve dans la variable sans systématiquement écrire strstring1,...?
J'ai un bout de code où j'utilise des Select Case. Je me demandais si quelqu'un aurait une idée sur comment le simplifier. Puis-je incrémenter string1 à String11 puis lire ce qui se retrouve dans la variable sans systématiquement écrire strstring1,...?
Code:
Sub ExtraireCodedErreurs(EC_VFeuilExtractData, EC_Extraire_Message, EC_Extraire_Message2, EC_Extraire_ligne)
Dim strStringaTester As String
Dim strString1 As String
Dim strString2 As String
Dim strString3 As String
Dim strString4 As String
Dim strString5 As String
Dim strString6 As String
Dim strString7 As String
Dim strString8 As String
Dim strString9 As String
Dim strString10 As String
Dim strString11 As String
Dim strString12 As String
strString1 = "Code de l'événement : "
strString2 = "WSE050: The following exception was encountered: <Erreur><NumeroErreur>"
strString3 = "Aucune zone de partage (contexte service) de trouv pour ce id"
strString4 = "Cette zone de partage n'est pas valide pour cet utilisateur"
strString5 = "<IdInscriptionTraite>0</IdInscriptionTraite>"
strString6 = "LGSIEE.FiltreWSEFiltre.ServeurIntrant.ProcessMessage"
strString7 = "LGSIEE.FiltreWSEFiltre.FiltreServeurExtrant.ProcessMessage.JournaliserTransaction"
strString8 = "WSE050: The following exception was encountered: System.Exception"
strString9 = "System.Exception: .JournaliserTransaction"
strString10 = "Access denied --- Error Code :"
strString11 = "System.Web.HttpException: Client déconnecté."
strString12 = "System.Web.HttpException: Délai d 'attente de la demande"
compteurerreur = 1
Do While compteurerreur <= 12
Select Case compteurerreur
Case 1
IntDecalage = 0
StrStringaAnalyser = strString1
Case 2
IntDecalage = 0
StrStringaAnalyser = strString2
Case 3
IntDecalage = 0
StrStringaAnalyser = strString3
Case 4
IntDecalage = 0
StrStringaAnalyser = strString4
Case 5
IntDecalage = 0
StrStringaAnalyser = strString5
Case 6
IntDecalage = 0
StrStringaAnalyser = strString6
Case 7
IntDecalage = 0
StrStringaAnalyser = strString7
Case 8
IntDecalage = 0
StrStringaAnalyser = strString8
Case 9
IntDecalage = 0
StrStringaAnalyser = strString9
Case 10
IntDecalage = 0
StrStringaAnalyser = strString10
Case 11
IntDecalage = 0
StrStringaAnalyser = strString11
Case 12
IntDecalage = 0
StrStringaAnalyser = strString10
End Select
If Len(EC_Extraire_Message) > 0 Then
'On test dans le message de l'événement
strStringaTester = EC_Extraire_Message
Else
'S'il n'y a rien dans le message de l'événement alors on recherche dans le Insertion String
strStringaTester = EC_Extraire_Message2
End If
testinstrerreur = InStr(1, strStringaTester, StrStringaAnalyser, vbTextCompare)
If testinstrerreur <> 0 Then
Select Case compteurerreur
Case 12 'System.Web.HttpException: Délai d 'attente de la demande
Sheets(EC_VFeuilExtractData(1)).Cells(EC_Extraire_ligne, VDataCol9(1)) = "Délai d 'attente de la demande"
Exit Do
Case 11 'System.Web.HttpException: Client déconnecté.
Sheets(EC_VFeuilExtractData(1)).Cells(EC_Extraire_ligne, VDataCol9(1)) = "Client déconnecté"
Exit Do
Case 10 'Access denied --- Error Code :
Sheets(EC_VFeuilExtractData(1)).Cells(EC_Extraire_ligne, VDataCol9(1)) = "Access denied --- Error Code"
Exit Do
Case 9 'System.Exception: .JournaliserTransaction
Sheets(EC_VFeuilExtractData(1)).Cells(EC_Extraire_ligne, VDataCol9(1)) = "System.Exception: .JournaliserTransaction"
Exit Do
Case 8 'WSE050: The following exception was encountered: System.Exception
Sheets(EC_VFeuilExtractData(1)).Cells(EC_Extraire_ligne, VDataCol9(1)) = "WSE050: The following exception was encountered: System.Exception"
Exit Do
Case 7 'LGSIEE.FiltreWSEFiltre.FiltreServeurExtrant.ProcessMessage.JournaliserTransaction
Sheets(EC_VFeuilExtractData(1)).Cells(EC_Extraire_ligne, VDataCol9(1)) = "LGSIEE.FiltreWSEFiltre.FiltreServeurExtrant.ProcessMessage.JournaliserTransaction"
Exit Do
Case 6 'LGSIEE.FiltreWSEFiltre.ServeurIntrant.ProcessMessage
Sheets(EC_VFeuilExtractData(1)).Cells(EC_Extraire_ligne, VDataCol9(1)) = "LGSIEE.FiltreWSEFiltre.ServeurIntrant.ProcessMessage"
Exit Do
Case 5 '<IdInscriptionTraite>0</IdInscriptionTraite>
Sheets(EC_VFeuilExtractData(1)).Cells(EC_Extraire_ligne, VDataCol9(1)) = "IdInscriptionTraite>0</IdInscriptionTraite"
Exit Do
Case 4 'Cette zone de partage n'est pas valide pour cet utilisateur--> Il n'y a pas de code d'erreur attaché
Sheets(EC_VFeuilExtractData(1)).Cells(EC_Extraire_ligne, VDataCol9(1)) = "Zone de partage invalide"
Exit Do
Case 3 'Aucune zone de partage (contexte service) de trouv pour ce id--> Il n'y a pas de code d'erreur attaché
Sheets(EC_VFeuilExtractData(1)).Cells(EC_Extraire_ligne, VDataCol9(1)) = strString3
Exit Do
Case 2
strChaine1 = testinstrerreur + Len(StrStringaAnalyser)
strChaine2 = Mid(EC_Extraire_Message, strChaine1, 5)
Sheets(EC_VFeuilExtractData(1)).Cells(EC_Extraire_ligne, VDataCol9(1)) = strChaine2
Exit Do
Case Else
strChaine1 = testinstrerreur + Len(StrStringaAnalyser)
strChaine2 = Mid(strStringaTester, strChaine1, 4)
Sheets(EC_VFeuilExtractData(1)).Cells(EC_Extraire_ligne, VDataCol9(1)) = strChaine2
Exit Do
End Select
End If
compteurerreur = compteurerreur + 1
If compteurerreur > 12 Then Exit Do
Loop
End Sub