Problèmes de lenteur d'un code vba dans un Userform

Moniato

XLDnaute Nouveau
Bonsoir à tous.

Je rencontre deux problèmes avec ce code.

'Bouton Suppression

Private Sub CommandButton7_Click()
If ComboBox1.Value = "" Then
MsgBox ("Veuillez selectionner la Société à supprimer")
Else
If MsgBox("Confirmez-vous la Société ?", vbYesNo, "Confirmation") = vbYes Then
ActiveSheet.Unprotect "0"
Rows([B2:I100].Find(ComboBox1.Value).Row).EntireRow.Delete
Sheets("VDD").Protect "0"
Range("B2").Select
MsgBox ("Suppression effectuée")
Unload UserForm2
End If
End If
End Sub

1 er point:
Alors il fonctionne et fait le travail demandé, mais par contre il est extrêmement lent au moins 10 secondes pour s’exécuter.
Je n'arrive pas à trouver où est le problème.
Quelqu'un pourrait me le rendre plus rapide svp ?

2ème point :
Tel qu'il conçu il me supprime la ligne qu'il trouve via la valeur indiquée dans une combobox.
Avec "EntireRow.Delete".
Je souhaiterai plutôt qu'une suppression de ligne, un effacement des valeurs de la ligne. "ClearContents".
Mais là aussi je pêche sans trouver comment lui indiquer cette tâche.

Merci à ceux qui pourraient m'aider.
@+...
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Que vaut ComboBox1.ListIndex ? Ne pouvez vous l'utiliser ?
C'est idiot de rechercher une valeur de ComboBox alors qu'elle a déjà une fonctionnalité de recherche dans la liste qu'on lui a attribuée !
Même si c'est le reflet d'une liste filtrée, notez dans une petite table le numéro de ligne d'où vous avez tiré la valeur, pour pouvoir l'y retrouver instantanément avec son ListIndex.
 
Dernière édition:

Moniato

XLDnaute Nouveau
Bonjour Dranreb,

Alors en fait quand j'ouvre mon formulaire, cette combobox me sert à trouver effectivement dans sa liste le nom de toutes les sociétés que j'ai insérer.
Elle me sert aussi donc à retrouver si nécessaire toujours dans sa même liste le nom d'une société pour pouvoir la supprimer dans la feuille "VDD".
Une fois la société trouvée j'ai un bouton de suppression qui va chercher la ligne où elle se trouve pour me la supprimer.
Tout fonctionne mais par contre l'exécution du code est extrêmement longue, au moins 10s.
Je pense que ce n'est pas normal .
Que pensez vous du code y a t-il des erreurs ?
Merci.
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon