IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Priorité d'une donnée saisie par rapport à une valeur définie


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Dessinateur
    Inscrit en
    Février 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dessinateur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2020
    Messages : 16
    Par défaut Priorité d'une donnée saisie par rapport à une valeur définie
    Bonjour,

    je me retrouve face à un petit problème, et j'aurais besoin de votre aide éclairée

    J'ai définie que les valeurs de base de ma plage de saisie ("D13 : D300") étaient identique au résultat d'une autre plage ("R13:R300") qui contient une formule de calcul :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("liste").Range("D13:D300").Value = Sheets("liste").Range("R13:R300").Value
    Mon problème est que lorsque je viens saisir une autre donnée dans la cellule "D13" par exemple, cette dernière n'est pas prise en compte.
    La priorité reste sur les valeurs définies au début...

    Auriez-vous une piste ?

    Merci d'avance,

    DD

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Le problème est qu'il est quasiment impossible de savoir si une données de la colonne D provient d'une saisie manuelle ou d'un précédent usage de la macro, surtout si, depuis le dernier usage, les valeurs de la colonne R ont été modifiées.

    Y a-t-il une raison pour laquelle tu ne mets pas une simple formule en colonne D ?

  3. #3
    Membre averti
    Homme Profil pro
    Dessinateur
    Inscrit en
    Février 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dessinateur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2020
    Messages : 16
    Par défaut
    merci ppur votre message.

    pour vous expliquer un peu plus, la formule de la colonne R permet, pour chaque ligne, de verifier la presence de mot clés dans la colonne B, et renvoie la valeur "O" si vrai et "N" si faux.

    la colonne D affiche donc la valeur de la formule en miroir...

    j'ai mis la formule dans une zone qui sera cachee et non modifiable pour eviter l'effacement de cette derniere...
    Et c'est surtout la seule façon que j'avais pour le faire avec mes faibles connaissances en vba...

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Si tu ne veux pas que la formule en colonne R soit modifiée, tu pourrais mettre en D13 la simple formule =R13 et copier D13 sur D13:D300.
    Ainsi, tu pourrais avoir ton "effet miroir" tout en saisissant les valeur à la main si besoin.

  5. #5
    Membre averti
    Homme Profil pro
    Dessinateur
    Inscrit en
    Février 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dessinateur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2020
    Messages : 16
    Par défaut
    oui j'avais essayé. le probleme est Ue si une personne saisie une donnée, elle supprime le =R13.
    et si elle c'est trompé, le lien ne se fera plus car le =R13 sera supprimé.

    Est ce qu'il est serait possible avec un code vba de remplacer la formule en R13, et de lui dire D13 = resultat resultat de la formul sauf si valeur saisie manuellement en D13 ?

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Frv100 Voir le message
    oui j'avais essayé. le probleme est Ue si une personne saisie une donnée, elle supprime le =R13.
    et si elle c'est trompé, le lien ne se fera plus car le =R13 sera supprimé.
    Il sera très simple de rétablir ce lien, soit en la tapant, soit en copiant une autre cellule où elle se trouve.
    Au pire, tu peux demander à ta macro de remettre cette formule dans les cellules vides.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target as Range) 
        If Columns(Target) = 4 And Target.Text = "" Then Target.Formula = "=R" & Target.Row
    End Sub
    Ce code remet la formule dans une cellule si elle est vidée.
    Donc, "la personne qui se trompe" n'a qu'à appuyer sur Suppr pour que la formule se remette en place.

    Est ce qu'il est serait possible avec un code vba de remplacer la formule en R13, et de lui dire D13 = resultat resultat de la formul sauf si valeur saisie manuellement en D13 ?
    Ce serait possible mais sans intérêt pour deux raisons.
    D'abord, ça serait une macro "one shoot" (qui ne fonctionnerait qu'une fois) puisque la fois suivante, il n'y aurait plus aucune formule.
    Ensuite, il est possible de faire ça à la main en 5 secondes : Sélection de la colonne > Ctrl+C > Clic droit > Copier Valeur.

    Ecrire une macro utilisable une seule fois pour replacer un processus de 5 secondes, ça n'est pas très rentable.
    Je pense que le petit code ci-dessus sera plus efficace.

Discussions similaires

  1. FormulaR1C1 Problème variable par rapport à la valeur d'une cellule
    Par JeCPasLa dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/07/2016, 09h02
  2. Réponses: 2
    Dernier message: 13/09/2014, 15h57
  3. [XL-2010] Rechercher et récupérer le nom d'un fichier par rapport à la valeur d'une cellule
    Par froggy39 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/07/2014, 11h15
  4. [XL-2007] Liaison entre classeurs par rapport à la valeur d'une cellule
    Par XceSs dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2013, 14h30
  5. Réponses: 5
    Dernier message: 10/12/2007, 15h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo