Msg d'erreur : Erreur de compilation sub ou fonction non défini

Fermé
zanlepan Messages postés 5 Date d'inscription jeudi 25 juin 2015 Statut Membre Dernière intervention 9 décembre 2015 - Modifié par pijaku le 6/10/2015 à 08:46
 Paf - 6 oct. 2015 à 10:52
Bonjour,

J'ai ajouté un COmboBox "CB_vessel" à ma feuille "Template" et voici le code que j'ai utilisé pour le remplir:

Private Sub CB_vessel_Change()
With Sheets("calculs")
    premierNavire = .Range("AA1").Address
    dernierNavire = .Range(premierNavire).End(xlDown).Address
    vessels = .Range(premierNavire & ":" & dernierNavire)
End With
With ActiveSheet.CB_vessel
      For Each vesselName In vessels
         .AddItem vesselName
     Next vesselName
    .Style = fmStyleDropDownList
    .AutoSize = False
End With    
End Sub

Ensuite, j'ai créé un userform avec un bouton qui copie la feuille "template". mais le comboBox ne se rempli pas comme sur la feuille template lorsque j'active le code... Le voici :

Private Sub CB_ok_Click()
    With Sheets("Template")
        .Visible = True
        .Copy after:=Sheets(Sheets.Count) 'Copie le template pour nouveau formulaire
    End With
    
    Set ws = ActiveSheet
    
    With ws 'la nouvelle feuille créée
        .Name = actualYear
        .Shapes("infos_group").Delete
        Call cell_names(ws) 'appelle la procédure cell_name ds macro1
        Call CB_vessel_Change(ws)
    End With
End sub


Je ne sais pas pourquoi ça ne fonctionne pas! J'espere que vous pourrez m'aider!,
Merci d'avance
A voir également:

2 réponses

zanlepan Messages postés 5 Date d'inscription jeudi 25 juin 2015 Statut Membre Dernière intervention 9 décembre 2015
5 oct. 2015 à 17:46
En faite j'ai le message d'erreur suivant qui s'affiche :
Erreur de compilation, sub ou fonction non définie
0
Bonjour,

Si la Private Sub CB_vessel_Change() n'est pas dans la feuille de code de l'USF, mais dans un module standard, supprimer Private

Dans Private Sub CB_ok_Click() de l'USF on fait appel à la sub CB_vessel_Change avec un paramètre par
CB_vessel_Change(ws)

or cette sub n'a pas de paramètre défini. le rajouter et l'utiliser pour référencer la feuille où la combobox doit être remplie.
Private Sub CB_vessel_Change(SH)
...
...
...
With SH.CB_vessel
For Each vesselName In vessels
.AddItem vesselName
Next vesselName
.Style = fmStyleDropDownList
.AutoSize = False
End With



A+
0