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 :

Inactiver le collage par la touche entrée [XL-2010]


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
    comptable
    Inscrit en
    Octobre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : comptable
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2016
    Messages : 16
    Par défaut Inactiver le collage par la touche entrée
    Bonjour,

    J'ai réussi a forcer par VBA et modification du XML le collage en valeur sur un fichier excel.

    Mais lorsque je copie une donnée (avec un format de couleur par exemple) je vais dans une cellule et j'appuie sur la touche "entrée" (pavé num et clavier), cela colle la valeur avec format.

    quelle est la fonction VBA pour inactiver ce fonctionnement? je ne veux pas que cela colle, ou alors colle en valeur.

    Merci de votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 146
    Par défaut
    Salut,

    Si tu veux interdire totalement le "coller" après un "copier" (ou "couper"), il existe une méthode de bourrin qui consiste à vider le presse-papier à chaque changement de sélection de cellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Application.CutCopyMode = False
     
    End Sub
    Là au moins, tu seras tranquille !

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Phil'oche

    Là au moins, tu seras tranquille !
    Pas vraiment !
    Ceci ne vide absolument pas le presse-papiers et ne fait qu'interdire d'utiliser le copy (puis paste) de ce qui est sur la même feuille uniquement.

    PS je dis bien sur la même feuille car si sur feuille différente du même classeur : une feinte à 4 sous (on se place sur la cellule de destination --->> on se rend sur une autre feuille -->> on copie >> on revient sur la feuille de départ -->> et là, on peut maintenant coller à l'aise).

  4. #4
    Membre expérimenté
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 146
    Par défaut
    Tout à fait... J'avais employé le terme "vider le presse-papier" pour simplifier... Donc j'en reviens à mon idée initiale, qui était de passer par une api windows...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Public Declare Function CloseClipboard Lib "user32" () As Long
    Public Declare Function EmptyClipboard Lib "user32" () As Long
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub ViderClipboard()
       OpenClipboard 0
       EmptyClipboard
       CloseClipboard
    End Sub
    Qu'on peut appeler quand on veut, sur changement de feuille, sur activation de feuille, voire même au niveau de Workbook_SheetActivate, si on est complètement parano et qu'on a peur d'un copier/coller dans le Notepad...

  5. #5
    Membre averti
    Homme Profil pro
    comptable
    Inscrit en
    Octobre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : comptable
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2016
    Messages : 16
    Par défaut
    merci pour vos réponses (vous êtes rapides les gars )

    mais j'ai besoin qu'ils puissent coller, mais uniquement en valeur. et ca j'ai bien réussi, j'ai capté le Ctrl + v et changer en valeur, griser le bouton coller dans le ruban et changer la fonction du coller en coller valeur dans le menu contextuel.

    Mais un petit malin a fait copier + entrée et m'a du coup ecrasé mon format et tout le tintouin

    donc c'est surtout le fait qu'appuyer sur entrée apres avoir copier que je veux inactiver, car cela colle la cellule avec tout le format et tout

  6. #6
    Membre expérimenté
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 146
    Par défaut
    Si c'est bien ça et uniquement ça, c'est à dire l'utilisation de la touche "entrée" pour coller une cellule préalablement copiée, tu peux intercepter tes évènements ENTREE avec par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open()
       Application.OnKey "{ENTER}", "ToucheEntree"
       Application.OnKey "~", "ToucheEntree"
    End Sub
    et dans un module standard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Sub ToucheEntree()
    If Application.CutCopyMode > 0 Then
        ' ton code ici pour faire en sorte que seule la valeur soit copiée
    End Sub
    Je passe les détails, car comme tu écris que tu as déjà une procédure qui gère le CTRL+V, il n'y qu'à faire la même chose ici...

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

Discussions similaires

  1. Valider par la touche entrée
    Par mimi51340 dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 12/06/2008, 13h21
  2. Valider par la touche "Entrée"
    Par sango85 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 30/04/2008, 11h28
  3. Désactiver submit par la touche entrée
    Par tom42 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/02/2007, 15h16
  4. [formulaire] Modifier l'action engendrée par la touche [Entrée]
    Par FrankOVD dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 12/05/2006, 16h58
  5. valider le contenu d'un textbox par la touche entrée
    Par camilla dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/10/2005, 15h02

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