creation de fonction, est-ce possible

  • Initiateur de la discussion Initiateur de la discussion steph
  • 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 !

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
 
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+++
 
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
 
- 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

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
45
Réponses
10
Affichages
714
Réponses
3
Affichages
569
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
481
  • Question Question
Microsoft 365 VBA Transpose
Réponses
11
Affichages
727
Réponses
3
Affichages
485
Retour