VBA - Double conditions avec Else

Résolu
Bonjour,

Je suis tout nouveau en programmation VBA et je me demande comment ajouter une deuxième condition à mes lignes de code. Voici ma partie de Code :

' Identifier le Tier
If .Cells(lngLigne, mlngCOL_TI_CODEADHESION).Value = "NAPE" Then
strCleCodeTier = "SGDP"
Else
Select Case Mid$(strCodeAdhesion, 1, 1)
Case "3": strCleCodeTier = "SFHD"
Case "4": strCleCodeTier = "SFHD"
Case "P": strCleCodeTier = "FABD"
Case Else: strCleCodeTier = "N/A"
End Select
End If

J'aimerais donc insérer sous le premier If quelque chose qui ressemblerait à :

If .Cells(lngLigne, mlngCOL_TI_TRANSIT).Value = "993815" Then
strCleCodeTier = "SGDP"

À noter que le chiffre 993815 est noté en texte dans ma BD Excel.

Peut-être quelqu'un a déjà posé une question semblable je vous demande d'exsucer ma répétition si c'est le cas, mais je n'arrive pas a trouver réponse à ma question.

Merci à tous et Bonne journée!

Peter

7 réponses

  1. Contributeur
    Bonjour,
    Un IF mal placer..
        If .Cells(lngLigne, mlngCOL_TI_CODEADHESION).Value = "NAPE" Then
            If .Cells(lngLigne, mlngCOL_TI_TRANSIT).Value = "993815" Then
                strCleCodeTier = "SGDP"
            End If
        Else
            Select Case Mid$(strCodeAdhesion, 1, 1)
            Case "3": strCleCodeTier = "SFHD"
            Case "4": strCleCodeTier = "SFHD"
            Case "P": strCleCodeTier = "FABD"
            Case Else: strCleCodeTier = "N/A"
            End Select
        End If

    Ça correspond à ce que tu explique.
    A+
    1. If .Cells(lngLigne, mlngCOL_TI_CODEADHESION).Value = "NAPE" Then
      . strCleCodeTier = "SGDP"
      Else
      .
      . If .Cells(lngLigne, mlngCOL_TI_TRANSIT).Value = "993815" Then
      . . strCleCodeTier = "SGDP"
      . Else
      . . Select Case Mid$(strCodeAdhesion, 1, 1)
      . . . Case "3": strCleCodeTier = "SFHD"
      . . . Case "4": strCleCodeTier = "SFHD"
      . . . Case "P": strCleCodeTier = "FABD"
      . . . Case Else: strCleCodeTier = "N/A"
      . . End Select
      . End If
      .
      End If

      J'ai utilisé des points pour relier les différentes parties du code, pour que tu comprennes la portée de chaque code.
      Fait moi le retour! Bne CHANCE!!!!!!!!!!!!!!
      1. Bonjour MadBen1!

        Merci beaucoup pour ta réponse c'est tout à fait ce que je cherchais comme solution.

        Passes une belle journée!

        P-A
    2. If .Cells(lngLigne, mlngCOL_TI_CODEADHESION).Value = "NAPE" Then
      strCleCodeTier = "SGDP"
      Else
      Select Case Mid$(strCodeAdhesion, 1, 1)
      Case "3": strCleCodeTier = "SFHD"
      Case "4": strCleCodeTier = "SFHD"
      Case "P": strCleCodeTier = "FABD"
      Case Else: strCleCodeTier = "N/A"
      End Select
      End If
      1. Rebonjour!

        En fait je pensais plustôt à quelque chose comme ceci :

        ' Identifier le Tier
        If .Cells(lngLigne, mlngCOL_TI_CODEADHESION).Value = "NAPE" Then
        strCleCodeTier = "SGDP"
        ElIf .Cells(lngLigne, mlngCOL_TI_TRANSITACTUEL).Value = "90993815" Then
        strCleCodeTier = "FABD"
        Else
        Select Case Mid$(strCodeAdhesion, 1, 1)
        Case "3": strCleCodeTier = "SFHD"
        Case "4": strCleCodeTier = "SFHD"
        Case "P": strCleCodeTier = "FABD"
        Case Else: strCleCodeTier = "N/A"
        End Select
        End If

        Mais ça ne semble pas fonctionner...

        Merci beaucoup!
        1. plus com ca alors :

          If .Cells(lngLigne, mlngCOL_TI_CODEADHESION).Value = "NAPE" and Cells(lngLigne, mlngCOL_TI_TRANSIT).Value = "993815" Then

          strCleCodeTier = "SGDP"

          Else
          Select Case Mid$(strCodeAdhesion, 1, 1)
          Case "3": strCleCodeTier = "SFHD"
          Case "4": strCleCodeTier = "SFHD"
          Case "P": strCleCodeTier = "FABD"
          Case Else: strCleCodeTier = "N/A"
          End Select
          End If
          1. Bonjour Moiced59 et merci de ta réponse rapide.

            En fait la condition que je veux ajouter après le premier If est :

            If .Cells(lngLigne, mlngCOL_TI_TRANSIT).Value = "993815" Then
            strCleCodeTier = "FABD"

            (Dsl j'écris "SGDP" dans mon premier message au lieu de "FABD")

            Donc un assigner code tier différent de la première condition.

            Est-ce que je peux substituer le 2e strCleCodeTier = "SGDP" par strCleCodeTier = "FABD" seulement?

            Merci encore!
            1. bonjour

              Si j'ai bien compris tu cherche quelque chose com ca ?

              If .Cells(lngLigne, mlngCOL_TI_CODEADHESION).Value = "NAPE" Then
              If .Cells(lngLigne, mlngCOL_TI_TRANSIT).Value = "993815" Then
              strCleCodeTier = "SGDP"
              else
              strCleCodeTier = "SGDP"
              end if
              Else
              Select Case Mid$(strCodeAdhesion, 1, 1)
              Case "3": strCleCodeTier = "SFHD"
              Case "4": strCleCodeTier = "SFHD"
              Case "P": strCleCodeTier = "FABD"
              Case Else: strCleCodeTier = "N/A"
              End Select
              End If