Vider cellule sous condition

Résolu/Fermé
wakafa - Modifié le 7 déc. 2020 à 17:02
yg_be Messages postés 23333 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 - 8 déc. 2020 à 14:20
Je souhaite en cliquant sur un bouton de mon userform, parcourir la colonne "I" verifier si la valeur égale la valeur du textbox4 et puis si la valeur de la colonne B est différente de textbox21 me vider les cellules des colonnes H, I et J. Etant donné que je suis pas experte en vba et après plusieurs recherches j'arrive pas à comprendre pourquoi le code utilisé ci-dessous ne fonctionne pas.

Merci bien pour votre aide mais je suis vraiment bloquée la dessus.

Je sollicite ainsi votre aide.

Merci d'avance.



 Private Sub CommandButton7_Click()
 Set sh1 = Sheets("planning")

 For i = 3 To sh1.Cells(Rows.Count, "I").End(xlUp).Row
 If sh1.Range("I" & i) = TextBox4.Value And sh1.Range("I" & i).Offset(0, -7) <> TextBox21.Value Then
 sh1.Range("I" & i).Value = ""
 sh1.Range("I" & i).Offset(0, 1).Value = ""
 sh1.Range("I" & i).Offset(0, -1).Value = ""
 End If

 Next i
 MsgBox ("Fichier actualisé")
 End Sub

4 réponses

yg_be Messages postés 23333 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 Ambassadeur 1 551
7 déc. 2020 à 16:20
bonjour,
moi je me méfierais du
Rows
sans précision de la feuille, et je ferais:
For i = 3 To sh1.Cells(sh1.Rows.Count, "I").End(xlUp).Row


en passant, je trouve que Offset est inutile ici, et je ferais plutôt, par exemple:
Range("B" & i)

au lieu de
Range("I" & i).Offset(0, -7)
0
Bonjour yg_be,

Merci pour votre retour.
J’ai effectué les changements mais la suppression ne se fait toujours pas et pas de message d’erreur.
0
yg_be Messages postés 23333 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 1 551
7 déc. 2020 à 20:02
peux-tu partager ton fichier?
0
M-12 Messages postés 1331 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023 284
7 déc. 2020 à 17:04
Bonjour
Teste comme ceci
Private Sub CommandButton7_Click()
Set sh1 = Sheets("planning")
  For i = 3 To sh1.Cells(Rows.Count, "I").End(xlUp).Row
    If sh1.Range("I" & i).Text = TextBox4.Value Then
      If sh1.Range("B" & i).Text <> TextBox21.Value Then
        sh1.Range("I" & i).Value = ""
        sh1.Range("I" & i).Offset(0, 1).Value = ""
        sh1.Range("I" & i).Offset(0, -1).Value = ""
      End If
    End If
  Next i
MsgBox ("Fichier actualisé")
End Sub
0
Merci M-12, c’est exactement ça ce qu’il fallait faire.
Ça fonctionne maintenant.
Merci à vous tous.
0
yg_be Messages postés 23333 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 1 551 > Wakafa
8 déc. 2020 à 14:20
peux-tu alors marquer la discussion comme résolue?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
7 déc. 2020 à 17:05
Bonjour,

Merci de :
> préciser ce qui est saisi dans les 2 textbox (numérique, texte, date, etc...)
> préciser ce que contiennent les colonnes I et B

Essayer également d'indiquer la propriété des cellules à scruter :
If sh1.Range("I" & i).Value = TextBox4.Value And sh1.Range("I" & i).Offset(0, -7).Value <> TextBox21.Value Then

0