XL 2019 Mise en place d'un interverrouillage entre les cellules de 2 colonnes

chris4785478547

XLDnaute Junior
Bonjour à tous,

J'ai une colonne "dépenses" et une colonne "recettes" et je souhaite empêcher le remplissage, sur une ligne donnée, d'une dépense si une recette a été saisie et inversement, empêcher de saisir une recette si une dépense a été saisie sur la même ligne.
J'ai pensé écrire une macro qui irait protéger la cellule dépenses quand je remplis la cellule recette et inversement mais aussi qui libèrerait la protection si l'on vide la cellule.
Mais cela me parait être un peu lourdaud. Y aurait il plus simple ?
Merci à vous.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Chris, Phil,
Je pense que c'est faisable et léger avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("D:E")) Is Nothing Then
        Application.EnableEvents = False
        If Target.Column = 5 And Cells(Target.Row, "D") <> "" Then
            Cells(Target.Row, "E") = ""
        ElseIf Target.Column = 4 And Cells(Target.Row, "E") <> "" Then
            Cells(Target.Row, "D") = ""
        End If
    End If
Fin:
Application.EnableEvents = True
End Sub
Voir PJ.
 

Pièces jointes

  • Classeur11.xlsm
    13.3 KB · Affichages: 10

chris4785478547

XLDnaute Junior
Bonsoir à tous, Phil, Sylvanu, Eric,

Merci pour vos propositions, j'ai de la matière, c'est super sympa.
Je reviendrai ici vous dire ce que cela a donné.
A très vite...
De retour après essais
=>Phil
Je suis trop nul pour l'instant pour avoir pu adapter, mais j'y reviendrai

=>Sylvanu
Ca fonctionne, merci !

=>Eric
Je ne comprends pas bien , je n'arrive pas à adapter car chez moi cela fonctionne plutôt bien si on remplit la recette en premier mais dans le cas contraire, j'arrive à remplir les 2 cellules.
J'ai surement fait une connerie, je continue de chercher...
D'autant que ce qui est pas mal dans ta solution c'est que l'on peut mettre un message personnalisé du type "Vous ne pouvez pas saisir une dépense et une recette sur la même ligne"
Je joins mon fichier:

En tout cas, MERCI à tous !
 

Pièces jointes

  • Classeur11.xlsm
    9.8 KB · Affichages: 3
Dernière édition:

eriiic

XLDnaute Barbatruc
Bonjour,

je ne vois pas trop où tu aurais pu commettre une erreur, sauf si tu n'as pas appliqué sur les 2 colonnes.
Voici un exemple.
eric

Edit : je n'avais pas vu que tu avais mis un fichier.
Ta validation en C est erronée.
Si tu veux copier vers la droite B, il faut conserver les $ comme je t'avais mis (faire google sur référence absolue/relative).
 

Pièces jointes

  • Classeur1.xlsx
    47.6 KB · Affichages: 2
Dernière édition:

chris4785478547

XLDnaute Junior
Bonjour Eric,
Je déconne car je connais la différence entre références absolue et relatives !
Je suis persuadé d'avoir tout d'abord saisi exactement ce que tu me conseillais (avec références absolues sur les colonnes) mais je ne sais pas ce que j'ai bien pu magouiller ensuite.
Mille merci à toi,
Je vais pouvoir garder ta solution et afficher le message adéquat...
Bien cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 251
Messages
2 086 623
Membres
103 266
dernier inscrit
moonie