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 de poster les réponses au groupe afin d'en faire profiter à tous
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-
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)philippe@free.fr> a écrit dans le message de
news:%23jly2F7xDHA.1396@TK2MSFTNGP10.phx.gbl...
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
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