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