Bonjour à tous,
J'aimerais effacer le contenu d'une cellule (I23), si une autre cellule (G23) à une valeur de 0 ou est vide.
J'ai essayé avec la mise en forme conditionnelle en prenant des exemples sur les sites, mais ça ne fonctionne pas !
Merci de votre aide.
Bonne soirée à tous.
David.
bonjour david-44-
je suppose que votre demande concerne la colonne complète et que la cellule i23 pourrait être i26 ou i28 etc
le code vba ci-dessous à placer dans un module, supprimera toutes les valeurs (à partir de la ligne 5, à vous d'adapter) de la colonne G sur la même ligne que les cellules vides de la colonne I dans la feuille active.
VB:
Sub suppression()
With ActiveSheet
li = .Cells(36000, 3).End(xlUp).Row
For i = 5 To li
If .Cells(i, 7) = "" Then
.Cells(i, 9) = ""
End If
Next
End With
MsgBox ("Modifications effectuées")
End Sub
Bonsoir GALOUGALOU,
En effet, ce sont les colonnes "G" et "I" qui sont utilisées.
Merci de votre aide, mais ça ne marche pas !
Je ne comprends pas.
Je dois mal placer le code.
Bonne soirée.
re
il faut poser la macro dans un module, pour cela ouvrir l'éditeur vba avec alt+F11
j'ai oublié de préciser, dans la macro, c'est la colonne c qui est testée pour trouver la dernière ligne
.Cells(36000, 3).
modifiez le 3 par une colonne adaptée à votre classeur
Re,
Merci ça fonctionne !
Est-il possible de rajouter la suppression si dans la cellule "G" il y a un "0", et de ne pas avoir un bouton pour faire fonctionner le code (simplement en effaçant les chiffres ou en mettant "0" dans la cellule "G" ?
Merci de votre aide.
Bonne soirée.
Sub suppression()
With ActiveSheet
li = .Cells(36000, 3).End(xlUp).Row
For i = 5 To li
If .Cells(i, 7) = "" Or .Cells(i, 7) = "0" Then
.Cells(i, 9) = ""
End If
Next
End With
End Sub
et dans l'évènement feuille ( voir le classeur exemple)
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("G5:G1000"), Target) Is Nothing Then
Call suppression
End If
End Sub