Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

effacer si 0 ou vide

  • Initiateur de la discussion Initiateur de la discussion philmar
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

philmar

XLDnaute Occasionnel
Bonjour,

après avoir essayé des macros assez compliquées qui ne marchent pas car mon tableau de bord est partagé, je cherche un moyen pour que des cellules soient effacées automatiquement dans un tableau si de B6 à B111 la cellule est égale à 0 ou vide (car on change de patient ou plus de patient). Cela pour éviter qu'un nouveau patient "hérite" des données de l'ancien. Les cellules à effacer sur la ligne en face du nom devenu ou égal à 0 ou vide sont C à J, L, N, P à AB....
Merci pour votre aide,
Cordialement

Philippe
 

Pièces jointes

Re : effacer si 0 ou vide

Rebonjour Jean-Pierre, si je pense que les macros fonctionnent, certaines fonctionnent, il ne faut pas qu'elles agissent sur la mise en forme, mais une macro qui efface ou copie des données, ça marche.
Merci
 
Re : effacer si 0 ou vide

Bonjour à toutes et à tous,
j'ai remis ci-joint le tableau conforme au réel, mais toujours pas de solution et les essais en vba ne fonctionnent pas :-( Si quelqu'un pouvait regarder mon code..
Bon week-end
Philippe

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("B") = "" Then Range("C😀").ClearContents
End Sub
 

Pièces jointes

Re : effacer si 0 ou vide

Bonjour Tous,

essaie le
Code:
Private Sub Worksheet_Calculate()
  Dim Cel As Range
  Application.EnableEvents = False   'utile ou pas suivant le contexte 
  For Each Cel In Range("B6:B111")
     If Cel.HasFormula = True Then Cel = Empty
  Next
  Application.EnableEvents = True  'voir ci-dessus
End Sub
 
Re : effacer si 0 ou vide

Bonjour à tous,

Peux-tu essayer avec ce code :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Cel As Range
  Application.EnableEvents = False
  For X = 6 To 111
  If Range("B" & X) = "" Then Range("C" & X & ":AD" & X) = ""
  Next
  Application.EnableEvents = True
End Sub

A adapter à ton _Calculate

A+
 

Pièces jointes

Re : effacer si 0 ou vide

Bonjour, et merci Lili et GCJL.
Lili, ça ne fonctionne pas sur mon fichier..
GCJL, ça fonctionne, sauf que dans la colonne B6 à B111, il y a une liaison avec une autre feuille, donc quand dans l'autre feuille la cellule est vide, cela devient "0" dans la cellule liée (B6à B111), il faut donc que si il y a 0 dans la cellule liée, cela efface aussi. D'autre part comme indiqué plus haut je voudrais que cela efface uniquement les colonne C à J, L, N, P à AB .
Merci encore
Bien cordialement
 
Re : effacer si 0 ou vide

Re,

peut-être avec le
Code:
Private Sub Worksheet_Calculate()
  Dim Cel As Range
  Application.EnableEvents = False
  For Each Cel In Range("B6:B111")
     If Cel.HasFormula = True Then [B]Range("C" & Cel.Row & ":AD" & Cel.Row) = ""[/B]
  Next
  Application.EnableEvents = True
End Sub
 
Re : effacer si 0 ou vide

Merci Lii, en fait ton code considère, il semble, que si il y a une formule dans Range("B6:B111") cela efface la ligne, alors que je voudrais que ce soit que si le résultat de la formule est =0 (car pas nom dans la cellule source liée).
D'autre part Range("C" & Cel.Row & ":AD" & Cel.Row) veut dire j'efface la ligne de colonne C à AD, et je voudrais que seules les colonnes C à J, L, N, P à AB soit effacées..en tout cas j'apprends beaucoup merci pour ça aussi!
 
Re : effacer si 0 ou vide

Bonsoir,
Bien que je ne vois pas de formules dans la colonne B de ton fichier joint, teste le code ci-dessous qui efface les cellules spécifiées, si la formule en colonne B renvoie 0
Code:
Sub efface()
With ActiveSheet
    For i = 6 To 111
     If .Range("B" & i) = 0 Then
     .Range("" & "C" & i & ":J" & i & ", L" & i & ", N" & i & ", P" & i & ":AB" & i & "").ClearContents
     End If
    Next
End With
End Sub
A+
kjin
 
Re : effacer si 0 ou vide

Bonsoir, et merci pour vos réponses, la macro de Kjin fonctionne, mais je voudrais que cette fonction d'effacer si 0 soit toujours active, j'ai bidouillé ce code mais ça fonctionne pas, je débute...Merci
Private Sub Worksheet_Calculate()
Dim Cel As Range
Application.EnableEvents = False 'utile ou pas suivant le contexte
With ActiveSheet
For i = 6 To 111
If .Range("B" & i) = 0 Then
.Range("" & "C" & i & ":J" & i & ", L" & i & ", N" & i & ", P" & i & ":AB" & i & "").ClearContents
Next
Application.EnableEvents = True
End With
End Sub
 
Re : effacer si 0 ou vide

Bonjour à tous,

Il te manque un End If entre .Range................... et Next

Code:
Private Sub Worksheet_Calculate()
'Dim Cel As Range
Application.EnableEvents = False 'utile ou pas suivant le contexte
With ActiveSheet
For i = 6 To 111
If .Range("B" & i) = 0 Then
.Range("" & "C" & i & ":J" & i & ", L" & i & ", N" & i & ", P" & i & ":AB" & i & "").ClearContents
End If
Next
End With
Application.EnableEvents = True

End Sub

A+
 
Dernière édition:
Re : effacer si 0 ou vide

Bonsoir à toutes, ça fonctionne!! merci beaucoup, est ce que pour finir qqun pourrait me conseiller un tutorial efficace, un livre pas trop indigeste, car j'ai vraiment envie de progresser!
Bonne soirée
Philippe
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
1 K
Réponses
0
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…