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
A voir également:
- Convertir formule excel en visual basic
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Visual basic - Télécharger - Langages
- Excel mise en forme conditionnelle formule - Guide
1 réponse
Bonjour
le principe
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 ?
le principe
Dim 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 ?
je pense que je vais partir sur une recherchev car la programmation risque d'etre longue sur visual. le tableau fait plus de 150 lignes.
donc tu as raison:rechercheV, surtout si ca évite le VBA
a+