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

XL 2021 Comment préserver la première valeur d'une cellule uniquement si

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 !

Alamyr

XLDnaute Nouveau
Bonjour,
Je suis un utilisateur modeste d'excel de longue date mais je bute devant ce problème que je schématise :

J'ai tableau dans lequel on peut choisir les produits et noter les quantités demandées
Produit / prix unitaire / quantité commandée / valeur calculée de la ligne
Trois gestionnaires de commandes vont noter leur liste chacun leur tour alimentant une cellule contenant le "montant total de la commande"

Je souhaite récupérer et mémoriser le prix total de la commande passée par chacun d'eux

J'utilise une cellule "Gestionnaire" dans laquelle chacun introduit son initiale
J'alimente un tableau
Pierre P =valeur de la cellule "montant total" SI cellule "gestionnaire" ="p"
Robert R valeur de la cellule "montant total" si cellule "gestionnaire" ="r"
Michel M valeur de la cellule "montant total" si cellule "gestionnaire" ="m"

Le problème : Après le passage de Pierre, le tableau des produits va devoir être réinitialisé pour le passage de Robert et la valeur de Pierre va passer à "0" puisque la condition =P n'est plus remplie. On perd donc la mémoire du montant de sa commande

Après ce préambule peut être un peu long, j'en viens donc à la question :
Comment serait il possible de bloquer la valeur de la cellule du montant de Pierre
Une fonction SI qui réaliserait =SI(Gestionnaire=P;total commande;conservation de l'ancienne valeur)
Cette ancienne valeur ne serait à 0 que si Pierre n'a pas encore introduit sa commande

Merci d'avance
 
RE,
Edit Si sujet résolu c'est bien.
Nous allons commencer par supprimer le code de wDog66 (Qui fonctionne bien...)
La procédure de wDog66 est dans le module : Module1 pour y accéder :
ALT + F11 (pour passer dans l’environnement VBE).
Dans le menu Affichage cliquer sur Explorateur de projet.

Là vous pouvez voir le module Module. Faites un double clic ou bien sélectionnez-le puis cliquez sur l’icône de code (Celui de gauche en haut de la fenêtre)
Vous aurez accès au code. Vous sélectionnez tout [CTRL + A] puis vous faites [Suppr]
Vous pouvez aussi supprimer directement le module celui-ci ne servira plus

Ensuite retournez sur le code de la feuille (Sous Excel clic droit sur l'onglet de la feuille, puis, Visualiser le code.)
Remplacer le code existant par celui ci-dessous :
VB:
Option Explicit

'@Description "Code pour le bouton effacer données de la feuille."
Private Sub CommandButton1_Click()
    Dim rangeToClear As Excel.Range
    On Error Resume Next
    Set rangeToClear = Me.Range("vr_Répartitions")
    On Error GoTo 0
    If Not rangeToClear Is Nothing Then
        rangeToClear.ClearContents
    Else
        MsgBox "Oupss... Impossible de trouver le champ nommé : ""vr_Répartitions"""
    End If
End Sub

'@Description "
Private Sub SauvDonnées(ByVal LigSel As Long)
    Dim PlgD As Range
    With Me
        ' On sauvegarde les valeurs
        .Range("D" & LigSel).Value = .Range("E13")
        .Range("F" & LigSel).Value = .Range("F14")
        .Range("G" & LigSel).Value = .Range("F23")
        .Range("H" & LigSel).Value = .Range("F30")
    End With
    ' Petit message
    MsgBox "Valeurs sauvegardées !"
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Vérifier si on change la sélection dans les cellules A4 à A7
    If Not Intersect(Me.Range("A4:A7"), Target) Is Nothing Then
        ' Tu as sélectionné une cellule verte = on lance l'inscrition des résultats
        SauvDonnées (Target.Row)
    End If
End Sub

Concernant la remise à zéro du formulaire nous allons créer un champ Nommé.
Pour créer le champ nommé sélectionnez les cellules qui devront être effacées; Puis donnez leurs un nom comme sur l'image (vr_Répartitions)

Il ne vous reste plus qu'a ajouter un bouton Onglet Développeur/Groupe Contrôles/Insérer/Contrôle activeX/Bouton.
Je n'ai pas renommer le bouton celui-ci se nomme 'CommandButton1 par défaut.
 

Pièces jointes

Merci Valtrase
Je venais juste de signaler que j'étais parvenu à contourner le problème en repartant d'une nouvelle feuille vierge de macros. Tout fonctionne désormais.
Néanmoins, je vais suivre la première partie de vos conseils pour comprendre comment gérer ces macros qui apparaissent pour les unes (la mienne) et pas les autres
Encore merci à tous pour votre aide
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…