Remplir combobox Excel

Remplir combobox Excel - VB/VBA/VBS - Programmation

Marsh Posté le 29-12-2007 à 18:14:59    

Bonjour je voudrais remplir deux combobox dans Excel nommées "Moyenne " et "Somme" des mêmes champs suivants  "Nombre d'heures"; "Salaire Brut"; "Charges"; "Salaire Net"
J'ai donc décidé de faire la procédure suivante :
 
Private Sub RemplirStat(Var As Object)
With Var
 .AddItem "Nombre d'heures"
 .AddItem "Salaire Brut"
 .AddItem "Charges"
 .AddItem "Salaire Net"
End With
End Sub
 
Puis de faire appel à la procédure :
RemplirStat(Me.Moyenne)
RemplirStat(Me.Somme)
 
Mais au moment d'exécuter ma macro j'ai un message d'erreur "Objet requis"
Pourtant Me.Moyenne et Me.Somme sont bien des objets car je les ai testé avec IsObject
 
D'où vient le problème à votre avis ??
 
Je voulais savoir aussi comment on peut utiliser RowSource avec quelques cellules. Je m'explique :  
Je sais que si je mets Me.Moyenne.RowSource="B1:B5" ma combobox Moyenne va se remplir des cellules à B1  à B5 mais si je ne veux que les cellules B3 et B5 par exemple comment faire ???  
Si j'écris Me.Moyenne.RowSource="B3;B5" j'ai un message d'erreur.....
 
Merci d'avance !!!

Reply

Marsh Posté le 29-12-2007 à 18:14:59   

Reply

Marsh Posté le 31-12-2007 à 01:20:04    

Soir Bon
En supposant qu'il s'agit de ComboBoxes sur une UserForm
Sélectionner Call puis [F1]

Option Explicit
 
Private Sub RemplirStat(Var As ComboBox)
    With Var
        .Clear
        .AddItem "Nombre d'heures"
        .AddItem "Salaire Brut"
        .AddItem "Charges"
        .AddItem "Salaire Net"
    End With
End Sub
 
Private Sub UserForm_Initialize()
    Call RemplirStat(Me.Moyenne)
    Call RemplirStat(Me.Somme)
End Sub


ou


Private Sub UserForm_Initialize()
    RemplirStat Me.Moyenne
    RemplirStat Me.Somme
End Sub


ou pourquoi pas


Private Sub UserForm_Initialize()
    RemplirStat Me.Moyenne
    Call RemplirStat(Me.Somme)
End Sub


 
[Alt+F11] [F4]
Sélectionner Feuil1 : Propriété (name) ShF1


.....
        .AddItem ShF1.Range("B3" )
        .AddItem ShF1.Range("B4" )
        .AddItem ShF1.Range("B5" )
.....


Message édité par kiki29 le 31-12-2007 à 04:50:42
Reply

Marsh Posté le 31-12-2007 à 16:59:08    

merci énomément ! toutes ces solutions marchent nickel !!!

Reply

Sujets relatifs:

Leave a Replay

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