Associer plusieurs if avec une autre fonction

Bonsoir,

Je bloque sur un un code qui me sers d'apprentissage a VBA et souhaiterai avoir des astuces, j'essaye de combiner plus if avec une fonction de vba de forme select case sa marche pas vraiment

Je suis conscient que le souci vient du mélange select case, if elseif et utiliser maladroitement mais c'est un peu de se genre la que je cherche a faire

Si quelqu'un à des idées de recherche, des docs ou des liens que je puisse lire ce serait cool car je connais pas encore tout du champ du possible sur vba

Le code sert à aller chercher des nombres dans une feuille qui elle même va chercher les nombres sur un site pour le coller dans la première feuille dans un tableau mis en forme

Dim wsh1 As Worksheet, wsh2 As Worksheet
Const Lignes% = 110
Dim i As Long

Set wsh1 = Worksheets("Map")
Set wsh2 = Worksheets("Calculateur")

'Affectation et Appel

For i = 2 To Lignes
'--Select Case Range("A1")
    '--Case "P1"
        If wsh1.Cells(i, 1) = "1-01-A" Then
        wsh2.Cells(25, 5) = wsh1.Cells(i, 8)
        ElseIf wsh1.Cells(i, 1) = "1-01-B" Then
        wsh2.Cells(25, 4) = wsh1.Cells(i, 8)
        ElseIf wsh1.Cells(i, 1) = "1-02-A" Then
        wsh2.Cells(25, 6) = wsh1.Cells(i, 8)
        ElseIf wsh1.Cells(i, 1) = "1-02-B" Then

    '--Case "P2"
        ElseIf wsh1.Cells(i, 1) = "2-01-A" Then
        wsh2.Cells(25, 5) = wsh1.Cells(i, 8)
        ElseIf wsh1.Cells(i, 1) = "2-01-B" Then
        wsh2.Cells(25, 4) = wsh1.Cells(i, 8)
        ElseIf wsh1.Cells(i, 1) = "2-02-A" Then
        wsh2.Cells(25, 6) = wsh1.Cells(i, 8)
        ElseIf wsh1.Cells(i, 1) = "2-02-B" Then
    End If
'--End Select
Next i

Cordialement,

bonjour,

une proposition

 Dim wsh1 As Worksheet, wsh2 As Worksheet
    Const Lignes% = 110
    Dim i As Long

    Set wsh1 = Worksheets("Map")
    Set wsh2 = Worksheets("Calculateur")

    'Affectation et Appel

    For i = 2 To Lignes
        Select Case Range("A1") 'prend A1 sur la feuille active, il conviendrait de préciser la feuille: wsh1.range("A1") ?
            Case "P1"
                If wsh1.Cells(i, 1) = "1-01-A" Then
                    wsh2.Cells(25, 5) = wsh1.Cells(i, 8)
                ElseIf wsh1.Cells(i, 1) = "1-01-B" Then
                    wsh2.Cells(25, 4) = wsh1.Cells(i, 8)
                ElseIf wsh1.Cells(i, 1) = "1-02-A" Then
                    wsh2.Cells(25, 6) = wsh1.Cells(i, 8)
                ElseIf wsh1.Cells(i, 1) = "1-02-B" Then
                    'que faut-il faire dans ce cas ?
                End If
            Case "P2"
                If wsh1.Cells(i, 1) = "2-01-A" Then
                    wsh2.Cells(25, 5) = wsh1.Cells(i, 8)
                ElseIf wsh1.Cells(i, 1) = "2-01-B" Then
                    wsh2.Cells(25, 4) = wsh1.Cells(i, 8)
                ElseIf wsh1.Cells(i, 1) = "2-02-A" Then
                    wsh2.Cells(25, 6) = wsh1.Cells(i, 8)
                ElseIf wsh1.Cells(i, 1) = "2-02-B" Then
                    'que faut-il faire dans ce cas ?
                End If
        End Select
    Next i

Bonjour h2so4,

Super sa fonctionne, fallait juste changer un petit truc de rien du tout

Je dormirai moins bête

Merci pour ton aide et tes annotations, good job

Rechercher des sujets similaires à "associer fonction"