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 :

Macro dans Worksheet_SelectionChange [XL-97]


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
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Par défaut Macro dans Worksheet_SelectionChange
    Bonjour,

    Le code ci-dessous me permet de changer la date, dans une cellule nommée Doc_Date,
    Avec un format personnalisé. Mais cette macro m’empêche de pouvoir faire du copié-collé.
    Pouvez-vous s’il vous plaie m’indiquer comment je peux contourner ce problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    '----------------------
    ' Format date
    '----------------------
    Range("Doc_Date").Value = Application.Proper(Format(Date, "d mmmm yyyy"))
        If Not Intersect(Target, Range("Doc_Date")) Is Nothing Then
            Target = Doc.DateDuJour
            MsgBox prompt:="La date a été modifiée !", Buttons:=vbExclamation, Title:="ATTENTION"
        End If
    Range("Doc_Date").NumberFormat = "@"
    End Sub
    Je vous remercie de votre aide,

    Cordialement,

    Patrick

  2. #2
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    '----------------------
    ' Format date
    '----------------------
    Range("Doc_Date").Value = Application.Proper(Format(Date, "d mmmm yyyy"))
        If Not Intersect(Target, Range("Doc_Date")) Is Nothing Then
            Target = Doc.DateDuJour
            MsgBox Prompt:="La date a été modifiée !", Buttons:=vbExclamation, Title:="ATTENTION"
        End If
        
    If Range("Doc_Date").NumberFormat <> "@" Then Range("Doc_Date").NumberFormat = "@"
        
    End Sub

  3. #3
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Par défaut
    Bonjour en mettant tout simplement le code ci-dessous dans le code de la feuille en question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Range("Doc_Date").Value = (Format(Date, "d mmmm yyyy"))
     
    End Sub

    OU

    dans le code du classeur this wookbook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub workbook_open()
     
    Range("Doc_Date").Value = (Format(Date, "d mmmm yyyy"))
     
    End Sub
    mais après cela dépend ou est le but exactement

    pardon gnain à déjà répondu

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Par défaut
    Bonjour nicoxlsx, gnain,

    Je vous remercie, j'ai donc modifié ma macro comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    '----------------------
    ' Format date
    '----------------------
     
    Range("A1").Value = Application.Proper(Format(Date, "d mmmm yyyy"))
        If Not Intersect(Target, Range("A1")) Is Nothing Then
            MsgBox Prompt:="La date a été modifiée !", Buttons:=vbExclamation, Title:="ATTENTION"
        End If
    If Range("A1").NumberFormat <> "@" Then Range("A1").NumberFormat = "@"
    End Sub
    Elle fonctionne très bien et m'a permis de supprimer un module.
    Elle me permet d'avoir la date avec le mois en majuscule, chose qui est impossible avec mon Excel 97.

    Merci encore,

    Bonne soirée et bon dimanche,

    Cordialement,

    Patrick

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

Discussions similaires

  1. macro dans Excel
    Par mavean dans le forum Access
    Réponses: 5
    Dernier message: 08/04/2006, 12h21
  2. Macro dans un .h
    Par vinzzzz dans le forum C
    Réponses: 8
    Dernier message: 24/02/2006, 19h06
  3. Réponses: 9
    Dernier message: 25/01/2006, 16h35
  4. [Warning] Macro dans .lib séparé
    Par sorry60 dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 20/04/2005, 18h05
  5. Macro dans excel permettant de voir si un fichier est ouvert
    Par VirginieGE dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/08/2004, 08h51

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