comment simplifier la valorisation de variable

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

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 !

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®
 
Bonsoir,

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

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

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
 
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®
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
519
Réponses
3
Affichages
639
Réponses
1
Affichages
666
Réponses
0
Affichages
651
Retour