Cette macro supprime les lignes [d’une colonne donnée] contenant un mot déterminé :
PHP:
Sub supprimeligne()
Dim rng As Range
Dim tx As String
tx = "le_mot"
Do
Set rng = Sheets("BD").Range("D:D").Find(tx)
If rng Is Nothing Then
Exit Do
Else
Sheets("BD ").Rows(rng.Row).Delete
End If
Loop
End Sub
Ce serait hyper sympa si quelqu’un pouvait me dire comment réécrire cette macro (ou une autre, peu importe) lorsque le mot en question est fonction de ce qu’affiche un TextBox.
En fait le but est que, lors de l’affichage d’un UserForm1, on puisse supprimer la ligne d’une BD dont la colonne D contient la valeur affichée dans la TextBox1 par exemple.
J’avais une autre requête un peu dans la suite logique de la précédente, lorsqu’il est question de supprimer une ligne dont la colonne D contient la valeur affichée dans la TextBox1, et dont la colonne G contient la valeur affichée dans la TextBox2
Sub supprimeligne()
Dim rng As Range
Dim tx As String
tx = "le_mot"
Do
Set rng = Sheets("BD").Range("D").Find(tx)
If rng Is Nothing Then
Exit Do
Else
Sheets("BD ").Rows(rng.Row).Delete
End If
Loop
End Sub
Sub supprimeligne(mot as string , colonne as string)
Dim rng As Range
Dim tx As String
tx =mot
Do
Set rng = Sheets("BD").Range(colonne ).Find(tx)
If rng Is Nothing Then
Exit Do
Else
Sheets("BD ").Rows(rng.Row).Delete
End If
Loop
End Sub
et dans le userform :
sur clic bouton tu dis :
mot = textebox1.text
colonne = textbox2.text &":" & textbox2.text (et oui , dans le box , tu ne renseignes qu'une fois la lettre de la colonne)
call supprimeligne (mot,colonne)
Private Sub CommandButton1_Click()
Dim rng As Range
Dim tx As String
If TextBox1 = "" Then Exit Sub
tx = TextBox1.Value
Do
Set rng = Sheets("Feuil1").Range("D:D").Find(tx)
If rng Is Nothing Then
Exit Do
Else
Sheets("Feuil1").Rows(rng.Row).Delete
End If
Loop
Unload Me
End Sub
Merci pour votre aimable réponse
Le code Dull fonctionne bien, pour une TextBox (Date réunuion)
Je vais maintenant devoir essayer de l'adapter pour deux TextBox (Date réunuion & Intitulé réunion)
Je joins le fichier au cas où vous auriez une idée sur la question :
PS : Je ne comprends pas pourquoi le calendrier que j’appelle à partir de la TextBox4 (Date de réunion) s’affiche mais n’inscrit pas sa valeur dans la TextBox en question.
Avant d'aller plus loin Kim les données qui sont dans ton fichier ne sont pas anonymes retire le et/ou remplace au besoin les données tels que les n° de Téléphone, @Email
Re,
Il y a comme un schisme...
La colonne D contient des dates et la textbox5...non !?
Pour la colonne H, est-ce bien la textbox 6
La recherche doit-elle porter sur une partie du texte ou non
A+
kjin
Re,
Il y a comme un schisme...
La colonne D contient des dates et la textbox5...non !?
Pour la colonne H, est-ce bien la textbox 6
La recherche doit-elle porter sur une partie du texte ou non
A+
kjin
Voilà, en fait, la macro pour supprimer la ligne en rapport aux valeurs affichés dans les deux TextBox (4 et 5 dan cet exemple) était presque identique à la première, à force de tâtonner on a parfois la chance de déboucher quelque part lol :
PHP:
Private Sub SuprResa_Click()
Dim rng As Range
Dim txd, txi As String
If TextBox4 = "" And TextBox5 = "" Then Exit Sub
txd = TextBox4.Value
txi = TextBox5.Value
Do
Set rng = Sheets("Historic").Range("D:D").Find(txd)
Set rng = Sheets("Historic").Range("G:G").Find(txi)
If rng Is Nothing Then
Exit Do
Else
Sheets("Historic").Rows(rng.Row).Delete
End If
Loop
Unload Me
End Sub
Et oui , selon certains cas de figure , il risque de rester des lignes ou l'info colonne D était pourtant à enlever car tu utilises la même variable pour chercher, et si tu trouve en D et qu'il n'y à rien en G bien tu sorts de la boucle et t'as pas les félicitations de ton patron ...
En employant 2 variables de recherche et un and dans ton test cela devrait aller mieux.
Bonjour,
Il y a sans doute plus simple...
Entre un mot dans tbx5 ou tbx6 puis double-click sur un item de la listbox pour renvoyer dans les tbx
A+
kjin
Merci pour ce code, il est génial, tu m’excuseras mais j’ai bidouillé un peu comme d’habitude lol
En tout cas, lorsqu'on clique sur une ligne de la ListBox, cela remplit tous les contrôles de l'USF :
Seul problème : lorsqu'on clique sur le bouton Valider (modification), ça rajoute une ligne au lieu de modifier la ligne en question.
Private Sub Ok_Click()
Dim ligne As Long
With Sheets("Historic") ligne = Sheets("Historic").[G:G].Find(ListBox1, LookIn:=xlValues).Row
Sheets("Historic").Cells(ligne, 1) = Me.TextBox1
Sheets("Historic").Cells(ligne, 2) = Me.TextBox2
Sheets("Historic").Cells(ligne, 3) = Me.TextBox3
etc...
End With
End Sub