Note: The other languages of the website are Google-translated. Back to English

Comment insérer un horodateur dans une cellule si une case à cocher est cochée dans Excel?

Normalement, vous entrez un horodatage à l'aide des touches de raccourci dans Excel. Que diriez-vous d'insérer un horodatage dans une cellule par une case à cocher dans Excel? Lorsque vous cochez la case, l'horodatage est inséré automatiquement dans une cellule spécifiée. Cet article vous aidera à le résoudre.

Insérez le cachet de la date dans une cellule si vous cochez une case avec le code VBA


Insérez le cachet de la date dans une cellule si vous cochez une case avec le code VBA

Cette section présentera un script VBA pour vous aider à insérer automatiquement un horodateur dans une cellule si vous cochez une case dans Excel. Veuillez faire comme suit.

1. Après avoir inséré une case à cocher, appuyez sur autre + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. dans le Microsoft Visual Basic pour applications fenêtre, cliquez sur insérer > Module. Ensuite, copiez et collez le code VBA ci-dessous dans la fenêtre Module.

Code VBA: insérer un horodatage dans une cellule si une case est cochée

Sub CheckBox_Date_Stamp()
Dim xChk As CheckBox
Set xChk = ActiveSheet.CheckBoxes(Application.Caller)
With xChk.TopLeftCell.Offset(, 1)
    If xChk.Value = xlOff Then
        .Value = ""
    Else
       .Value = Date
    End If
End With
End Sub

3. presse autre + Q touches pour fermer le Microsoft Visual Basic pour applications fenêtre.

4. Cliquez avec le bouton droit sur la case à cocher et sélectionnez Attribuer Micro dans le menu contextuel. Voir la capture d'écran:

5. dans le Attribuer une macro boîte de dialogue, sélectionnez CheckBox_Date_Stamp dans le Nom de la macro , puis cliquez sur le OK bouton. Voir la capture d'écran:

Lorsque vous cochez la case, le timbre de date sera inséré automatiquement dans la cellule adjacente.


Articles connexes:


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2021 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (22)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Merci, cela m'a été très utile, je voudrais noter que je trouve plus utile d'avoir le cachet de date à gauche de la case à cocher. pour ce faire, il suffit de changer le décalage en (, -1)
Ce commentaire a été minimisé par le modérateur sur le site
Existe-t-il un moyen de le faire avec la date ET l'heure? Merci pour l'info en tout cas !
Ce commentaire a été minimisé par le modérateur sur le site
Sub CheckBox_Date_Stamp() Dim xChk As CheckBox Set xChk = ActiveSheet.CheckBoxes(Application.Caller) With xChk.TopLeftCell.Offset(, 1) If xChk.Value = xlOff Then .Value = "" Else .Value = Date & " " & Heure de fin si fin avec fin sous
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Veuillez appliquer le code VBA ci-dessous pour ajouter la date et l'heure.

Sous CheckBox_Date_Stamp()
Dim xChk comme case à cocher
Définir xChk = ActiveSheet.CheckBoxes(Application.Caller)
Avec xChk.TopLeftCell.Offset(, 1)
Si xChk.Value = xlOff Alors
.Valeur = ""
autre
.Valeur = Maintenant()
Si fin
Terminer par
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
HI J'ai essayé cette formule et cela n'a fonctionné que pour A1 et B1 lorsque j'ai appliqué la macro à la case à cocher dans A1. Cependant, lorsque j'ai appliqué la macro à la case à cocher en A2, rien ne s'est passé en B2. De plus, comment la formule serait-elle modifiée si je voulais l'utiliser pour une liste de contrôle ? Si la colonne A était les cases à cocher et la colonne C était la date de fin.
Ce commentaire a été minimisé par le modérateur sur le site
Salut :) vous pouvez copier la cellule avec la case à cocher en A1 dans le reste de la colonne. ou assignez la macro individuellement à chaque case à cocher
Ce commentaire a été minimisé par le modérateur sur le site
Good Day,
Veuillez attribuer la macro individuellement à chaque case à cocher.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai copié et collé le code VBA exactement, mais sur ma feuille de calcul, la date apparaît dans la cellule au-dessus et à droite de la colonne de la case à cocher, pas dans la cellule directement à droite. ?
Ce commentaire a été minimisé par le modérateur sur le site
J'ai aussi exactement le même problème. "AIDE ! J'ai besoin de l'AIDE de quelqu'un ! Pas n'importe qui ! Vous savez que j'ai besoin de l'AIDE de quelqu'un !
Ce commentaire a été minimisé par le modérateur sur le site
Bonne journée,
Le code fonctionne bien dans mon cas. Après avoir coché la case, la date apparaîtra dans la cellule directement à droite. Pourriez-vous fournir une capture d'écran de votre cas. Et quelle version d'Office utilisez-vous. Merci.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai eu le même problème avec l'horodatage apparaissant dans la cellule au-dessus de la cellule prévue (en utilisant Excel 2007). Je suis allé de l'avant et j'ai modifié la formule "décalage" pour qu'elle passe sur une cellule ET sur une cellule et maintenant le tampon apparaît où je le veux : Avec xChk.TopLeftCell.Offset(1, 1)
Je mets à jour une feuille de calcul que quelqu'un d'autre a créée et n'a pas créé les cases à cocher, mais cela peut avoir à voir avec l'endroit où la case à cocher est placée à l'intérieur de la cellule. J'ai obtenu des résultats différents lorsque j'ai aligné la case à cocher avec le bas de la cellule.

