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

Effacement auto de cellule

  • Initiateur de la discussion Initiateur de la discussion fleet21
  • 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 !

F

fleet21

Guest
bonjour,

je joins la macro suivante. Je souhaite effacer la case Ax si Bx est vide excepté pour B1 la formule ne fonctionne pas si quelqu'un peut me débloquer merci. Pour info le module 1 ne sert pas.
 

Pièces jointes

Bonsoir fleet, le Forum

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Columns("C:C")) Is Nothing Then
        If Target.Offset(0, -1) = vbNullString Then Target.Offset(0, -2).ClearContents
    End If
End Sub

Utilise TAB du clavier pour te déplacer de A à C.
 
Dernière édition:
Bonsoir le fil, le forum


Pour le fun et parce que l'été arrive (... donc l'ère des régimes revient 😉)
VB:
Private Sub Worksheet_SelectionChange(ByVal T As Range)
If Not Intersect(T, Columns("C:C")) Is Nothing Then
T(1, -1) = Switch(T(1, 0) = "", "", T(1, 0) <> "", T(1, -1))
End If
End Sub
 
Bonjour à tous,

je déterre le sujet car après maints essais je n'ai pas le résultat escompté. A savoir que la case colonne A reste ou devienne vide si la case correspondante en colonne B est vide.

Merci de votre aide
 
Re

@fleet21
Comme déjà écrit dans le message#7*
Il ne faut pas les mettre dans un modulemais dans le code de la feuille.

Donc sur l'onglet d'une feuille, faire clic-droit puis choisir Visualiser le code
C'est la qu'il faut copier le code.

PS:* Merci d'avoir une lecture attentive des réponses données 😉
Je t'avais déjà expliqué la chose, le 3 avril 2018 dans ton autre fil...
 
Dernière édition:
Bon_jour

Dans le sens si Bx="" alors Ax="" (effacement d'une plage en colonne B)

VB:
 Private Sub Worksheet_Change(ByVal R As Range)
  If Intersect(R, Range([B2], [B65000].End(xlUp))) Is Nothing Then Exit Sub
  Application.ScreenUpdating = 0
  For Each R In R 'boucle pour une sélection multiple
   If R = "" Then R(1, 0) = ""
  Next
End Sub
ou
VB:
 Private Sub Worksheet_Change(ByVal R As Range)
  If Intersect(R, Range([B2], [B65000].End(xlUp))) Is Nothing Then Exit Sub
  Application.ScreenUpdating = 0
  [A:B].AutoFilter 2, "": [A:A].SpecialCells(12) = "": [A:B].AutoFilter
End Sub

ou, avec un autre évènement (sélection d'une plage en colonne C)

VB:
 Private Sub Worksheet_SelectionChange(ByVal R As Range)
  If Not Intersect(R, [C:C]) Is Nothing Then
  Application.ScreenUpdating = 0
  For Each C In R
    If C(1, 0) = "" Then C(1, -1) = ""
  Next
  End If
End Sub
ou
VB:
 Private Sub Worksheet_SelectionChange(ByVal R As Range)
  If Not Intersect(R, [C:C]) Is Nothing Then
    Application.ScreenUpdating = 0
   [A:B].AutoFilter 2, "":   [A:A].SpecialCells(12) = "" [A:B].AutoFilter
  End If
End Sub
 
Bonjour à tous,
Désolé Si... mais je ne pense pas que tu aie compris ce que je voulais faire : que la case colonne A devienne vide si la case correspondante en colonne B est vide. Par exemple si B5 est vide et A5 remplie il faut effacer A5.
 
Bonjour à tous,

je reviens sur le sujet car je n'ai toujours pas de solution au problème malgré vos aides précieuses que je remercie. Voici donc le fichier que j'utilise si quelqu'un peut m'aider.

Merci
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
347
Réponses
4
Affichages
440
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…