Convertir formule excel en visual basic
Résolu
xavier83520
-
xavier83520 -
xavier83520 -
Bonjour,
je suis entrain de faire une formule sur Excel mais je m'apercoit que celle ci va être très longue.
Voici la formule entière : =SI(GAUCHE(A4;2)="19";"0609"&DROITE(A4;6);SI(GAUCHE(A4;2)="10";"0610"&DROITE(A4;6);SI(GAUCHE(A4;2)="11";"0611"&DROITE(A4;6);SI(GAUCHE(A4;2)="12";"0612"&DROITE(A4;6);SI(GAUCHE(A4;2)="29";"3109"&DROITE(A4;6);SI(GAUCHE(A4;2)="20";"3110"&DROITE(A4;6);SI(GAUCHE(A4;2)="21";"3111"&DROITE(A4;6);SI(GAUCHE(A4;2)="22";"3112"&DROITE(A4;6);SI(GAUCHE(A4;2)="39";"3309"&DROITE(A4;6);SI(GAUCHE(A4;2)="30";"3310"&DROITE(A4;6);SI(GAUCHE(A4;2)="31";"3311"&DROITE(A4;6);SI(GAUCHE(A4;2)="32";"3312"&DROITE(A4;6);SI(GAUCHE(A4;2)="49";"3409"&DROITE(A4;6);SI(GAUCHE(A4;2)="40";"3410"&DROITE(A4;6);SI(GAUCHE(A4;2)="41";"3411"&DROITE(A4;6);SI(GAUCHE(A4;2)="42";"3412"&DROITE(A4;6);SI(GAUCHE(A4;2)="59";"4409"&DROITE(A4;6);SI(GAUCHE(A4;2)="50";"4410"&DROITE(A4;6);SI(GAUCHE(A4;2)="51";"4411"&DROITE(A4;6);SI(GAUCHE(A4;2)="52";"4412"&DROITE(A4;6);SI(GAUCHE(A4;2)="69";"5409"&DROITE(A4;6);SI(GAUCHE(A4;2)="60";"5410"&DROITE(A4;6);SI(GAUCHE(A4;2)="61";"5411"&DROITE(A4;6);SI(GAUCHE(A4;2)="62";"5412"&DROITE(A4;6);SI(GAUCHE(A4;2)="79";"6009"&DROITE(A4;6);SI(GAUCHE(A4;2)="70";"6010"&DROITE(A4;6);SI(GAUCHE(A4;2)="71";"6011"&DROITE(A4;6);SI(GAUCHE(A4;2)="72";"6012"&DROITE(A4;6);SI(GAUCHE(A4;2)="89";"6909"&DROITE(A4;6);SI(GAUCHE(A4;2)="80";"6910"&DROITE(A4;6);SI(GAUCHE(A4;2)="81";"6911"&DROITE(A4;6);SI(GAUCHE(A4;2)="82";"6912"&DROITE(A4;6);SI(GAUCHE(A4;2)="99";"7509"&DROITE(A4;6);SI(GAUCHE(A4;2)="90";"7510"&DROITE(A4;6);SI(GAUCHE(A4;2)="91";"7511"&DROITE(A4;6);SI(GAUCHE(A4;2)="92";"7512"&DROITE(A4;6);SI(GAUCHE(A4;2)="M9";"9709"&DROITE(A4;6);SI(GAUCHE(A4;2)="M0";"9710"&DROITE(A4;6);SI(GAUCHE(A4;2)="M1";"9711"&DROITE(A4;6);SI(GAUCHE(A4;2)="M2";"9712"&DROITE(A4;6);"code incorrect"))))))))))))))))))))))))))))))))))))))))
Comme vous pouvez le constater celle ci est très très longue :) c'est pourquoi je voudrais créer une petite programmation sur visual basic faisant la meme chose.
S'il vous plait est ce que quelqu'un peut me convertir la formule en visual basic???
Il n'est pas nécessaire de convertir toute la formule. Cette partie suffira (je me débrouillerais pour la suite) :
=SI(GAUCHE(A4;2)="19";"0609"&DROITE(A4;6);SI(GAUCHE(A4;2)="10";"0610"&DROITE(A4;6);SI(GAUCHE(A4;2)="11";"0611"&DROITE(A4;6);SI(GAUCHE(A4;2)="12";"0612"&DROITE(A4;6);"code incorrect")))).
Vous remerciant par avance,
Xavier
je suis entrain de faire une formule sur Excel mais je m'apercoit que celle ci va être très longue.
Voici la formule entière : =SI(GAUCHE(A4;2)="19";"0609"&DROITE(A4;6);SI(GAUCHE(A4;2)="10";"0610"&DROITE(A4;6);SI(GAUCHE(A4;2)="11";"0611"&DROITE(A4;6);SI(GAUCHE(A4;2)="12";"0612"&DROITE(A4;6);SI(GAUCHE(A4;2)="29";"3109"&DROITE(A4;6);SI(GAUCHE(A4;2)="20";"3110"&DROITE(A4;6);SI(GAUCHE(A4;2)="21";"3111"&DROITE(A4;6);SI(GAUCHE(A4;2)="22";"3112"&DROITE(A4;6);SI(GAUCHE(A4;2)="39";"3309"&DROITE(A4;6);SI(GAUCHE(A4;2)="30";"3310"&DROITE(A4;6);SI(GAUCHE(A4;2)="31";"3311"&DROITE(A4;6);SI(GAUCHE(A4;2)="32";"3312"&DROITE(A4;6);SI(GAUCHE(A4;2)="49";"3409"&DROITE(A4;6);SI(GAUCHE(A4;2)="40";"3410"&DROITE(A4;6);SI(GAUCHE(A4;2)="41";"3411"&DROITE(A4;6);SI(GAUCHE(A4;2)="42";"3412"&DROITE(A4;6);SI(GAUCHE(A4;2)="59";"4409"&DROITE(A4;6);SI(GAUCHE(A4;2)="50";"4410"&DROITE(A4;6);SI(GAUCHE(A4;2)="51";"4411"&DROITE(A4;6);SI(GAUCHE(A4;2)="52";"4412"&DROITE(A4;6);SI(GAUCHE(A4;2)="69";"5409"&DROITE(A4;6);SI(GAUCHE(A4;2)="60";"5410"&DROITE(A4;6);SI(GAUCHE(A4;2)="61";"5411"&DROITE(A4;6);SI(GAUCHE(A4;2)="62";"5412"&DROITE(A4;6);SI(GAUCHE(A4;2)="79";"6009"&DROITE(A4;6);SI(GAUCHE(A4;2)="70";"6010"&DROITE(A4;6);SI(GAUCHE(A4;2)="71";"6011"&DROITE(A4;6);SI(GAUCHE(A4;2)="72";"6012"&DROITE(A4;6);SI(GAUCHE(A4;2)="89";"6909"&DROITE(A4;6);SI(GAUCHE(A4;2)="80";"6910"&DROITE(A4;6);SI(GAUCHE(A4;2)="81";"6911"&DROITE(A4;6);SI(GAUCHE(A4;2)="82";"6912"&DROITE(A4;6);SI(GAUCHE(A4;2)="99";"7509"&DROITE(A4;6);SI(GAUCHE(A4;2)="90";"7510"&DROITE(A4;6);SI(GAUCHE(A4;2)="91";"7511"&DROITE(A4;6);SI(GAUCHE(A4;2)="92";"7512"&DROITE(A4;6);SI(GAUCHE(A4;2)="M9";"9709"&DROITE(A4;6);SI(GAUCHE(A4;2)="M0";"9710"&DROITE(A4;6);SI(GAUCHE(A4;2)="M1";"9711"&DROITE(A4;6);SI(GAUCHE(A4;2)="M2";"9712"&DROITE(A4;6);"code incorrect"))))))))))))))))))))))))))))))))))))))))
Comme vous pouvez le constater celle ci est très très longue :) c'est pourquoi je voudrais créer une petite programmation sur visual basic faisant la meme chose.
S'il vous plait est ce que quelqu'un peut me convertir la formule en visual basic???
Il n'est pas nécessaire de convertir toute la formule. Cette partie suffira (je me débrouillerais pour la suite) :
=SI(GAUCHE(A4;2)="19";"0609"&DROITE(A4;6);SI(GAUCHE(A4;2)="10";"0610"&DROITE(A4;6);SI(GAUCHE(A4;2)="11";"0611"&DROITE(A4;6);SI(GAUCHE(A4;2)="12";"0612"&DROITE(A4;6);"code incorrect")))).
Vous remerciant par avance,
Xavier
1 réponse
-
Bonjour
le principeDim valeur As String * 2, val_out As String * 6, resultat As String val_in = Left(Range("A4"), 2) val_out = Right(Range("A4"), 6) Select Case val_in Case Is = "19" resultat = "0609" & val_out Case Is = "10" resultat = "0610" & val_out '..... Case Else resurtat = "code incorrect" End Select
mais cela peut se faire sans macro et sans "si imbriqués***"avec un tableau de correspondance 2 colonnes et la fonction "rechercheV"
*** tu as quelle version d'Excel ?