Optimisation de code... *Sucrerie*

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Charly88

XLDnaute Occasionnel
Je suis presque certain qu'il y a possibilité de raccourcir ceci mais je ne sais comment :

Code:
If Choix = 0 Then
Sheets(TitreFeuilleRapport).Cells(5 + iMid + iBig, 2).Value = Carma.Perio.List(p, 0)
Sheets(TitreFeuilleRapport).Cells(5 + iMic + iMid + iBig, 2).Value = Carma.Catés.List(c, 0)
Sheets(TitreFeuilleRapport).Cells(5 + iMid + iBig, 2 + jMic).Value = Carma.Sujets.List(s, 0)
ElseIf Choix = 1 Then
Sheets(TitreFeuilleRapport).Cells(5 + iMid + iBig, 2).Value = Carma.Perio.List(p, 0)
Sheets(TitreFeuilleRapport).Cells(5 + iMic + iMid + iBig, 2).Value = Carma.Sujets.List(s, 0)
Sheets(TitreFeuilleRapport).Cells(5 + iMid + iBig, 2 + jMic).Value = Carma.Catés.List(c, 0)
ElseIf Choix = 2 Then
Sheets(TitreFeuilleRapport).Cells(5 + iMid + iBig, 2).Value = Carma.Sujets.List(s, 0)
Sheets(TitreFeuilleRapport).Cells(5 + iMic + iMid + iBig, 2).Value = Carma.Perio.List(p, 0)
Sheets(TitreFeuilleRapport).Cells(5 + iMid + iBig, 2 + jMic).Value = Carma.Catés.List(c, 0)
ElseIf Choix = 3 Then
Sheets(TitreFeuilleRapport).Cells(5 + iMid + iBig, 2).Value = Carma.Sujets.List(s, 0)
Sheets(TitreFeuilleRapport).Cells(5 + iMic + iMid + iBig, 2).Value = Carma.Catés.List(c, 0)
Sheets(TitreFeuilleRapport).Cells(5 + iMid + iBig, 2 + jMic).Value = Carma.Perio.List(p, 0)
ElseIf Choix = 4 Then
Sheets(TitreFeuilleRapport).Cells(5 + iMid + iBig, 2).Value = Carma.Catés.List(c, 0)
Sheets(TitreFeuilleRapport).Cells(5 + iMic + iMid + iBig, 2).Value = Carma.Sujets.List(s, 0)
Sheets(TitreFeuilleRapport).Cells(5 + iMid + iBig, 2 + jMic).Value = Carma.Perio.List(p, 0)
ElseIf Choix = 5 Then
Sheets(TitreFeuilleRapport).Cells(5 + iMid + iBig, 2).Value = Carma.Catés.List(c, 0)
Sheets(TitreFeuilleRapport).Cells(5 + iMic + iMid + iBig, 2).Value = Carma.Perio.List(p, 0)
Sheets(TitreFeuilleRapport).Cells(5 + iMid + iBig, 2 + jMic).Value = Carma.Sujets.List(s, 0)
End If

Comme vous le voyez nous avons 3 cellules et 3 valeurs différentes, logées dans leur listbox respective, tout ce qui change c'est qui reçoit quoi en fonction de la valeur de choix... Y'aurait-il une solution en créant une (ou 3 ?) variable variant et avec un petit coup de génie peut-être ? :-D
 
Dernière édition:
Re : Optimisation de code... *Sucrerie*

Bonsoir Jean-Pierre, c'est vrai que ce n'est pas clair, je traduis :

si choix = 0
cellule_1 = valeur_A
cellule_2 = valeur_B
cellule_3 = valeur_C
si choix = 1
cellule_1 = valeur_A
cellule_2 = valeur_C
cellule_3 = valeur_B
si choix = 2
cellule_1 = valeur_B
cellule_2 = valeur_A
cellule_3 = valeur_C
si choix = 3
cellule_1 = valeur_B
cellule_2 = valeur_C
cellule_3 = valeur_A
si choix = 4
cellule_1 = valeur_C
cellule_2 = valeur_A
cellule_3 = valeur_B
si choix = 5
cellule_1 = valeur_C
cellule_2 = valeur_B
cellule_3 = valeur_A

Ouf ! J'espère que c'est un peu plus compréhensible. Du fait des choix, peut-être que c'est la seule solution mais...
 
Re : Optimisation de code... *Sucrerie*

Re,

Est-ce plus compréhensible ? Oui dans la mesure où les choix aboutissent à des solutions différentes.

Cette seconde présentation est bien plus précise et très différente de la première, maintenant te dire que c'est la seule solution (qui me semble bonne pour une opération que je ne connais pas)... Je ne sais pas, il faudrait voir le fichier, le questionnement, et la résultante.

Est-ce possible ?
 
Re : Optimisation de code... *Sucrerie*

Bonjour, re jeanpierre,

A tester (je me suis servi du dernier post sans vérifier) :

Code:
If  Choix >= 0 And Choix <= 5 then
a = Carma.Perio.List(p, 0)
b = Carma.Catés.List(c, 0)
c = Carma.Sujets.List(s, 0)
With Sheets(TitreFeuilleRapport)
.Cells(5 + iMid + iBig, 2).Value = Choose(Choix + 1, a, a, b, b, c, c)
.Cells(5 + iMic + iMid + iBig, 2).Value = Choose(Choix + 1, b, c, a, c, a, b)
.Cells(5 + iMid + iBig, 2 + jMic).Value = Choose(Choix + 1, c, b, c, a, b, a)
End With
End If

A+
 
Dernière édition:
Re : Optimisation de code... *Sucrerie*

Bonjour Tous,

Pour moi, c'est une réponse qui mérite un rappel.
Merci job75 de nous indiquer qu'il est toujours préférable de faire le bon "choix" ! De plus, ce n'est pas la première fois que tu nous montres l'intérêt de cette fonction.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
926
Réponses
15
Affichages
815
Réponses
8
Affichages
797
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
463
Réponses
7
Affichages
485
Retour