Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
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.
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
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
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.
Bonsoir le fil, le forum
En se basant sur cette déclaration, ma vision de la chose pourrait être de passer par une procédure événementielle
VB:
Private Sub Worksheet_Change(ByVal T As Range)
If T.Column = 2 Then
If IsNumeric(T.Offset(, -1)) And Not IsEmpty(T.Offset(, -1)) Then
T.Offset(, -1) = Application.Sum(T, T.Offset(, -1))
End If
End If
End Sub
NB: A mettre dans le code de la feuille (clic-droit sur l'onglet -> Visualiser le code)
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.
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.
- 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.