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. 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. 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
    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. 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. 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. 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. 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+