comment simplifier la valorisation de variable

  • Initiateur de la discussion Thomas
  • Date de début
T

Thomas

Guest
Bonsoir le forum,

j'ai besoin de vos lumiere

savez vous comment puis je simplifier cette valorisation de variable

If Adres = Cells(23, 23) Then Pays = Cells(23, 22)
If Adres = Cells(23, 26) Then Pays = Cells(23, 22)
If Adres = Cells(24, 23) Then Pays = Cells(24, 22)
If Adres = Cells(24, 26) Then Pays = Cells(24, 22)
If Adres = Cells(25, 23) Then Pays = Cells(25, 22)
If Adres = Cells(25, 26) Then Pays = Cells(25, 22)
If Adres = Cells(26, 26) Then Pays = Cells(26, 22)
If Adres = Cells(26, 23) Then Pays = Cells(26, 22)

car depuis peu ma variable aders est suseptible de s'etendre vers le bas

ce qui fait que je dois ajouter

If Adres = Cells(27, 23) Then Pays = Cells(27, 22)
If Adres = Cells(27, 26) Then Pays = Cells(27, 26)

en sachant que Adres et une combobox et que les cellules source de celle ci sont

Sub ChargeComboAdres()
Dim x As Integer

For x = 23 To Sheets('Individu').Range('w65536').End(xlUp).Row
Adres.AddItem Sheets('Individu').Range('w' & x)
Adres.AddItem Sheets('Individu').Range('z' & x)
Next

End Sub

est il possible si je declar ma variable public

de la joindre a cette sub de la maniere suivante ??

Sub ChargeComboAdres()
Dim x As Integer

For x = 23 To Sheets('Individu').Range('w65536').End(xlUp).Row
Adres.AddItem Sheets('Individu').Range('w' & x)
Adres.AddItem Sheets('Individu').Range('z' & x)
Pays.AddItem Sheets('Individu').Range('v' & x)
Next

End Sub

cela ne marche pas!!!

d'avance merci pour vos reponses
Thomas®
 
T

Thomas

Guest
Bonsoir,

je pense que dans mon message precedent je n'ai pas été sufisamment claire :eek:

en fait je valorise ma variable postal en fonction de mon conbobox nomé Adres.

If Adres = Cells(37, 23) Then Postal = Cells(37, 24)
If Adres = Cells(37, 26) Then Postal = Cells(37, 24)
If Adres = Cells(38, 26) Then Postal = Cells(38, 24)
If Adres = Cells(38, 23) Then Postal = Cells(38, 24)
If Adres = Cells(39, 26) Then Postal = Cells(39, 24)
If Adres = Cells(39, 23) Then Postal = Cells(39, 24)
If Adres = Cells(40, 26) Then Postal = Cells(40, 24)
If Adres = Cells(40, 23) Then Postal = Cells(40, 24)

ceci est mon code actuel, le probleme est que mon combobox n'est plus limité à 4 ligne mais sera amené a être plus grand.

dans l'etat actuel des choses je suis contraint à prévoir les futures ligne en créant des lignes de code similaire à celle ci dessu en indiquant dans Cells(41,23) puis 42,43,...

est il possible de faire en sorte que postal soit automatiquement valorisé au moment ou je selectionne mon Adres??

je vous join un exemple mais ne faites pas attention car pour des raisons de confidentialité j'ai sup plein de chose
D'avance merci
Thomas® [file name=tom.zip size=30968]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/tom.zip[/file]
 

Pièces jointes

  • tom.zip
    40 KB · Affichages: 20
  • tom.zip
    40 KB · Affichages: 16
  • tom.zip
    40 KB · Affichages: 15
D

Denis

Guest
Bonjour Thomas et le Forum
fais tout simplement une boucle comme ceci :

Dim ValeurMax% , i%
ValeurMax = 40 '(par exemple)
For i = 37 to ValeurMax
If Adres = Cells(i, 23) or Adres = Cells(i, 26) Then Postal = Cells(i, 24)
Next

en utlisant la recherche de dernière ligne, tu peux automatiser ValeurMax
Bon courage & à+
Denis
 
T

Thomas

Guest
Bonjour denis, le forum,

Merci pour ton info cela me retir une epine du pied.

car moi j'etais entraint de faire du bricolage du genre :

'If Adres = Cells(37, 23) Then Postal = Cells(37, 24)
'If Adres = Cells(37, 26) Then Postal = Cells(37, 24)
'If Adres = Cells(38, 26) Then Postal = Cells(38, 24)
'If Adres = Cells(38, 23) Then Postal = Cells(38, 24)
'If Adres = Cells(39, 26) Then Postal = Cells(39, 24)
'If Adres = Cells(39, 23) Then Postal = Cells(39, 24)
'If Adres = Cells(40, 26) Then Postal = Cells(40, 24)
'If Adres = Cells(40, 23) Then Postal = Cells(40, 24)
Postal = Cells(Adres.Row, 24)

mais cela ne marche pas!!!
Ps: si quelqu'un sait pourquoi ma technique du .Row ne fonctionne pas, ce serait super car je pensais vraiment que ....

car la source de mon combobox 'Adres' est cette plage de donné 'Cells(37........ à 40 )

alors je pensais qu'en fesant un '.row' j'aurais afiché le n° de la ligne corréspondant à Adres??

D'avance merci

c'est just pour comprendre car la solution de denis résou deja mon problème.
Thomas®
 

Membres actuellement en ligne

Statistiques des forums

Discussions
313 020
Messages
2 094 433
Membres
106 026
dernier inscrit
zoom