Inserez date et heure statique

Bonjour,

Je cherche comment dans un tableau récupère la date et l'heure, mais quelle ne bouge pas lors d'un recalcul.

La fonction CTRL+; ne me convient pas et je m'explique.

Mon tableau vas posséder 4 colonne ABCD

Colonne A je scanne un nombre puis passage à la colonne B en auto

Colonne B je scanne un autre nombre puis passage à la colonne C en auto

Colonne C je scanne ce que je veux, mais mon but dans ce cas là c'est que la date et l'heure s'affiche dans la colonne C Idem pour la colonne D.

Mais là je patauge pour y arriver

Ci joint un format

8test.xlsx (8.85 Ko)

Bonjour,

cette macro met date-heure en C ou D lorsqu'on sélectionne la cellule et qu'elle est vide.

Il faut également que B ne soit pas vide.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target <> "" Then Exit Sub
    If Target.Row > 1 And (Target.Column = 3 Or Target.Column = 4) And Cells(Target.Row, 2) <> "" Then Target = Now
End Sub

eric

20classeur1.xlsm (14.92 Ko)

Merci eriiic,

Il n'y a pas moyen par exemple :

Je scanne mon code opérateur écriture dans la colonne opérateur

Passage auto colonne OF, scan du code OF écriture dans la colonne OF

Passage auto dans la colonne début, scan d'un code (peur importe lequel) et là, écriture de la date et de l'heure

Passage colonne fin, idem colonne début.

Pour le passage auto, c'est mon lecteur code barre qui le réalisera suis je bête

J'en demande peut être un peu trop là ?

Bon j'avance un peu

comme ceci ça fonctionne

Private Sub Worksheet_Calculate()

Application.EnableEvents = False

If Range("b4") > 0 Then

Range("b4") = Format(Time, "hh:mm;@")

Else

Range("b4") = ""

End If

Application.EnableEvents = True

End Sub

si je scanne en b4 ce que je veux l'heure arrive, manque plus que la date

En fait non me manque plus qu'a répéter l'opération pour la colonne 5

Finalement fausse joie, si je scanne un code de fin, cela me modifie l'heure de début

Je ne comprend pas tout à ton truc....

Si tu scannes qcq chose en C ou D tu veux remplacer par date-heure ?

Si oui essaie ça :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row > 1 And (Target.Column = 3 Or Target.Column = 4) Then
        Application.EnableEvents = False
        If Not IsDate(c) Then c = Now
        Application.EnableEvents = True
    End If
End Sub

Si ce n'est pas ça explique en détail et clairement le fonctionnement voulu.

eric

Oui Éric, c'est bien mon but, scanner par exemple le mot début et qu'à la place de début ce soit la date et l'heure qui s'affiche dans mon classeur

J'essaie ton code ce soir pour voir et je te tiens au courant

En tout cas merci d'avance pour ta patience

C'est bon, j'ai réussi a faire ce que je voulais (en partis) comme ceci me manque encore la date

Private Sub Worksheet_Calculate()

Application.EnableEvents = False

If Range("b4") = 10 Then

Range("b4") = Format(Time, "hh:mm:ss;@")

End If

Application.EnableEvents = True

Application.EnableEvents = False

If Range("b5") = 11 Then

Range("b5") = Format(Time, "hh:mm:ss;@")

End If

Application.EnableEvents = True

End Sub

J'ai testé ton code Eric, il fonctionne aussi, mais la date m'affiche 1900 ?

Ah oui, petite erreur :

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Row > 1 And (Target.Column = 3 Or Target.Column = 4) Then

Application.EnableEvents = False

If Not IsDate(c) Then Target = Now

Application.EnableEvents = True

End If

End Sub

Le format tu n'as pas besoin de le mettre dans le code. Fait le une fois sur les 2 colonnes, ça reste.

eric

Merci Eric,

Je vais testé ça déjà voir si cela fais moins usine à gaz que ma solution qui fonctionne comme je le veut.

tiens je te la met en pièces jointe, si tu pouvais y jeter un œil à l'occaz et me dire s'il ni y'a pas plus simple ?

Merci


