Insérer automatiquement date/heure dans les cellules sélectionnées

Bonjour,

Je souhaite insérer automatiquement la date actuelle dans la cellule sélectionnée de la colonne A en cliquant sur Enter (sans bouton).

Idem pour l'heure actuelle dans la cellule sélectionnée des colonnes H, J, L et N.

Avez-vous une astuce VBA qui pourrait m'aider?

Mes meilleures salutations,

Thierry

Bonjour Thierry36, le forum,

Un essai...par doubleclic....

36thierry36.xlsm (43.43 Ko)

Cordialement,

Bonjour Xorsankukai,

Merci pour votre code malheureusement il ne fonctionne pas correctement:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, ActiveSheet.ListObjects("Tableau1").DataBodyRange) Is Nothing _
And Target.Count = 1 Then
Select Case Target.Column
Case Is = 1
Target.Value = Date
Case Is = 8, 10, 12, 14
Target.Value = Format(Time, "HH:MM:SS")
End Select
End If
End Sub

Effectivement par doubleclics c'est plus intuitif.

Meilleures salutations,

Thierry

12heures.xlsm (228.16 Ko)

Re Bonjour,

J'y suis finalement arrivé avec ce code:

'Pour insérer la date et l'heure par double clics

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ActiveSheet.Unprotect Password:="."
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        Cancel = True
        Target.Formula = Date
    End If

    If Not Intersect(Target, Range("H:H")) Is Nothing Then
        Cancel = True
        Target = Format(Now, "hh:mm")
    End If
        If Not Intersect(Target, Range("J:J")) Is Nothing Then
        Cancel = True
        Target = Format(Now, "hh:mm")
    End If
        If Not Intersect(Target, Range("L:L")) Is Nothing Then
        Cancel = True
        Target = Format(Now, "hh:mm")
    End If
        If Not Intersect(Target, Range("N:N")) Is Nothing Then
        Cancel = True
        Target = Format(Now, "hh:mm")
    End If
        ActiveSheet.Protect Password:="."
End Sub

Merci pour votre aide.

Bonne journée!

Bonjour,
La proposition de Xorsankukai (que je salue) revisitée.
Cdlt.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Me.Range("Tableau1")) Is Nothing Then
        Cancel = True
        Select Case Target.Column
            Case 1:
                Target.Value = Date
            Case 8, 10, 12, 14:
                Target.Value = Time
        End Select
    End If
End Sub

Bonjour Thierry36, Jean-Eric, le forum,


Merci pour votre code malheureusement il ne fonctionne pas correctement

J' utilise un tableau structuré nommé "Tableau1" dans mon exemple, ce qui n'est pas le cas dans ton fichier.

https://www.excel-pratique.com/fr/astuces/tableau-structure


Merci Jean-Eric pour le correctif ,

Petites questions pour compléter mes maigres connaissances :

  • Je vois que tu utilises Me.range, cette instruction est-elle à privilégier par rapport à ActiveSheet.range ?

De plus tu utilises

.Range("Tableau1")

au lieu de

.ListObjects("Tableau1").DataBodyRange
  • Est-ce du au fait que son tableau n'est pas un ListObject où tout simplement que cela est suffisant quel que soit le tableau utilisé?

Ma maitrise des tableaux reste encore approximative, d'ailleurs je m'inspire souvent de tes codes quand je dois les utiliser, .

Merci,

Cordialement,

Re,
@Xorsankukai,

1 - Me fait référence à la feuille active (dans la procédure évènementielle). Valable pour toutes les évènementielles de feuilles.

2 - Range("Tableau1") équivaut à ListObjects("Tableau1").DataBodyRange. Pour faire plus court !

3 - On aurait pu écrire Me.Range("Tableau1").Listobject.DatabodyRange

Cdlt.

Re,

Merci Jean-Eric pour ces précisions,

J'avais également lu un sujet qui débattait sur les différentes syntaxes....

https://forum.excel-pratique.com/excel/copier-vers-derniere-ligne-vide-dans-tableau-structure-166194

A bientôt,

Cordialement,

Rechercher des sujets similaires à "inserer automatiquement date heure selectionnees"