Insérer une date automatiquement

Bonjour tous le monde

comme d'habitude je reviens sur ce site à chaque fois que Excel me bloque sur certaine astuces qui me dépassent.

mon problème:

je travaille sur un fichier Excel pour le suivi des outil dans le magasin (Entrée et sortie), j'ai un tableau de 7 colonnes:

  • Désignation outil
  • Nom du preneur
  • Date sortie
  • Heure sortie
  • Statut
  • Date remise
  • Heure remise

je veux automatisé mon fichier de sorte: dés qu'on renseigne la désignation de l'outil la date sortie et heure sortie sera renseignée automatiquement, la même chose quand je mis Statut à "Rendu" la date remise et Heure remise se renseigne automatiquement.

Et il aura pas de mise à jour du date à chaque ferméture et ouverture de fichier,je doit gardé l'historique des mouvement pour chaque outil.

merci d'avance pour votre aide

22suivi-outil.xlsx (9.14 Ko)

Bonjour

Ci joint votre fichier avec vos attentes je l'espere.

Il faut regarder le code VBA, je l'ai commenté pour plus de compréhension.

Cdt,

45suivi-outil.xlsm (19.32 Ko)

Bonjour Achille, Ti_chou, bonjour le forum,

Ti_chou a été plus rapide ! Tant pis, j'envoie quand même ma proposition...

Le code ci-dessous, à placer dans l'onglet correspondant, utilise la macro événementielle Change :

Private Sub Worksheet_Change(ByVal Target As Range)
'si le nombre de cellules sélectionnées est supérieur à 1 ou si
'la ligne de la cellue éditée est inférieure à 4, sort de la procédure
If Target.Cells.Count > 1 Or Target.Row < 4 Then Exit Sub

If Target.Column = 1 Then 'condition : si la cellule éditée se trouve dans la colonne 1 (=A)
    'si la cellule est effacée, efface la ligne entière, sort de la procédure
    If Target.Value = "" Then Target.Resize(1, 7).ClearContents: Exit Sub
    Target.Offset(0, 2).Value = Year(Date) & "-" & Month(Date) & "-" & Day(Date) 'place la date en colonne C
    Target.Offset(0, 3).Value = Time 'place l'heure en colonne D
    Target.Offset(0, 1).Select 'sélectionne la cellule en colonne B
End If 'fin de la vondition
If Target.Column = 5 Then 'condition : si la cellule éditée se trouve dans la colonne 5 (=E)
    'si la cellule est effacée, efface la date et l'heure correspondante, sort de la procédure
    If Target.Value = "" Then Range(Target.Offset(0, 1), Target.Offset(0, 2)).ClearContents: Exit Sub
    Target.Offset(0, 1).Value = Year(Date) & "-" & Month(Date) & "-" & Day(Date) 'place la date en colonne F
    Target.Offset(0, 2).Value = Time 'place l'heure en colonne G
    Target.Offset(1, -4).Select 'sélectionne la cellule en colonne A de la ligne suivante
End If
End Sub

Bonjour,

Je me pose une question pour le code de ti_chou

Target.Offset(0, 2) = Date
Target.Offset(0, 3) = Time

Ne serait-ce pas plus simple ?

Frédéric38 a écrit :

Bonjour,

Je me pose une question pour le code de ti_chou

Target.Offset(0, 2) = Date
Target.Offset(0, 3) = Time

Ne serait-ce pas plus simple ?

Bonjour,

Cela dépend du format attendu.

Tu risques de faire face a un formatage de date classique surtout sur l'heure. pas de format HH24 et avoir am ou pm à la fin.

Cdt,

AH oui en effet, merci pour la précision

Bonsoir,

Si on veut privilégier des formats numériques, une petite modification.

If Target.Value <> "" Then
            'on est bien sur la colonne A + désignation non vide
            With Target.Offset(0, 2)
                .Value = Date
                .NumberFormat = "dd/mm/yyyy"
            End With
            With Target.Offset(0, 3)
                .Value = Time
                .NumberFormat = "hh:mm"
            End With
        End If

Bonjour à tous

tout d'abord merci infiniment pour vos réponses.

enfin j'étè obligé d'essayer tous les codes que vous avez proposé,mais ça n'a pas marché avec mon tableau.

voici mon tableau encore une fois avec des modéfication (j'ai inséré d'autre colonnes)mais avec le même principe que le premier, notez aussi que sur la colonne Stutut si jamais j'efface la mention "Rendu" la date de remise doit disparaitre.

15suivi-outil.xlsx (9.14 Ko)

merci infiniment

Merci à vous tous, le broblème est réglé.

cordialement

Rechercher des sujets similaires à "inserer date automatiquement"