Effectivement, t'a solution est plus simple Eric, mais juste un soucis, je ne peut pas supprimer les données de la colonne C et D ?

12automatisme.xlsm (22.02 Ko)

Bonjour,

Excuse-moi de te le dire mais ton code est une horreur...

Et si tu mets un fichier ça serait bien qu'il corresponde à la demande. Les colonnes ne sont plus les même, on voit un champ Date en plus du coup coup on ne sait plus si c'est toujours date-heure ou heure seule que tu veux en C et D. Bref, reste constant dans ta demande. Et insérer une colonne vide en A ne sert à rien...

Donc reprécise si tu changes la donne

Bon, reprenons les bases.

1) Est-ce que tu scannes un code précis qui t'inscrit une chaine précise pour le début et la fin ?

Quelles sont ces chaines et en quelle colonne chacune s'inscrit ?

Si tu ne donnes pas la réalité en détail ça peut durer des jours.

eric

Ton code me suffit à faire ce que je veux, mais mon seul soucis avec c'est que je ne peut pas effacer les données des 2 colonnes pour pouvoir les réutilisé par exemple, si j'essaie de supprimer, cela me change l'heure et j'imagine la date si je refait la manip demain.

le code que je t'ai fais passer et qui est une horreur (ça je m'en doutais un petite peu ) fais aussi je que je voulais, mais différemment, vus que je n'affiche qu'une seul fois la date, mais quand je scanne "début" cela m'affiche l'heure et la date.

Enfin pour répondre à tes questions, je ne scanne rien de spécial pour le début et fin, je crée le code data matrix que je veux, donc ça peu m'importe, je veux juste que lorsque la personne vas scanner le code début, cela m'affiche l'heure et la date du Scan, idem pour la fin.

Mon but étant de pointer entre 2 périodes pour voir le temps que prends telle ou telle opération.

Merci


Je te redonne mon fichier avec les explications

Colonne OF , je scanne une numéro donné par mon ERP (code datamatrix), le curseur passe en colonne OPE

Colonne OPE, je scanne le nom de l'operateur (code datamatrix generer avec son nom)

Colonne Début, je scanne le mot debut (code datamatrix) cela m'affiche l'heure colonne D et le date colonne F

Colonne Fin, je scanne le mot fin (code datamatrix) cela m'affiche l'heure colonne E

Colonne G calcul du temps passé.

Voilà ce que je veux comme je te le disait cela fonctionne malgré un code affreux mais le tiens est plus simple mais je ne peux effacer les donnés pour pouvoir réutilisé la feuille (voir feuille 2)

14automatisme.xlsm (22.10 Ko)

je ne scanne rien de spécial pour le début et fin

Pourtant on a l'impression que ce sont des codes dédiés avec :

Colonne Début, je scanne le mot debut (code datamatrix) cela m'affiche l'heure colonne D et le date colonne F

Colonne Fin, je scanne le mot fin (code datamatrix) cela m'affiche l'heure colonne E

On aurait pu se baser dessus pour ne remplacer que ces mots là.

Essaie avec :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Row > 1 And (Target.Column = 4 Or Target.Column = 5) And Target <> "" Then
        Application.EnableEvents = False
        If Not IsDate(Target) Then Target = Now
        Application.EnableEvents = True
    End If
End Sub

Tu pourras vider les cellules.

eric

Ha nickel comme ça.

Fonctionne bien avec un code bien plus simple.

Merci pour ton aide Eric

Ha si encore une questions si je peut abuser :

Est t'il possible si je trouve 2 (ou plus) valeur égale dans ma colonne B et en même temps 2 valeurs (ou plus) égale dans la colonne C faire la somme correspondante au ligne des valeurs se trouvant dans la colonne F ?

Mon but étant d'avoir le temps passer par opérateur et par OF ?

je sais faire par OF, par opérateur, mais les 2 en même temps non .

Tu peux te faire un tableau croisé dynamique, c'est fait pour.

Il suffira juste de l'actualiser quand tu veux les résultats.

eric

Ha, je vais tenter alors

A data matrix is a rectangular array of elements, arranged in rows and columns, and can be used to show the placement of concepts along two axes.

Rechercher des sujets similaires à "inserez date heure statique"