XL 2016 VBA effacer automatiquement cellule

Yücel

XLDnaute Junior
Bonjour,

Est-il possible de faire en sorte que si dans mon tableau dans la colonne débit nous avons déjà un montant de saisie et que nous voulons saisir un montant sur la colonne crédit, et bien le montant qui était saisie dans la colonne débit s’efface.

Et vice-versa, si nous avons déjà un montant de saisie dans la colonne crédit et que nous voulons saisir un montant sur la colonne débit, et bien le montant qui était saisie dans la colonne crédit s’efface.

Faire ceci pour chaque des lignes de mon tableau car il ne peut pas y avoir sur une même ligne de saisie à la fois un montant au débit et un montant au crédit.

Merci beaucoup pour votre précieuse aide !
 

Pièces jointes

  • Compte.xlsm
    102.2 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Yücel,
Un essai en PJ avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [L:L]) Is Nothing Then
         Application.ScreenUpdating = False
         If LCase(Target) = "x" Then
            Cells(Target.Row, "M") = ""
         End If
    End If
    If Not Intersect(Target, [M:M]) Is Nothing Then
         Application.ScreenUpdating = False
         If LCase(Target) = "x" Then
            Cells(Target.Row, "L") = ""
         End If
    End If
Fin:
Application.ScreenUpdating = True
End Sub
Un "x" en L ou M efface la cellule d'à coté, à droite ou à gauche suivant le cas, en automatique.
 

Pièces jointes

  • Compte (2).xlsm
    117.2 KB · Affichages: 1

Yücel

XLDnaute Junior
Bonjour Sylvanu !

Un grand plaisir de vous revoir 😀😀 vous m'aviez déjà beaucoup aidé dans le passé !

C'est tout à fait ça mais à une condition près c'est qu'au lieu d'avoir des croix ce sont des montants qui doivent être supérieur à 0

Un grand merci ;)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Pourquoi donc avoir mis des "x" ? On y gagne toujours à avoir des fichiers test vraiment représentatif.:)
En PJ un essai avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [L:L]) Is Nothing Then
         Application.ScreenUpdating = False
         If Val(Target) <> 0 Then
            Cells(Target.Row, "M") = ""
         End If
    End If
    If Not Intersect(Target, [M:M]) Is Nothing Then
         Application.ScreenUpdating = False
         If Val(Target) <> 0 Then
            Cells(Target.Row, "L") = ""
         End If
    End If
Fin:
Application.ScreenUpdating = True
End Sub
Ca ne change pas beaucoup.
 

Pièces jointes

  • Compte (3).xlsm
    117.2 KB · Affichages: 1

Statistiques des forums

Discussions
314 626
Messages
2 111 294
Membres
111 093
dernier inscrit
Yvounet