Pourquoi lorsque la condition est repsectée la ligne n'est pas supprimée par la macro

  • Initiateur de la discussion Initiateur de la discussion fb62840
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fb62840

XLDnaute Impliqué
Bonjour à toutes et à tous,

J'essaie d'obtenir la suppression des lignes dans lesquelles on retrouve un identifiant donné.

Le code ci-dessous ne fonctionne pas, et je ne comprends pas pourquoi. Pourriez-vous me mettre sur la piste ?

Code:
Private Sub CommandButton1_Click()
Dim derlign As Integer
Dim i As Integer

With Sheets("Donnees_regions")
    derlign = .Cells(Application.Rows.Count, 1).End(xlUp).row
    For i = derlign To 2 Step -1
        If .Cells(i, 1).Value = Me.ComboBox1.Value Then .Rows(i).Delete
        MsgBox (i)
    Next i
End With
End Sub

Merci beaucoup pour votre aide.
 
Re : Pourquoi lorsque la condition est repsectée la ligne n'est pas supprimée par la

Bonjour,

A priori ton code a l'air correct.
A mon avis il doit y avoir un problème de format de données entre le contenu de ta cellule Cells(i,1) et le contenu de ton ComboBox.

Pourrais tu nous dire le type de données stockées dans ce ComboBox ?
 
Re : Pourquoi lorsque la condition est repsectée la ligne n'est pas supprimée par la

Bonjour,

sans voir le modèle de donnée, difficile à dire... A noter tout de même que les valeurs contenues dans ta "combo" sont stockées en format texte.... peut être y a t il lieu d'en effectuer une conversion, via la fonction "CDbl" ou autre...

bon après midi
@+

Edition : bonjour Géo
 
Re : Pourquoi lorsque la condition est repsectée la ligne n'est pas supprimée par la

Merci pour vos réponses, elles m'ont permis de trouver une solution.

En fait, effectivement la combo contient du "Text" et j'utilisais la propriété Value qui n'était pas appropriée.
En corrigeant dans le code la ligne de vérification du critère, maintenant tout se passe bien.

Code:
If .Cells(i, 1).Value = Me.ComboBox1.Text Then .Rows(i).Delete

Merci encore, je suis toujours impressionné par la vitesse de réaction des membres de la liste, tout simplement EXCELLENT.
 
Re : Pourquoi lorsque la condition est repsectée la ligne n'est pas supprimée par la

Attention, je ne suis pas certains que l'utilisation de la méthode .Text va entièrement résoudre ton problème.
Comme le souligne Pierrot, le contenu d'un ComboBox est considéré comme du texte (même s'il ne contient que des nombres).
Ainsi, si tu choisis "99" dans un ComboBox, il ne pourra être comparé à un "99" saisi dans une cellule (qui sera lui considéré comme un nombre à part entière). Il en va de même si le ComboBox contient des dates, des montants etc....

La meilleure façon de faire est bien d'utiliser une conversion de type Cdbl, Cdate etc......
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
905
Réponses
4
Affichages
728
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
3
Affichages
919
Réponses
9
Affichages
881
Retour