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 :

CODE VBA ATTACHE à la barre D'espace


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    SANS
    Inscrit en
    Juillet 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : SANS
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 69
    Par défaut CODE VBA ATTACHE à la barre D'espace
    Bonjour

    Je suis arrivée grâce à plusieurs procédures (cf ci-dessous) à limiter les modifications dans une plage de cellules non protégées :
    Cependant je voudrai également interdire l'effacement du contenu avec la " barre d'espacement ".
    Je cherche depuis plusieurs heures sans résultat.Merci de votre aide encore une fois ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Valeur As Variant
    Private Sub Worksheet_Change(ByVal Target As Range)
     Dim rng As Range
        If Not Intersect(Target, Range("A2:N57")) Is Nothing Then
            Application.EnableEvents = False
            If Target = "" Then Target = Valeur
            Application.EnableEvents = True
        End If
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Valeur = Target.Value
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target <> "" Then
      If MsgBox("Etes-vous sûr de vouloir modifier la cellule?", vbYesNo) = vbNo Then
      MsgBox "Cellule non modifiée"
      Exit Sub
      Target = InputBox("Entrez le nouveau contenu de la cellule")
      End If
      End If
    End Sub

  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
    Remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             If Target = "" Then Target = Valeur
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             If Trim(Target) = "" Then Target = Valeur
    Ca prend aussi en compte les cas de plusieurs coup de barre d'espace.

    Mais, à mon avis, tu es en train de monter une usine à gaz pour par grand chose.
    Sans y réfléchir plus que ça, j'ai une bonne demi-douzaine d'idées qui permettraient de contourner ta procédure, et accessibles à l'utilisateur moyen d'Excel (je ne parle même pas de ceux qui savent un peu trafiquer du VBA).

  3. #3
    Membre confirmé
    Femme Profil pro
    SANS
    Inscrit en
    Juillet 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : SANS
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 69
    Par défaut
    Génial ça marche ,mais comment changer mon usine à Gaz ???

  4. #4
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Pour interdire l'effacement (sans interdire l'écriture de plusieurs espaces consécutifs en les mots) :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim av, ap
      If Target.Count = 1 Then
        ap = Target.Value
        Application.EnableEvents = False
        Application.Undo
        av = Target.Value
        If Replace(ap, " ", "") = "" Then Target.Value = av Else Target.Value = ap
        Application.EnableEvents = True
      End If
    End Sub

  5. #5
    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
    comment changer mon usine à Gaz ???
    Avis personnel : discipliner les utilisateurs est généralement plus efficace que de mettre en place des systèmes complexes pour les brider.
    Mais c'est juste mon point de vue.

Discussions similaires

  1. [AC-2007] Code VBA: Enlever les espaces
    Par johndi dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/04/2013, 19h56
  2. Réponses: 2
    Dernier message: 03/12/2008, 12h12
  3. Réponses: 3
    Dernier message: 06/09/2005, 10h27
  4. Comment creer une procédure stockée à partir d'un code VBA?
    Par Alcor020980 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 19h55
  5. [VBA] Attache automatique des tables
    Par bestall666 dans le forum Access
    Réponses: 4
    Dernier message: 14/05/2005, 12h42

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