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 :

Interdire saisie sur zone de texte [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 26
    Points
    26
    Par défaut Interdire saisie sur zone de texte
    Bonjour,

    Malgré mes recherches je n'ai pas trouvé de réponse, alors je post en denier recours ici :

    Je crée une macro vba avec excel 2007 qui me permet de créer une zone de texte sur une feuille, voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveSheet.Shapes(1).TextFrame.Characters.Text = nom_graphique
    Je souhaiterai que l'utilisateur ne puisse pas écrire dedans pour des raison de mise à jour dans une base de donnée.

    Est-ce possible ?
    Si oui pouvez-vous me donner une piste ou même la syntaxe et si non comment je peux contourner le problème? vous avez une idée ?

    Merci d'avance et merci pour ce forum

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Tu peux utiliser un Label activeX
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim shp As OLEObject
    Dim Nom_Graphique As String
     
    Nom_Graphique = "ici mon test"
     
    Set shp = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Label.1", Left:=100, Top:=250, Width:=100, Height:=20)
    shp.Object.Caption = Nom_Graphique
    Set shp = Nothing
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 26
    Points
    26
    Par défaut
    merci mercatog,

    C'est quoi ClassType:="Forms.Label.1" je comprend pas, si tu as le temps de m'expliquer ?

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    comme dit plus haut un Label (contrôle Étiquette ActiveX)
    manuellement: Développeur> Insérer>Contrôles ActiveX (Etiquette)
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 26
    Points
    26
    Par défaut
    A ok c'est bien ça, je ne connaissais pas, je débute en vba.
    Merci pour l'information et ta réponse aussi je vais l'appliquer de suite

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 26
    Points
    26
    Par défaut
    Par contre je ne peux pas les utiliser sur ma feuille, c'est un graphique, il n'y a pas réellement de feuille excel derrière tu vois ce que je veux dire ?
    Quand je veux en ajouter un même manuellement c'est grisé ...

  7. #7
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Protège ta feuille graphique
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim shp As Shape
    Dim Nom_Graphique As String
     
    Nom_Graphique = "ici le test"
    Sheets("Graph1").Protect DrawingObjects:=True, Contents:=False
    Set shp = Sheets("Graph1").Shapes.AddTextbox(1, 50, 10, 100, 50)
    shp.TextFrame.Characters.Text = Nom_Graphique
    Set shp = Nothing
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 26
    Points
    26
    Par défaut
    re,

    J'ai une "incompatibilité de type" sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set shp = ActiveSheet.Shapes.AddTextbox(1, 50, 10, 100, 50)

  9. #9
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    tu as bien déclaré la variable comme ceci
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 26
    Points
    26
    Par défaut
    T trop balèse
    Non j'ai fais le boulet j'ai laissé OLEObject.
    Du coup ... ça marche, je vais voir pour la mise en forme et tout.
    Merci du coup de main

    Du coup je me confronte à un autre problème, tout les champs de saisie sont bloqué je peux pas en ajouter un.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 26
    Points
    26
    Par défaut
    C'est bon j'ai trouvé pour au moins afficher les étiquette des axes après je préfère verrouiller que me taper une mise à jour de la BDD plus tard donc on dira que c'est résolue vu que je n'ai plus de temps pour travailler dessus je dois le mettre en place demain dans l'usine.
    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Saisie impossible sur zone de texte
    Par Basicnav dans le forum Access
    Réponses: 3
    Dernier message: 19/02/2012, 19h24
  2. RechDom sur Zone de Texte
    Par Elfinne dans le forum IHM
    Réponses: 3
    Dernier message: 05/06/2007, 12h28
  3. Masque de saisie pour zone de text
    Par achos dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/02/2007, 10h34
  4. cliques sur zone de text avec masque de saisie
    Par branqueira dans le forum Access
    Réponses: 2
    Dernier message: 19/12/2006, 20h15
  5. Changement souris sur zone de texte
    Par amallely dans le forum IHM
    Réponses: 4
    Dernier message: 09/09/2005, 12h30

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