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 :

Que puis-je ajouter dans cette macro pour éviter de la modifier? [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 660
    Par défaut Que puis-je ajouter dans cette macro pour éviter de la modifier?
    Bonjour le forum

    Dans la macro ci-dessous
    Pour modifier le commentaire il faut mettre false
    Si on met True s'affiche ceci
    Nom : aaaa.JPG
Affichages : 210
Taille : 27,7 Ko

    Modifier Commentaire dans Cellules H2:H4 fusionnées
    1er Clic droit supprime 1 & affiche couleur
    2ème Clic droit affiche 1 & supprime couleur

    Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) 'macro pour click droit cellules colonne H
    Cancel = True
    If Not Application.Intersect(Target, Range("H6:H36")) Is Nothing Then
    If Target.Value = "" Then
    Target.Value = 1
    Else
    Target.Value = ""
    End If
    End If
    Cancel = True ' False pour modifier le commentaire
    End Sub

    Merci pour vos éventuels retours
    Cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Si vos cellules sont fusionnées, il faut lui indiquer la 1ère cellule de cette fusion, comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           If Target.Cells(1, 1).Value = "" Then
    Maintenant pour compléter votre code et le rendre plus sûr, je ferai ceci:

    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
    Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) 'macro pour click droit cellules colonne H
        On Error GoTo Sortie
        Application.EnableEvents = False
        Cancel = True
        If Not Application.Intersect(Target, Range("H6:H36")) Is Nothing Then
            If Target.Cells(1, 1).Value = "" Then
                Target.Cells(1, 1).Value = 1
            Else
                Target.Cells(1, 1).Value = ""
            End If
        End If
        Cancel = True ' False pour modifier le commentaire
    Sortie:
        Application.EnableEvents = True
    End Sub
    Cdlt

  3. #3
    Membre très actif
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 660
    Par défaut
    Citation Envoyé par ARTURO83 Voir le message
    Bonjour,

    Si vos cellules sont fusionnées, il faut lui indiquer la 1ère cellule de cette fusion, comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           If Target.Cells(1, 1).Value = "" Then
    Maintenant pour compléter votre code et le rendre plus sûr, je ferai ceci:

    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
    Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) 'macro pour click droit cellules colonne H
        On Error GoTo Sortie
        Application.EnableEvents = False
        Cancel = True
        If Not Application.Intersect(Target, Range("H6:H36")) Is Nothing Then
            If Target.Cells(1, 1).Value = "" Then
                Target.Cells(1, 1).Value = 1
            Else
                Target.Cells(1, 1).Value = ""
            End If
        End If
        Cancel = True ' False pour modifier le commentaire
    Sortie:
        Application.EnableEvents = True
    End Sub
    Cdlt
    Bonjour ARTURO 83
    Voici le fichier ça sera plus facile pour toi
    Merci de t’intéresser à cette macro
    Cordialement
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Je ne comprends pas, pourquoi n'avez-vous pas recopié la macro modifié? je l'ai essayé et ça marche bien, y a t-il un autre problème?
    La macro répond bien à votre demande, suite à un clic droit sur une cellule fusionnée, elle affiche 1 ou rien et change la couleur de fond d'une cellule.

    Question: Quelle est votre version d'excel? Si pas trop ancienne, pourquoi l'avoir enregistrée avec l'extension.xls?
    ici, votre fichier enregistré avec l'extension xlsm (prend en charge les macros)

    Un internaute_Que puis-je ajouter dans cette macro pour éviter de la modifier.xlsm

    Cdlt

  5. #5
    Membre très actif
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 660
    Par défaut
    Bonjour ARTURO83
    Je pense qu'on s'est pas compris ou je me suis mal exprimé
    Ce n'est pas les cellules fusionnées H2:H4 qui posent problème
    Lorsque je mets True à la fin de ma macro, dans H2:H3 (cellules fusionnées) je ne peux pas modifier les commentaires
    Il faut mettre False. Et si je met False j'ai la Pièce jointe 631628
    C'est pour éviter de passer de False à True souvent (si je veux modifier les commentaires mais ce n'est pas sans arrêt non plus) mais pour le programme ce n'est pas un souci
    Tous les commentaires ne peuvent-être modifiés[/U][/B] => Normal la macro est dans ThisWorkbook
    Oui je suis encore sous Excel 2003 comme le vieux nonagénaire que je suis

    Merci à toi
    Bien cordialement

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    L'argument Cancel avec comme valeur True sert à éviter que le menu contextuel ne s'affiche lorsque l'on fait un clic droit. C'est pour cette raison d'ailleurs que cette procédure événementielle se nomme BeforeRightClic

    On utilise ce type d'événement pour justement utiliser le clic droit pour faire une action ou lancer une procédure en évitant au retour d'avoir le menu contextuel qui s'affiche.

    Votre explication dans la discussion fil #5 est très confuse. Si vous expliquiez clairement ce que vous voulez-faire exactement, sans parler de VBA ni de True et de False, ce serait peut-être plus simple pour vous aider

    Pour en savoir plus sur les procédures événementielles, je vous conseille un peu de lecture
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. [XL-2007] Problème dans une macro pour ajouter une date
    Par INFINITY100 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/05/2015, 20h28
  2. [AC-2003] Insérer un paramètre dynamique dans une macro pour l'appel d'une fonction
    Par OphyTe dans le forum Macros Access
    Réponses: 11
    Dernier message: 10/02/2015, 15h01
  3. [XL-2010] Apparitions valeurs fantomes dans TCD (macro pour les empêcher)
    Par Alasgard dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/04/2014, 19h50
  4. Réponses: 6
    Dernier message: 20/11/2009, 13h07
  5. Réponses: 2
    Dernier message: 25/09/2009, 12h03

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