XL 2010 Effacer le contenu d'une cellule, si une autre cellule à une valeur de 0 ou est vide.

DAVID-44-

XLDnaute Occasionnel
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.
 

GALOUGALOU

XLDnaute Accro
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
cordialement
galougalou
 

GALOUGALOU

XLDnaute Accro
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

voir le classeur exemple
cdt
 

Pièces jointes

  • macro suppression.xlsm
    17.3 KB · Affichages: 14
Dernière édition:

DAVID-44-

XLDnaute Occasionnel
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.
 

GALOUGALOU

XLDnaute Accro
re
VB:
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

et bien sur adaptez g5:g1000
cdt
 

Pièces jointes

  • macro suppression.xlsm
    18.9 KB · Affichages: 10
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 708
Messages
2 112 097
Membres
111 416
dernier inscrit
philipperoy83