Erreur d'execution 13

nanie12 Messages postés 114 Date d'inscription vendredi 9 avril 2010 Statut Membre Dernière intervention 16 août 2011 - 7 juil. 2011 à 14:50
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 7 juil. 2011 à 16:27
bonjour

j'ai fais cette macros, mais elle ne fonctionne pas, ca me met erreur d'execution13
je tappe dans textbox un numéro de semaine et ca me sort les chantiers que je dois approvisionner.
l'erreur se passe lors de la première boucle
voici la macro :

Private Sub combobox1_Enter()

'choisir un numéro de semaine afin de faire liste
Dim l As Integer, k As Integer, m As Integer, nom As Integer

Sheets("feuil2").Select
Range("A1:A100").Select
Selection.ClearContents
ComboBox1.ListIndex = -1
ComboBox1.Clear
nom = TextBox1.Text

l = 1
k = 8
While Not IsEmpty(Sheets("base de données").Cells(k, 1)) And TextBox1.Text <> Sheets("base de données").Cells(k, 1)
   k = k + 1
    Wend
    If nom <> Sheets("base de données").Cells(k, 1) Then
    MsgBox ("pas d'approvisionnement à faire cette semaine")
    TextBox1.SetFocus
    Else
    While Not IsEmpty(Sheets("base de données").Cells(k, 1))
    k = k + 1
    While nom = Sheets("base de données").Cells(k, 1)
    Sheets("feuil2").Cells(l, 1) = Sheets("base de données").Cells(k, 2)
    l = l + 1
    k = k + 1
    Wend
    Wend
    End If
    
'supprimer les doublons
     Sheets("Feuil2").Select
    Columns("A:A").Select
    ActiveSheet.Range("$A$1:$A$100").RemoveDuplicates Columns:=1, Header:=xlNo

'mettre à jour la combobox
ComboBox1.ListIndex = -1
m = 1
While Not IsEmpty(Sheets("feuil2").Cells(m, 1))
ComboBox1.AddItem (Sheets("feuil2").Cells(m, 1))
m = m + 1
Wend

Sheets("base de données").Cells(1, 9) = TextBox1.Text


end sub

merci pour votre aide !

nanie

1 réponse

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 juil. 2011 à 16:27
Bonjour,

Il y a beaucoup trop à dire, en analysant ton code !
Tellement que je ne vais pour l'instant me contenter d'appeler ton attention sur les points les plus surprenants :
1)
A quoi penses-tu que peut servir ce que je mets en rouge ici ===>
ComboBox1.ListIndex = -1
ComboBox1.Clear

?
2) Quand tu rentres dans ta 1ère boucle While, k = 0 (et je ne connais personnellement pas de ligne pouvant porter ce numéro !

3) pour quelle raison calcules-tu d'abord k ?
C'est apparemment pour aller à la pêche de la première cellule vide.
Si c'est cela : il y a quand même plus orthodoxe !
Si c'est pour aller à la pêche de la dernière cellule remplie, c'est autre chose et il y a également plus orthodoxe que ce "chemin pour le moins tortueux"

4)
Sheets("feuil2").Select
Range("A1:A100").Select
Selection.ClearContents


Les "select" sont ici bien alourdissants !
A remplacer par :
Sheets("feuil2").Range("A1:A100").ClearContents


Voilà pour l'essentiel.
Le reste ne viendra qu'après, mais également après que tu nous auras exposés très clairement ce que tu veux faire. Parle-nous de colonnes et non de "chantiers", s'il te plait.
____________________


Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
Rejoignez-nous