VBA : condition dans condition dans conditions ...

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
B
Ben74
Jeune membre
Jeune membre
Messages : 21
Inscrit le : 14 novembre 2018
Version d'Excel : 2016

Message par Ben74 » 27 mars 2020, 17:28

Bonjour,

Je fais appel à vous pour une question de condition je voudrais transcrire en code VBA la formule cidessous :

Sachant que B1 est une liste déroulante dans excel puis la combobox1 dans mon code
Sachant que B3 est une liste déroulante dans excel puis la combobox2 dans mon code
Sachant que B4 est valeur libre dans excel puis la Textboxbox1 dans mon code

=SI(ET(B1="Région 1";0<B4;5,5);RECHERCHEV(B3;'Tableau de recouvrement'!$C$4:$G$28;3;0);SI(ET(B1="Région 1";5,5<B4;11);RECHERCHEV(B3;'Tableau de recouvrement'!$C$4:$G$28;4;0);SI(ET(B1="Région 1";11<B4;16,5);RECHERCHEV(B3;'Tableau de recouvrement'!$C$4:$G$28;5;0);SI(ET(B1="Région 2";0<B4;5,5);RECHERCHEV(B3;'Tableau de recouvrement'!$C$4:$H$28;6;0);SI(ET(B1="Région 2";5,5<B4;11);RECHERCHEV(B3;'Tableau de recouvrement'!$C$4:$I$28;7;0);SI(ET(B1="Région 2";11<B4;16,5);RECHERCHEV(B3;'Tableau de recouvrement'!$C$4:$J$28;8;0);SI(ET(B1="Région 3";0<B4;5,5);RECHERCHEV(B3;'Tableau de recouvrement'!$C$4:$M$28;9;0);SI(ET(B1="Région 3";5,5<B4;11);RECHERCHEV(B3;'Tableau de recouvrement'!$C$4:$M$28;10;0);SI(ET(B1="Région 3";11<B4;16,5);RECHERCHEV(B3;'Tableau de recouvrement'!$C$4:$M$28;11;0);"error")))))))))

J'ai commencé la dessus mais VBA me colore tout en rouge du coup j'ai peur d'être à côté de la plaque...
Private Sub CommandButton1_Rec_dimard_Click()

'recouvrement
Dim Rec As Integer

Rec = if Combobox1.Value = Région 1 And 0<Textbox1.value<5,5
Then vlookup(combobox2.Value,sheets("Tableau de Recouvrement").Range("C4:G28),3,0)

Else

if Combobox1.Value = Région 2 And 0<Textbox1.value<5,5
Then vlookup(combobox2.Value,sheets("Tableau de Recouvrement").Range("C4:G28),3,0)

Else
Merci par avance pour votre aide
Avatar du membre
PinkRabbit
Membre habitué
Membre habitué
Messages : 146
Appréciations reçues : 10
Inscrit le : 6 avril 2017
Version d'Excel : 2016 FR

Message par PinkRabbit » 2 avril 2020, 15:35

Bonjour Ben74,


Ton code n'est pas bon
Private Sub CommandButton1_Rec_dimard_Click()

'recouvrement
Dim Rec As Integer

Rec = if Combobox1.Value = Région 1 And 0<Textbox1.value<5,5
Then vlookup(combobox2.Value,sheets("Tableau de Recouvrement").Range("C4:G28),3,0)

Else

if Combobox1.Value = Région 2 And 0<Textbox1.value<5,5
Then vlookup(combobox2.Value,sheets("Tableau de Recouvrement").Range("C4:G28),3,0)

Else
Tu ne peux pas mettre Rec = if ....
Il faut que tu attribues la valeur à Rec après les Then
tu dois ajouter Application avant ton vlookup
et ferme tes guillemets dans tes Range("C4:G28
et utilises Elseif au lieu d'alourdir en mettant Else puis if sur une autre ligne
et tu dois découper tes 0<x<5,5

Plutôt dans ce genre là, et
Private Sub CommandButton1_Rec_dimard_Click()

Dim Rec As Integer

if Combobox1.Value = Région 1 And Textbox1.value > 0 and Textbox1.value<5,5 Then
	Rec = Application.VLookup(combobox2.Value,sheets("Tableau de Recouvrement").Range("C4:G28"),3,0)

Elseif Combobox1.Value = Région 2 And Textbox1.value > 0 and Textbox1.value<5,5 Then
	Rec = Application.VLookup(combobox2.Value,sheets("Tableau de Recouvrement").Range("C4:G28"),3,0)

Else
Bref penche toi sur des tutos VBA pour t'aider à écrire du code

:btres:
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message