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 :

Rendre invisible une formule personnelle dans une cellule Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Avril 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2015
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Rendre invisible une formule personnelle dans une cellule Excel
    Bonjour à la communauté,

    J'ai créé plusieurs fonctions personnelles qui sont appelées dans des cellules suivant la syntaxe classique, par exemple, dans la cellule G3, "=MaFonction(XX,YY,...)".

    Or, pour éviter que d'autres utilisateurs puissent voir cette fonction, j'aimerais savoir s'il est possible d'avoir uniquement le résultat de la fonction affiché dans la cellule?

    Je sais qu'on peut empêcher de voir le code en verrouillant par mot de passe mais ceci ne correspond pas à ce que je recherche.

    Et j'aimerais trouver une astuce, si c'est possible, pour éviter de Copier / Coller spécial (Valeur uniquement).

    J'espère que j'ai été suffisamment clair et espère que l'un d'entre vous aura une réponse à ma demande.

    Bonne journée à tous

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Format de cellule --> Onglet "Protection" --> Cocher la case "Masquée" puis protéger la feuille avec ou sans MDP.

    Hervé.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Tu peux utiliser ta fonction sur l'événement change de la feuille. Ainsi tu ne verras que le résulta et pas la fonction.
    Je ne vois pas pourquoi tu veux masquer la fonction mais après tout ça te regarde!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Row = 3 Then Range ("G3")=MaFonction(XX,YY,...)
    End Sub
    Dernière modification par Invité ; 03/07/2015 à 09h53.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Avril 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2015
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Tout d'abord, merci pour votre réponse.

    Je ne maîtrise pas trop les private sub. J'ai essayé de mettre cette private sub mais ça ne fonctionne pas, je ne dois pas indiquer ce qu'il faut.

    Voici le code de ma fonction que est répétée sur toutes les cellules de la colonne N, dont je souhaite garder que la valeur sans montrer la fonction (c'est juste pour éviter que mes clients voient qu'il y a une fonction ou une macro ...).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Function Severity_Level(Id_ER As String) As Variant
    Application.Volatile True   'recalcule immédiatement
     
    Dim Ligne, Colonne As Integer
    Dim Deb_Ligne, Fin_Ligne As Integer
    Dim Severity_Level_New As Integer
     
    Dim i As Integer
     
    'Zone du tableau de l'onglet "UE_List" où se trouvent les identifiants des évènements redoutés
    Deb_Ligne = 4
    Fin_Ligne = 25
     
    Severity_Level = ""
     
    Tableau = Split(Id_ER, Chr(10)) 'Permet de mettre dans le tableau les caractères de la chaîne d'identifiants espacés du caractère spécial "Retour à la ligne <=> Ch(10)
     
        For i = 0 To UBound(Tableau) '1° Boucle sur chaque identifiant
            Id_ER = Tableau(i)        
                With ThisWorkbook.Worksheets("UE_List")  'Ici, on récupère le niveau de gravité
                    For Ligne = Deb_Ligne To Fin_Ligne
                        If .Cells(Ligne, 1).Value = Id_ER Then
                            Severity_Level_New = .Cells(Ligne, 3).Value
                        End If
                    Next Ligne
                End With
     
    End Function
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Row = 3 Then Range("N3") = Severity_Level(???)
    End Sub
    Comment faire pour que toutes les cellules masquent la fonction?

  5. #5
    Invité
    Invité(e)
    Par défaut
    explication en image!
    Images attachées Images attachées  

  6. #6
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Une autre solution :

    Tu mets tes formules dans une autre feuille (par exemple "Formules")
    et dans les autres feuille tu mets les valeurs des formules avec un simple =Formules!A1Tu peux ensuite mettre la feuille "Formule" en xlSheetVeryHidden.

    Si ton projet est verrouillé par un mot de passe, il sera très compliqué pour l'utilisateur lambda de lire tes formules.
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

Discussions similaires

  1. [XL-2013] Nom d'un onglet dans une formule à partir d'une cellule
    Par pounette dans le forum Excel
    Réponses: 3
    Dernier message: 04/12/2013, 15h06
  2. Réponses: 2
    Dernier message: 30/03/2010, 10h39
  3. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  4. Inserer une formule (Longue) dans une cellule via VBA
    Par alex830001 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/01/2009, 12h28
  5. [Formule]Problème dans une formule SI ET
    Par Hellx dans le forum Excel
    Réponses: 2
    Dernier message: 09/05/2007, 12h00

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