OVH Cloud OVH Cloud

Code à simplifier

3 réponses
Avatar
cphil
Bonjour,

Peut-on simplifier- réduire- ce bout de code:
If ComboBox1.ListIndex <> -1 Then
With Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(1, 0) =
ComboBox1.Column(1, Tarif.ListIndex)
.Range("B65536").End(xlUp).Offset(1, 0) =
ComboBox1.Column(2, Tarif.ListIndex)
.Range("C65536").End(xlUp).Offset(1, 0) =
TextBox1.Value
.Range("D65536").End(xlUp).Offset(1, 0) =
TomboBox1.Column(3, Tarif.ListIndex)
End With
End If

Merci.
-cphil-

3 réponses

Avatar
Zoury
Salut Philippe! :O)

...pas vraiment... du moins je ne vois pas de façon qui rendrait le code
plus court, plus clair ou même plus rapide qu'il ne l'est déjà..

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
Avatar
cphil
Bonsoir,
Yanick, ta réponse me permet d'en savoir un peut plus....
C'est pas évident d'apprendre sans votre aide à tous.
Merci.
-cphil-

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:uyoTcz$
Salut Philippe! :O)

...pas vraiment... du moins je ne vois pas de façon qui rendrait le code
plus court, plus clair ou même plus rapide qu'il ne l'est déjà..

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous




Avatar
Patrice Henrio
Ce serait faisable si la valeur des Range étaient récupérées dans les
colonnes du ComboBox1
Dans ce cas par une boucle en réécrivant les Chaînes "A65536" à "D65536" à
l'aide d'un index.
Ce serait par contre plus long mais voici ce que cela donnerait


If ComboBox1.ListIndex <> -1 Then
With Sheets("Feuil1")


For I = 1 to n
'n est le nombre de colonnes à traiter, inférieur à 27 (Z) sinon créer une
fonction qui convertit le n° de colonne en nom de colonne (28="AA") ...
R=Chr(I)&"65536"

.Range(R).End(xlUp).Offset(1,0)=ComboBox1.Column(I, Tarif.ListIndex)
Next
End With
End If



Par contre puisque les contrôles sont distincts, il faudrait une fonction
traduisant le n° index en n° de contrôle dans la forme.


"cphil" <cazenave.(suffitspam) a écrit dans le message de
news:%
Bonjour,

Peut-on simplifier- réduire- ce bout de code:
If ComboBox1.ListIndex <> -1 Then
With Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(1, 0) > ComboBox1.Column(1, Tarif.ListIndex)
.Range("B65536").End(xlUp).Offset(1, 0) > ComboBox1.Column(2, Tarif.ListIndex)
.Range("C65536").End(xlUp).Offset(1, 0) > TextBox1.Value
.Range("D65536").End(xlUp).Offset(1, 0) > TomboBox1.Column(3, Tarif.ListIndex)
End With
End If

Merci.
-cphil-