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 :

Bloquer copier/coller sur une feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Avril 2017
    Messages : 32
    Points : 12
    Points
    12
    Par défaut Bloquer copier/coller sur une feuille
    Bonjour à tous,

    Je souhaite interdit les copier/coller sur un seul onglet (fichier comporte 10 onglets).
    J'ai trouvé une macro permettant d'interdire sur l'ensemble du fichier Excel mais je souhaite limiter uniquement sur 1 seul onglet.
    Pouvez vous m'aider ?

    Par avance, merci.

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Ecris cela dans le module de code de la feuille concernée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Declare Function CloseClipboard Lib "user32" () As Long
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
     
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      OpenClipboard 0
      EmptyClipboard
      CloseClipboard
    End Sub
    et le presse-papier sera vidé à chaque fois qu'une cellule de la feuille en cause sera sélectionnée --->> plus rien dans le presse-papier --->> plus rien à coller

    EDIT : ta question n'a rien à voir avec Excel, mais avec son VBA (autre section du forum).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Avril 2017
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Merci pour ton retour, c'est parfait.

    Je n'avais pas vu la section VBA ... désolé, je ferai mieux la prochaine fois (je n'ai pas trouvé pour changer de section).

    Dernier question :

    J'ai déjà une macro sur la feuille en question, mais ma très faible connaissance en VBA ne me permet pas de faire cohabiter/fusionner les 2 codes.

    Voici le code suivant déjà en place :

    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
    Option Explicit
     
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     
        If Target.Count > 1 Then Exit Sub
     
        If Not Intersect(Target, Range("Test")) Is Nothing Then
     
           With Sheets("Fiche")
                .Range("test_a") = Target.Row
                .Range("test_b") = ActiveSheet.CodeName
                .Range("test_c").Value = ""
                .Activate
           End With
     
           MsgBox "FAIT", 64
     
           Cancel = True
     
        End If
     
    End Sub
    Merci pour l'aide apportée.

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Je ne vois pas où est le problème.
    Worksheet_BeforeRightClick et Worksheet_SelectionChange sont deux procédures évènementielles distinctes.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Avril 2017
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    J'ai collé après le code déjà en place :

    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
    Option Explicit
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     
    If Target.Count > 1 Then Exit Sub
     
    If Not Intersect(Target, Range("Test")) Is Nothing Then
     
    With Sheets("Fiche")
    .Range("test_a") = Target.Row
    .Range("test_b") = ActiveSheet.CodeName
    .Range("test_c").Value = ""
    .Activate
    End With
     
    MsgBox "FAIT", 64
     
    Cancel = True
     
    End If
     
    End Sub
     
    Private Declare Function CloseClipboard Lib "user32" () As Long
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
     
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      OpenClipboard 0
      EmptyClipboard
      CloseClipboard
    End Sub
    J'ai le message d'erreur suivant : Erreur de compilation: Seuls des commentaires peuvent apparaitre après End Sub, End Functio, ou End Property

  6. #6
    Membre à l'essai
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Avril 2017
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    Bonjour à tous,

    Je me permets de remonter le sujet. Voici mon soucis, j'ai 2 macro a mettre sur une feuille mais impossible de mettre les 2 ensemble :

    Macro 1 :
    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
    Option Explicit
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     
    If Target.Count > 1 Then Exit Sub
     
    If Not Intersect(Target, Range("Test")) Is Nothing Then
     
    With Sheets("Fiche")
    .Range("test_a") = Target.Row
    .Range("test_b") = ActiveSheet.CodeName
    .Range("test_c").Value = ""
    .Activate
    End With
     
    MsgBox "FAIT", 64
     
    Cancel = True
     
    End If
     
    End Sub

    Macro 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Declare Function CloseClipboard Lib "user32" () As Long
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
     
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    OpenClipboard 0
    EmptyClipboard
    CloseClipboard
    End Sub

    J'ai le message d'erreur suivant : erreur de compilation: Seuls des commentaires peuvent apparaitre après End Sub, End Functio, ou End Property

    Pouvez vous m'aider ?

  7. #7
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    les trois déclarations de fonctions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Declare Function CloseClipboard Lib "user32" () As Long
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
    doivent impérativement être placées TOUT EN HAUT DU MODULE, avant les deux procédures évènementielles

  8. #8
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Il est peut-être temps de commencer à t'intéresser à ce que sont, dans un module de code :
    - la partie du module réservée aux déclarations
    - la partie réservée aux procédures
    C'est vraiment un minimum sine qua non
    Bon commencement d'étude.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    e
    et si on veux pas s'ennuyer avec les api

    3 solutions dans l'évènement selection_change du sheets parmi tant d'autre encore
    'empecher le copier coller en changeant de cellules
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .SetText "": .PutInClipboard: End With
    End Sub
    'OU
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       With CreateObject("htmlfile").parentwindow.clipboardData.setData("Text", ""): End With
    End Sub
    'OU
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       With CreateObject("htmlfile").parentwindow.clipboardData.clearData("Text"): End With
    End Sub
    j'ai déjà donné ces exemples
    c'est difficile de faire une recherche dans le forum voir aussi contribution ou même sur Google???
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour Patrick
    je préfère quant à moi vider directement le presse-papier de windows.
    Mais si tu ne "veux pas t'embêter avec les API", ne t'embête alors pas avec d'autres choses que ce que t'offre Excel !
    Regarde comme c'est simple -->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim toto As New DataObject
      toto.SetText Target.Value
      toto.PutInClipboard
    End Sub
    on empêche ainsi le copier/coller, tout en gardant ce qui se trouvait dans la cellule, sans avoir à accéder à la base de registre (accès pas toujours forcément autorisé), ni passer par un objet html.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    superbe jacques
    c'est absolument parfait ,je l'avais déjà vu quelque part je l'avais zapé
    attention precise tout de meme qu'il faut activer la reference

    apres serait ce pas le meme object chose que celui la ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange1(ByVal Target As Range)
        With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .SetText "": .PutInClipboard: End With
    End Sub
    effectivement la il faut avoir les droits d'accès au registre bien sur
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    apres serait ce pas le meme object chose que celui la
    Il n'est pas "exactement le même", non . Différences de comportement. *****
    La clé de registre pour s'y référer ? Quid en outre de la portabilité (avec Mac, entre autres) ?

    ***** Et à ce propos : mon code est à compléter par un chiffre entre parenthèses (devine pourquoi). C'est cela, que j'espérais comme réaction

    Ne travaillant que sous Windows, je préfère l'utilisation de EmptyClipBoard.
    Sous Mac, je choisirais l'objet DataObject

    attention precise tout de meme qu'il faut activer la reference
    Pourquoi ?
    Elle ne l'est pas, sur ma machine.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    je ne sais pas
    ca serait pas au clipboard des fois

    je sais que j'utilise les api pour des travaux image et je shunte que ce qui n'est bitmap dans le clipboard avec (2 bitmap) ou (14 metafile)
    peut être est ce cela que tu veux me dire
    sino je sais pas comme je ne utilise pas cet object en earlybinding (référence activée)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    je ne sais pas
    Ah !
    Que ferait cette ligne sur une sélection multiple ?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto.SetText Target.Value
    .value de quoi ????
    Garde-fou, donc --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto.SetText Target(1).Value
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    ah!! ca !!!

    OK

    mais tu a oublié une chose importante moi aussi d'ailleurs
    je vais revoir tout les exemples et essayer de l'ajouter
    je te laisse deviner quoi et c'est plus qu'important surtout avec ton exemple
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    tu n'a pas trouvé
    ok alors voila
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'necessite l'activation de la reference "microsoft forms 2.0 object Library"en ajoutant simplement un userform puis en le supprimant(excel2007)
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim toto As New DataObject
      toto.SetText Target(1).Formula
      toto.PutInClipboard
    End Sub
    'on empêche ainsi le copier/coller, tout en gardant ce qui se trouvait dans la cellule,
     'sans avoir à accéder à la base de registre (accès pas toujours forcément autorisé), ni passer par un objet html.
    et en plus on ne supprime pas les formules ainsi on fige pas les valeurs

    mais l'avantage de vider vraiment le clipboard avec html ou clip ...window c'est que l'item "Coller" du menu est grisé il n'y a donc pas d'action possible

    par contre attention au touche CTRL+V que l'on peut aisément bloquer bien sur
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #17
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    par contre attention au touche CTRL+V que l'on peut aisément bloquer bien sur
    Totalement inutile avec n'importe lequel des codes que j'ai montrés, par contre.

    Pour ce qui est, Patrick, de ne pas écraser les formules : une seule méthode est acceptable : les protéger.
    Se contenter d'empêcher un collage ne protège de rien. Il n'est pas utile de coller pour écrire dans une cellule, sauf si protégée. Le reste est utopique.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  18. #18
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    histoire de bien rire de nous jacques
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.CutCopyMode = False
    End Sub
    regarde l'item "coller"


    par contre quand je copie d'un document quelconque et que je reviens sur excel ca ne marche pas

    la méthode la plus efficace reste le vidage du clipboard soit par les api soit par le html a ma connaissance car l'item "coller" du menu est grisé (inactif) seulement avec ces deux méthodes
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  19. #19
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    histoire de bien rire de nous jacques
    Comme tu le soulignes toi-même : n'est efficace que pour copier/coller au sein du même classeur. Je me suis donc gardé de proposer un tel leurre.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  20. #20
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Coucou,

    Jacques le code proposé en post #10 marche très bien sur Mac

    il y a d'ailleurs sur la Faq (que j'ai utilisé pour la récupération et non le vidage) :
    https://excel.developpez.com/faq/?pa...erPressePapier
    et
    https://excel.developpez.com/faq/?pa...upPressePapier

    amitiés

    Ryu
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/02/2016, 09h20
  2. [XL-2013] Copier une table HTML et la coller sur une feuille Excel
    Par Daniel.C dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/07/2015, 15h37
  3. [XL-MAC 2011] copier/coller sur une même feuille
    Par jeanteynier dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/04/2014, 15h52
  4. Recherche et copier/coller sur une autre feuille
    Par AzelRoth dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/02/2009, 10h21

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