XL 2019 Est-il possible d'entrer une valeur dans une cellule où il y a déjà une formule sans l'effacer?

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 !

LittleRedBeast7

XLDnaute Nouveau
Bonjour!



Je voulais savoir s'il était possible d'entrer une valeur dans une cellule où il y a déjà une formule sans l'effacer?

Contexte:

J'ai 2 colonnes

- Si je met un chiffre dans la cellule de la première colonne, un ''X'' apparait dans la 2ème
- Si je met un chiffre dans la cellule de la deuxième colonne, un ''X'' apparait dans la 1ère

Problèmes:
1. Référence circulaire?
2. Si je met une valeur à la place de la formule, la formule s'enlève

Document:
 

Pièces jointes

Solution
Bonjour,
Ce que tu demandes est possible uniquement en VBA sur l'événement Change de la feuille !

Pour le coup il n'y aura plus de formules mais un code VB qui fera le travail que tu veux accomplir !

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If NoMaj Then Exit Sub
If Target.Row > 20 Then
    If Target.Column = 9 Then
      If IsNumeric(CStr(Target)) Then Target.Offset(0, 1) = "X" Else Target.Offset(0, 1) = ""
    End If
     If Target.Column = 10 Then
      If IsNumeric(CStr(Target)) Then Target.Offset(0, -1) = "X" Else Target.Offset(0, -1) = ""
    End If
End If
Application.EnableEvents = True
End Sub
Bonjour,
Ce que tu demandes est possible uniquement en VBA sur l'événement Change de la feuille !

Pour le coup il n'y aura plus de formules mais un code VB qui fera le travail que tu veux accomplir !

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If NoMaj Then Exit Sub
If Target.Row > 20 Then
    If Target.Column = 9 Then
      If IsNumeric(CStr(Target)) Then Target.Offset(0, 1) = "X" Else Target.Offset(0, 1) = ""
    End If
     If Target.Column = 10 Then
      If IsNumeric(CStr(Target)) Then Target.Offset(0, -1) = "X" Else Target.Offset(0, -1) = ""
    End If
End If
Application.EnableEvents = True
End Sub
 
Dernière édition:
Bonjour,
Ce que tu demandes est possible uniquement en VBA sur l'événement Change de la feuille !

Pour le coup il n'y aura plus de formules mais un code VB qui fera le travail que tu veux accomplir !

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If NoMaj Then Exit Sub
If Target.Row > 20 Then
    If Target.Column = 9 Then
      If IsNumeric(CStr(Target)) Then Target.Offset(0, 1) = "X" Else Target.Offset(0, 1) = ""
    End If
     If Target.Column = 10 Then
      If IsNumeric(CStr(Target)) Then Target.Offset(0, -1) = "X" Else Target.Offset(0, -1) = ""
    End If
End If
Application.EnableEvents = True
End Sub
Woah, merci beaucoup! Vous avez repondu 12 minutes apres ma question, insane.
 
- 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
1
Affichages
212
Retour