Afficher la date dans une cellule

Résolu
Bonjour a tous, forum bonjour,

Configuration: Windows 10/ Edge / Excel 2007


Je souhaiterai svp afficher la date sur un clic droit dans la cellule E34.

Le code ci-dessous fonctionne MAIS je voudrais mettre un format autre que celui qui s'affiche par défaut comme "11/02/2020 10:55" je souhaiterai plutôt (11 Févr 2020) et uniquement la date du jour.

Mais la date afficher ne doit pas changer automatiquement tous les jours ou a chaque fois que j'ouvre le fichier.

Mais uniquement changer lorsque je fait un clic droit sur E34.

1) De plus le fait de supprimer
Cancel = True
me provoque

- Soit la date s'affiche sur toute la colonne E
- Soit je n'ai plus le menu du clic-droit, bien embêtant pour effacer quelque chose.

Merci a vous pour votre aide.

Bonne journée a tous.

Cdlt Ray

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

If Target.Column = 5 Then Target.Value = Now

'*** Cancel = True

End Sub

7 réponses

  1. Contributeur
    bonjour, as-tu essayé d'ajouter dans le if un test de la ligne?
    If Target.Column = 5 and target.row=34 Then Target.Value = Now

    tu n'as pas expliqué si tu voulais avoir le menu clic-droit aussi sur E34.
    1. Salut yg_be,

      Merci pour ta réponse, c'est sympa.

      Après quelques essais avec ton code et le mien, je ne pense pas que j'aurai besoin du menu.

      La cellule E34 me sert uniquement a afficher la date dans le format souhaiter (11 Févr 2020)

      sur un clic droit la date s'affiche en E34.

      Demain ou un autre jour je clic droit a nouveau dans la cellule et la date actualiser s'affiche jusqu'au prochain clic droit.

      Merci a toi et vu l'heure bonne app, a plus tard.

      Cdlt Ray
      1. Contributeur
        peut-être alors ainsi:
        If Target.Column = 5 and target.row=34 Then 
           Target.Value = Now
           Cancel = True
        end if
    2. Re yg_be,

      Merci pour ton code ca fonctionne bien.

      Pour le format "Date" je n'ai trouver que ce format 11 février 2020 dans le menu format de cellule.

      j'aurai bien voulu les noms des mois en abrégés Janv, Févr, Mar,
      la ca rentre dans la cellule E34 Mais dès que l'on va passer dans les mois longs l'affichage va déborder de la cellule et je ne peux pas agrandir cette cellule ni diminuer la police.

      Merci pour ton aide.

      Cdlt Ray
      1. Modérateur
        Bonjour,

        Remplacer Now (ou Date) par :
        Format(Now, "dd mmm yyyy")

        ou
        Format(Date, "dd mmm yyyy")
      2. Contributeur
        tu peux choisir l'affichage en mois court comme format de la cellule.
      3. @yg_beMerci a vous pour vos réponses

        Ca fonctionne dans un petit programme juste fait pour essai.
        J'ai voulu intégrer a mon fichier de compta, ca fonctionne toujours

        >>> Sauf pour la date car je rencontre un soucis de DOUBLON voir svp le code ci-dessous.

        Du coup j'ai mis en REM le double clic pour la date en attendant une solution si il y a.

        Justement est t'il possible pour afficher la date de cliquer dans la cellule E34 a la place du double clic ???
        Si OUI quel serai le code a adapter pour cela.

        Merci a vous pour votre aide, bonne fin d'après midi.

        Cdlt Ray

        Dans mon onglet nommer "Compte" j'ai déjà les codes ci dessous


        'Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) '****** Doublon pour compta
        'Public Sub Worksheet_Calculate()

        'Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        'Private Sub Worksheet_Change(ByVal Target As Range)
        'Private Sub Worksheet_SelectionChange(ByVal Target As Range)

        'Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) '****** Doublon pour clic date
      4. Contributeur
        @dudulerayle clic droit est devenu un double clic?
        peux-tu essayer d'être plus clair et plus précis?
        merci aussi d'utiliser "basic" dans les balises de code quand tu partages du VBA.
    3. Re

      Pour le code je sais très bien mais je sais pas pourquoi sur CCM je n'arrive pas toujours a recopier les codes ni mème que pour les balises.

      j'ai Windows 10 a jour et Edge aussi mais j'ai toujours Internet explorer 11 a jour portant il y a peut ètre des conflis

      Bon alors Non le clic droit n'ai devenu double clic

      Mais dans mon code de compta j'avais déjà le clic droit
      puis j'ai rajouter le code pour faire afficher la date dans la cellule E34 et du coup je me suis
      retrouver avec deux lignes de codes identiques

      alors j'ai mis en REM provisoirement le code pour la date en attendant si solution il y aurai .

      Voila merci

      Ray
      1. Contributeur
        je n'ai pas compris ta question "est t'il possible pour afficher la date de cliquer dans la cellule E34 a la place du double clic ?" pourquoi "à la place du double clic"?
        pour les balises, cela fonctionne bien chez moi avec Edge. prends le temps de lire et de comprendre les explications, merci!
    4. Re

      je prends le temps t'inquiète mais c'est pas toujours facile d'expliquer se que l'on souhaite.

      Alors donc erreur de ma part désolé, c'est le clic droit. je me retrouve avec deux lignes identiques donc le plus simple ca serai soit j'abandonne l'affichage de la date.
      de toutes façons il faut supprimer une ligne.
      Alors d'où ma question peut'on sur un simple clic sur la cellule E34 afficher le date si oui ca résoudrai le problème.

      Merci a toi

      PS: j'ai bien mis les balises juste pour une ligne de code, j'espère que se sera bon.

      Ray


      Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
      1. Contributeur
        tu n'as pas choisi "basic" pour les balises:
        Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

        pour que nous puissions t'aider, je suggère que tu partages ton code complet, et pas des morceaux avec lesquels nous ne pouvons rien faire.
    5. Re
      voila le code de mon onglet "Compte"
      je ne sais pas si ca va t'arranger

      Cdlt Ray

      Option Explicit
      '*** CLIC DROIT CHANGE LA COULEUR DES CELLULES DU TABLEAU EN VERT OU EN GRIS PLAGE E2:P15
      Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
        If Target.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("E2:P15")) Is Nothing Then
           Cancel = True                                                'Pour garder le focus sur la cellule activ?e
      
            With Target.Interior
                .ColorIndex = IIf(.ColorIndex = 16, 4, 16)              'Couleur gris(16), vert clair(4)fond cellule
            End With
                 Cells(R, 17).Interior.ColorIndex = 15                  'Place ligne REPERE en gris colonne (R)
        End If
          Calculate                                                     'Pour compter les totaux des cellules mise en gris
      End Sub
      
      '*** RECOPIE LA VALEUR DE LA PLAGE LIGNE(E20:P20) MOIS PAR MOIS COLONNE 17(Q) PLAGE Q2:Q26
      Public Sub Worksheet_Calculate()
          Application.EnableEvents = False
          C = Month(Now) + 4
          R = [Z1].Value: If R < 2 Then R = 1
          Cells(R, 17).Font.ColorIndex = 10       'Vert fonc?
          Cells(R, 17).Interior.ColorIndex = 15
      
          With Cells(R, 17).Interior
                           .ColorIndex = 15       'Gris affiche barre rep?re Gris clair
              If Cells(20, C).Text <> Cells(R, 17).Text Then
                     R = R + 1: If R > 26 Then R = 2
                     [Z1].Value = R
                     Cells(R, 17).Value = Cells(20, C).Value
                    .ColorIndex = xlNone
              End If
          End With
               Cells(R, 17).Font.ColorIndex = 5    'Bleu
               
      '*** Test si "RETARD" o? "SOLDE"
      Select Case Range("O35").Value
          Case Is < 0
              With Range("P35")
                  .Value = "RETARD"
                  .Font.ColorIndex = 3    'Rouge
              End With
          Case Is > 0
              With Range("P35")
                  .Value = "SOLDE"
                  .Font.ColorIndex = 4    'Vert
              End With
          Case Is = 0
              With Range("P35")
                  .Value = ""
                  .Font.ColorIndex = xlNone
              End With
      End Select
             Application.EnableEvents = True
      End Sub
      
      '*** BOUTON POUR EFFACER LA COLONNE(Q)
      Public Sub EffaceCellule()
        With Ws
             If MsgBox("Effacer les donn?es de la colonne Q ", vbYesNo, "Demande de confirmation") = vbYes Then
                 [Q2:Q26].ClearContents
                 [Q2:Q26].Interior.ColorIndex = xlNone
                          Cells(R, 17).Interior.ColorIndex = 15   'Remets ligne REPERE en gris
              Else
               Exit Sub                                                       'Si r?ponse = Non on sort
            End If
        End With
      End Sub
      
      '#######################
      
      '*** Pour effacer par double clic les donn?es colonne F31:F34
      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
               If Not Intersect(Range("F31:F34"), Target) Is Nothing Then
                        Cancel = True
                        Target.Value = ""
               End If
      End Sub
      
      '*** Test et entr?e des donn?es
      Private Sub Worksheet_Change(ByVal Target As Range)
       If Intersect(Target, Range("$F$31:$F$34")) Is Nothing Then Exit Sub
      Application.EnableEvents = False           '*** D?sactive les autres ?v?nements que pourrait d?clencher la macro
      
      Select Case Target.Value
                Case IsNumeric(Target.Value) And Target.Value = 0 And Not IsEmpty(Target.Value) = False       '*** Si Z?ro entrer
                         Target.Value = ""
                         Target.Select
      
                Case Is < 0                                 '*** Si chiffre n?gatif
                         Target.Value = ""
                         Target.Select
      
      '*****************************
                Case Is <> ""                               '*** Si cellule n'ai pas vide
                        With Target.Offset(0, 1)
                               .Value = "Versement en attente"
                               .Font.ColorIndex = 3                        '*** Rouge
                               Target.Value = .Offset(0, -1)
                 End With
      
                Case Is = ""                                                    '*** Si cellule vide
                         With Target.Offset(0, 1)
                                .Value = "Versement effectuer"
                                .Font.ColorIndex = 4                        '*** Vert
                                Target.Value = .Offset(0, -1)
                End With
      
                Case Else: Range("F31:F34").Value = ""
                                 Range("G31:G34").Value = ""
      End Select
      Application.EnableEvents = True              '*** R?active les ?v?nements
      
      If Application.WorksheetFunction.CountA(Range("F31:F34")) = 0 Then Range("G31:G34").ClearContents
      End Sub
      
      '*** Permets de descendre d'une ligne Offset(1,-1)   1 pour descendre d'une ligne et -1 pour avance colonne
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
               If Not Intersect(Target, Range("G31:G34")) Is Nothing Then Target.Offset(1, -1).Select
      End Sub
      
      '*** Date sur clic droit en REM provisoirement
      'Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
      '
      'If Target.Column = 5 And Target.Row = 34 Then
      '   Target.Value = Format(Date, "dd mmm yyyy")
      '   Cancel = True
      'End If
      'End Sub
      
      
      1. Contributeur
        il suffit de dé-commenter et de déplacer les lignes 124 à 127 de façon à les insérer entre les lignes 13 et 14.
      2. @yg_beRe yg_be,

        Hé bien ca fonctionne, juste un truc par hazard, j'ai fait un clic droit la date c'est bien afficher en E34 format (11 févr 2020)
        puis j'ai double cliquer en E34 et la date c'est modifier en s'affichant au format (11-févr-2020).

        sinon ca marche bien.

        Tu a été excellent sur ce coup la, j'aurai pas trouver comment faire, a part de me passer de la date, merci pour ca et pour le reste bien sur.

        je te souhaite la bonne soirée, je regarde demain pourquoi la date c'est modifier, peut être le format de la cellule hum je redirai demain, encore bonne soirée et grand merci a toi pour ton aide.

        Merci a l'ami pijaku

        Cdlt Ray
    6. Salut yg_be,

      J'ai regarder dans format de cellule pour la date et c'est au format normal donc j'ai laisser comme ça.

      J'ai toutefois refait des essais mais du coup, je ne sais pas pourquoi la date change de format avec un double clic sur la cellule E34.

      Je te souhaite la bonne journée et merci.

      Cdlt Ray
      1. Contributeur
        pour vérifier ce que fait vraiment le double clic sur E34, peux-tu modifier le contenu de E34, par exemple y mettre "bonjour" ou y mettre une autre date, et puis double cliquer dessus?
      2. @yg_beSalut

        Merci pour la réponse,

        La date d'hier est bien rester afficher, n'a pas changer a l'ouverture du fichier, ça c'est bon.

        Avec la souris je me suis placer sur E34 je n'ai pas effacer la date et j'ai écrit "bonjour" puis j'ai double clic et le curseur s'est positionner au milieu du mot "bonjour" et clignote.

        j'ai fait un clic droit dans E34 la date c'est afficher au jour d'aujourd'hui au bon format.

        Puis j'ai de nouveau fait un double clic et la date c'est modifier 12-févr-2020.

        Voila pour les essais, bonne journée.

        Cdlt Ray
      3. Contributeur
        @dudulerayje suggère de remplacer
        Target.Value = Format(Date, "dd mmm yyyy")

        par
        Target.NumberFormat = "d mmm yyyy"
        Target.Value = Date
      4. @yg_beRe,

        Merci pour le code.

        Alors ca fonctionne mais cette fois quand je double clic dans la cellule E34 la date s'affiche comme ca "12/02/2020".

        Mais dès que je clic ailleurs la date revient aussitôt au bon format "12 févr 2020"

        Voila pour ce nouvel essai, merci

        Cdlt Ray
      5. Contributeur
        @dudulerayje pense que tout est normal. quand tu double cliques sur E34, il l'affiche pour que tu puisses la modifier, puis, quand tu vas ailleurs, l'affiche suivant le format demandé.