creation de fonction, est-ce possible

  • Initiateur de la discussion steph
  • Date de début
S

steph

Guest
Bonjour à toutes et tous,

je débute dans la prog sous vba et je n'ai pas conscience des limites du langage.
j'ai le code suivant :

Option Explicit
Private i As Integer
Private j as Integer
Private IntNbLgn As Integer

Sub go()
RechNbLgn ("a")
LsB1.Clear

For i = 1 To IntNbLgn
LsB1.AddItem (Worksheets("REF").Range("a" & i).Value)
Next
End Sub
___________________________________
Sub RechNbLgn(ByVal StrNbColone)
'recherche du nb de ligne :
IntNbLgn = 1
Do While Worksheets("REF").Range(StrNbColone & IntNbLgn).Value <> ""
IntNbLgn = IntNbLgn + 1
Loop
IntNbLgn = IntNbLgn - 1
End Sub


Mon objectif serait de faire une fonction du style de go() en donnant en argument un entier correspondant au 1 de LsB1(qui est une listBox) par exemple.
Le but final étant de remplir les ListBox LsB1, LsB2,...,LsBn avec une seule fonction avec un code du genre :

Sub FonctionSuper(ByVal j)
RechNbLgn (Ref de la colone) '~~Pr Ref de la colone je sais comment faire
LsB & j &.Clear '~~ici concaténation de Lsb et j pour obtenir le nom de la ListBox

For i = 1 To IntNbLgn
LsB& j &.AddItem (Worksheets("REF").Range("a" & i).Value)
Next

End Sub

Sub Remplissage()
'IntNbLsB est le nombre de ListBox
for j=1 to IntNbLsB
FonctionSuper(j)
next
End Sub

Voilà, est-ce que ce que je veux faire et tout simplement possible? (surtout à cause de la concaténation entre LsB et j)

Si vous avez le temps de me répondre merci.

Steph
 
Z

ZON

Guest
Bonsoir Steph et le forum,

D'aprés ce que j'ai compris, tu n'as pas besoin de créer la Fonction RechNblignes en VBA
dans ta sub go comme suit

Sub go()
''''RechNbLgn ("a")
LsB1.Clear

For i = 1 To sheets("REF").Range("A65536").end(xlup).row 'On recupère ici le N° de ligne de la dernère ligne utilisée
LsB1.AddItem (Worksheets("REF").Range("a" & i).Value)
Next
End Sub


Tu as ce fil sur Lien supprimé



A+++
 
S

steph

Guest
Bonjour ZON (enfin bonne nuit car vu l'heure où tu as répondu, maintenant tu dois dormir),

Merci pour ta réponse, je vais creuser le sujet.

Mais en abusant, ma plus grande interrogation (faut qd même reconnaître que je n'ai pas été des plus clair ds mon message) est : est-ce qu'il est possible d'avoir quelque chose du style

for i=1 to 34
Lsb & i &.clear 'C'est là que c'est vraiment stylisé ;-)
next

Ce qui me permetterait de répéter la même opération sur les 34 ListBox (nommées Lsb1, Lsb2,...,Lsb34) avec la même procedure.

Fini bien ta nuit ;-)

Steph
 

Discussions similaires

Statistiques des forums

Discussions
314 658
Messages
2 111 621
Membres
111 235
dernier inscrit
Morgane SANCHEZ