Hope that helps!
Ce commentaire a été minimisé par le modérateur sur le site
C'est ce que j'ai fait pour résoudre ce problème

Sous CheckBox_Date_Stamp()
Dim xChk comme case à cocher
Définir xChk = ActiveSheet.CheckBoxes(Application.Caller)
Avec xChk.TopLeftCell.Offset(1, 1)
Si xChk.Value = xlOff Alors
.Valeur = ""
autre
.Valeur = Maintenant()
Si fin
Terminer par
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Salut! Merci pour le code. Cela fonctionne parfaitement avec un petit ajustement sur le décalage. Cependant, je travaillais sur une feuille contenant de nombreuses lignes (~ 500+ lignes) qui contient une charge de cases à cocher et la taille du fichier a considérablement augmenté. Y a-t-il un moyen de réduire la taille ? Une autre façon de faire cela?

Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour
S'il y a beaucoup de cases à cocher dans les rangées et que vous souhaitez agir sur toutes les cases à cocher en même temps, le code VBA ci-dessous peut vous aider.
Veuillez copier les codes dans une fenêtre de code de module, revenir à la feuille de calcul et créer un bouton (tel qu'un bouton (contrôle de formulaire)), attribuer la macro SetAllChkChange() au bouton, puis cliquer sur le bouton pour exécuter le code.

Maintenant, toutes les cases à cocher dans les lignes de votre feuille de calcul ont été activées. Vous pouvez cocher n'importe lequel d'entre eux pour insérer un horodatage dans sa cellule adjacente.

Sub SetAllChkChange()
Dim xChks
Dim xChk comme case à cocher
Dim xI aussi longtemps
On Error Resume Next
Effacer xArrChk
Définir xChks = ActiveSheet.CheckBoxes
ReDim Preserve xArrChk(1 To xChks.count)
xI = 1
Pour chaque xChk dans xChks
xChk.Select
Selection.OnAction = "ObjChkChange"
Suivant
End Sub


Sub ObjChkChange()
Dim xChk comme case à cocher
Définir xChk = ActiveSheet.CheckBoxes(Application.Caller)
Avec xChk.TopLeftCell.Offset(, 1)
Si xChk.Value = xlOff Alors
.Valeur = ""
autre
.Valeur = Date
Si fin
Terminer par
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
comment puis-je faire en sorte que l'horodatage s'affiche sous ma case à cocher ?
Ce commentaire a été minimisé par le modérateur sur le site
salut! Je n'arrive pas à trouver un moyen où l'horodatage sera sur le côté de la case à cocher. J'ai essayé de changer la valeur de décalage de 0, 1 et -1. Peux-tu m'aider avec ceci? Merci!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, en supposant que votre case à cocher est en A2 et que vous souhaitez afficher l'horodatage sur le côté droit de la case à cocher (dans ce cas, il s'agit de B2), veuillez modifier la valeur Offset en Offset (1, 1).
Ce commentaire a été minimisé par le modérateur sur le site
J'ai utilisé le VBA pour l'horodatage de la case à cocher, mais les deux premières cellules ne fonctionnent pas correctement. Ma première case à cocher est en A2, quand je coche la case, l'heure est affichée en B1. Comment puis-je réparer ça?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Steve,
Veuillez remplacer la quatrième ligne du code par With xChk.TopLeftCell.Offset(1, 1).
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup!! Génial! Merci!
Ce commentaire a été minimisé par le modérateur sur le site
Salut, comment puis-je boucler le code pour inclure toutes les cases à cocher dans la colonne ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonne journée,
S'il y a beaucoup de cases à cocher dans les lignes et que vous souhaitez agir sur toutes les cases à cocher en même temps, le code VBA ci-dessous peut vous aider.
Veuillez copier les codes ci-dessous dans une fenêtre de code de module, revenir à la feuille de calcul et créer un bouton (tel qu'un bouton (contrôle de formulaire)), attribuer la macro SetAllChkChange() au bouton, puis cliquez sur le bouton pour exécuter le code.

Maintenant, toutes les cases à cocher dans les lignes de votre feuille de calcul ont été activées. Vous pouvez cocher n'importe lequel d'entre eux pour insérer un horodatage dans sa cellule adjacente.

Sub SetAllChkChange()
'Mis à jour par Extendoffice 20211130
Dim xChks
Dim xChk comme case à cocher
On Error Resume Next
Définir xChks = ActiveSheet.CheckBoxes
Pour chaque xChk dans xChks
xChk.Select
Selection.OnAction = "ObjChkChange"
Suivant
End Sub

Sub ObjChkChange()
Dim xChk comme case à cocher
Définir xChk = ActiveSheet.CheckBoxes(Application.Caller)
Avec xChk.TopLeftCell.Offset(, 1)
Si xChk.Value = xlOff Alors
.Valeur = ""
autre
.Valeur = Date
Si fin
Terminer par
End Sub
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL