procedure trop grande sur un combobox, erreur de compilation "Procédure trop grande"

timtof

XLDnaute Nouveau
bonjour à tous...

voilà je voulais savoir si qq1 peut m'aider à simplifier mon petit programme car ce dernier me renvoi une erreur de compilation "Procédure trop grande".

J'ai un userform avec un combobox1 qui lorsque je clique dessus va chercher une liste de fournisseur, je l'ai prévu pour 200 fournisseurs si je prévois 180 ça fonctionne...mais j'amerai en prévoir 200.

merci d'avance pour votre aide et bonne journée.

Tim

voici
Code:
Private Sub ComboBox1_Change()
    ComboBox1.Value = UCase(ComboBox1.Value)
    If ComboBox1.Value = "" Then
    TextBox1.Value = "": TextBox2.Value = "": TextBox3.Value = "": TextBox4.Value = "": TextBox5.Value = "": TextBox6.Value = "": TextBox7.Value = ""
    
ElseIf ComboBox1.Value = Worksheets("DIVERS").Range("A" & 2) Then
    X1 = Worksheets("DIVERS").Range("B2"): X2 = Worksheets("DIVERS").Range("C2")
    TextBox1.Value = X1
    TextBox2.Value = X2
    TextBox8.Value = (Date)
    
ElseIf ComboBox1.Value = Worksheets("DIVERS").Range("A" & 3) Then
    X3 = Worksheets("DIVERS").Range("B3"): X4 = Worksheets("DIVERS").Range("C3")
    TextBox1.Value = X3
    TextBox2.Value = X4
    TextBox8.Value = (Date)
    
ElseIf ComboBox1.Value = Worksheets("DIVERS").Range("A" & 4) Then
    X5 = Worksheets("DIVERS").Range("B4"): X6 = Worksheets("DIVERS").Range("C4")
    TextBox1.Value = X5
    TextBox2.Value = X6
    TextBox8.Value = (Date)
    
ElseIf ComboBox1.Value = Worksheets("DIVERS").Range("A" & 5) Then
    X7 = Worksheets("DIVERS").Range("B5"): X8 = Worksheets("DIVERS").Range("C5")
    TextBox1.Value = X7
    TextBox2.Value = X8
    TextBox8.Value = (Date)
    
ElseIf ComboBox1.Value = Worksheets("DIVERS").Range("A" & 6) Then
    X9 = Worksheets("DIVERS").Range("B6"): X10 = Worksheets("DIVERS").Range("C6")
    TextBox1.Value = X9
    TextBox2.Value = X10
    TextBox8.Value = (Date)
    
ElseIf ComboBox1.Value = Worksheets("DIVERS").Range("A" & 7) Then
    X11 = Worksheets("DIVERS").Range("B7"): X12 = Worksheets("DIVERS").Range("C7")
    TextBox1.Value = X11
    TextBox2.Value = X12
    TextBox8.Value = (Date)

ElseIf ComboBox1.Value = Worksheets("DIVERS").Range("A" & 8) Then
    X13 = Worksheets("DIVERS").Range("B8"): X14 = Worksheets("DIVERS").Range("C8")
    TextBox1.Value = X13
    TextBox2.Value = X14
    TextBox8.Value = (Date)

End If
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : procedure trop grande sur un combobox, erreur de compilation "Procédure trop gra

Bonjour Tim,

Si j'ai compris, une version qui pourrait marcher pour 1000 ;)

Code:
Private Sub ComboBox1_Change()
    ComboBox1.Value = UCase(ComboBox1.Value)
    If ComboBox1.Value = "" Then
    TextBox1.Value = "": TextBox2.Value = "": TextBox3.Value = "":  TextBox4.Value = "": TextBox5.Value = "": TextBox6.Value = "":  TextBox7.Value = ""
    
Else 
    Ligne = Application.match(ComboBox1.Value, Worksheets("DIVERS").Range("A1:A1000"), 0)
    X1 = Worksheets("DIVERS").Range("B" & Ligne): X2 = Worksheets("DIVERS").Range("C" & Ligne)
    TextBox1.Value = X1
    TextBox2.Value = X2
    TextBox8.Value = (Date)
End If
End Sub
 
Dernière édition:

timtof

XLDnaute Nouveau
Re : procedure trop grande sur un combobox, erreur de compilation "Procédure trop gra

merci bcp tototiti2008,

j'ai un retour d'erreur de syntaxe sur cette ligne " Ligne = Application.match(ComboBox1.Value, Worksheets("DIVERS").Range("A1:A200"), 0) Then"

cette ligne est en rouge...
 

tototiti2008

XLDnaute Barbatruc
Re : procedure trop grande sur un combobox, erreur de compilation "Procédure trop gra

Re,

autre chose le textbox1 et textbox2 doivent varier aussi, si tu regarde mon programme initial, tu peux le constater...

Ben non :confused: Je ne constate pas
Si ça ne marche pas, plutôt que des palabres à l'aveugle, essaye de nous fournir un bout de fichier exemple, sans données confidentielles
 

timtof

XLDnaute Nouveau
Re : procedure trop grande sur un combobox, erreur de compilation "Procédure trop gra

Effectivement yu as bien raison...je garderai ce conseil pour la prochaine fois...je joindrai le programme au texte.

Je te remercie encore pour ton aide et te confirme que ça fonctionne parfaitement...

à bientôt...
 

timtof

XLDnaute Nouveau
Re : procedure trop grande sur un combobox, erreur de compilation "Procédure trop gra

bonjour tototiti2008, et à tous,

je rencontre un problème sur le petit programme que tu m'as donné hier...
lorsque je je tape un nom existant dans le combobox1 userform encodage tout ok mais si je tape un nom qui n'existe pas alors là il m'indique une erreur d'exécution 13 " incompatibilité de type"...

Si tu es disponible peux tu y jeter un coup d'oeil ? Autrement qq1 d'autre je vous dis merci à tous et une trés belle journée

pour plus de facilter je joins le fichier...
 

tototiti2008

XLDnaute Barbatruc
Re : procedure trop grande sur un combobox, erreur de compilation "Procédure trop gra

Bonjour Tim,

Peut-être

Code:
Private Sub ComboBox1_Change()
    ComboBox1.Value = UCase(ComboBox1.Value)
    If ComboBox1.Value = "" Then
        TextBox1.Value = "": TextBox2.Value = "": TextBox3.Value = "":  TextBox4.Value = "": TextBox5.Value = "": TextBox6.Value = "":  TextBox7.Value = ""
    Else
        
        Ligne = IIf(IsNumeric(Application.Match(ComboBox1.Value, Worksheets("DIVERS").Range("A1:A200"), 0)), Application.Match(ComboBox1.Value, Worksheets("DIVERS").Range("A1:A200"), 0), 0)  '   pour passer à 1000 fournisseur rempplacer A200 par A1000
        If Ligne > 0 Then
            X1 = Worksheets("DIVERS").Range("B" & Ligne): X2 = Worksheets("DIVERS").Range("C" & Ligne)
            TextBox1.Value = X1
            TextBox2.Value = X2
        Else
            TextBox1.Value = ""
            TextBox2.Value = ""
        End If
        TextBox8.Value = (Date)
    End If
End Sub
 

Discussions similaires

Réponses
0
Affichages
148