VBA : Suppression de ligne selon la valeur d'une textbox

Tiazeet5

XLDnaute Nouveau
Bonjour,

Je pratique le VBA depuis peu et j'essai actuellement de faire un suivi automatisé de documents. J'ai crée un UserForm avec plusieurs textbox. Je souhaiterai que lorsque je clique sur le bouton supprimer d'un userform le programme recherche la valeur de la textbox dans tout le tableau et qu'il supprime la ligne concernée automatiquement. Pour cela j'ai programmé comme tel :

Private Sub Supprimer_Click()
Dim plage As Range
Set plage = Range("B2:B100")
For i = 2 To 279
If TextBox1.Value = Cells(i, 2).Value Then
Set plage = Sheets("Suivi des règles de conception").Range("B:B").Find(TextBox1.Text)
If Not plage Is Nothing Then
MsgBox ("Attention la modification suivante sera supprimer définitivement!" & vbCr & vbCr & Sheets("Suivi des règles de conception").Range("A" & i) & vbCr & vbCr & Sheets("Suivi des règles de conception").Range("J" & i))
Columns(2).Rows(i).EntireRow.Delete
End If
Exit Sub
Else
MsgBox ("Cette référence n'existe pas")
Exit Sub
End If
Next
End Sub

Ce programme supprime bel et bien une ligne seulement il supprime que si la valeur taper en référence (textbox) est reconnu sur la seconde ligne (Cell(2,2). Concretement si ma référence est dans la Cell(4,5) il dit qu'elle existe pas.

Merci de votre aide. Je suis nouveau sur les forums alors si jamais vous avais du mal a comprendre mon problème ou que j'ai omis un concept de ce forum n'hésitez pas à m'en faire part. Par ailleurs il est possible que ce topic existe déja, dans le cas écheant merci de me rediriger vers celui-ci.
 

13GIBE59

XLDnaute Accro
Re : VBA : Suppression de ligne selon la valeur d'une textbox

Bonjour Tiazeet5, et bienvenue sur le forum.

Sans fichier, pas facile de trouver ...
Dans ton code, le premier (à la ligne 3) Set Plage etc...ne sert à rien, puisque tu le redéfinis à la ligne 6.

Tu écris : "Concrètement si ma référence est dans la Cell(4,5) il dit qu'elle existe pas." Tout cela me paraît normal, puisque
tu impactes dans ton code la colonne B :

If TextBox1.Value = Cells(i, 2).Value Then
Set plage = Sheets("Suivi des règles de conception").Range("B:B").Find(TextBox1.Text)

Voilà.

JB
 

Pierrot93

XLDnaute Barbatruc
Re : VBA : Suppression de ligne selon la valeur d'une textbox

Bonjour,

regarde ceci, espérant te faire avancer :
Code:
Option Explicit
Private Sub Supprimer_Click()
Dim i As Long
For i = 279 To 2 Step -1
    If TextBox1.Value = Cells(i, 2).Value Then Sheets("Suivi des règles de conception").Rows(i).Delete
Next i
End Sub

quand tu supprimes, il faut commencer la boucle par la fin et remonter...

bonne journée
@+

Edition : bonjour 13GIBE59 :)
 
Dernière édition:

MarcLav

XLDnaute Nouveau
Bonjour Pierrot93
Je voudrais savoir ce qui ce passerait avec cette formule si la textbox affiche Zéro ou même rien, la fonction supprime une ligne s'arrête et attend qu'une valeur réapparaisse dans la texbox ?
Je cherche a faire en sorte que si ma textbox affiche des nombre entre 0 et 24 alors lorsque je valide un autre ensemble d'opération type fin de fois alors on supprime une ligne, sinon on ne fait rien.
Et donc est ce que cette formule conviendrait ?
Avec tout mes remerciement
Marc
 

Discussions similaires

Réponses
21
Affichages
284

Statistiques des forums

Discussions
312 194
Messages
2 086 066
Membres
103 110
dernier inscrit
Privé