Combobox et function

Combobox et function - VB/VBA/VBS - Programmation

Marsh Posté le 03-03-2010 à 09:47:38    

Bonjour,
 
Je voudrais faire appel à une fonction pour remplir mes combobox (60 combobox à remplir, autant utiliser une fonction ou procédure) en VBA.
Mais j'ai une erreur lors de l'exécution.
Voici mon code :
 

Code :
  1. private Sub Worksheet_Activate()
  2.     Dim NBfais As Integer
  3.     NBfrais = 4     
  4.     If ComboBox1.ListCount <> NBfrais Then
  5.         List (ComboBox1)
  6.     End If
  7. End Sub
  8. Function List(ByVal NameComboBox As ComboBox) As Boolean
  9.         NameComboBox.AddItem "Dogs"
  10.         NameComboBox.AddItem "Cats"
  11.         NameComboBox.AddItem "Mice"
  12.         NameComboBox.AddItem "Other"
  13. End Function


 
Le même principe fonctionne en VB.
Auriez vous une idée ?
 
Merci,
yeram

Reply

Marsh Posté le 03-03-2010 à 09:47:38   

Reply

Marsh Posté le 03-03-2010 à 11:46:43    

Les Fonctions VBA ne fonctionnent pas comme ça. utilise une (sous) procédure.
 

Code :
  1. Private Sub Worksheet_Activate()
  2.    Dim NBfais As Integer
  3.    NBfrais = 4
  4.    If ComboBox1.ListCount <> NBfrais Then
  5.         ListA ComboBox1
  6.    End If
  7. End Sub
  8. Sub ListA(ByVal NameComboBox As ComboBox)
  9.         NameComboBox.AddItem "Dogs"
  10.         NameComboBox.AddItem "Cats"
  11.        NameComboBox.AddItem "Mice"
  12.         NameComboBox.AddItem "Other"
  13. End Sub


 
... A moins d'utiliser une fonction qui renvoie un Array : ça je n'ai pas essayé ! c'est pitêtre une sottise...
A+


Message édité par galopin01 le 03-03-2010 à 11:47:02
Reply

Marsh Posté le 03-03-2010 à 14:04:29    

OK, merci Galopin1
Quelqu'un a déjà fais un boucle pour remplir plusieurs Combobox ?
 
genre :

Code :
  1. Private Sub Worksheet_Activate()     
  2.     For i = 1 To 62
  3.          If combo.ListCount <> NBList() Then
  4.               ListAutreFrais ComboBox&i
  5.         End If
  6.     Next i   
  7. End Sub


Message édité par yeram le 03-03-2010 à 14:05:18
Reply

Marsh Posté le 03-03-2010 à 16:38:46    

Voici la réponse :

Code :
  1. Option Explicit
  2. Private Sub Worksheet_Activate()
  3.    
  4.     Dim OleObj As OLEObject
  5.    
  6.     For Each OleObj In Feuil1.OLEObjects
  7.        If OleObj.Object.ListCount <> NBList() Then
  8.             List OleObj.Object
  9.         End If
  10.     Next
  11.  
  12. End Sub

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed