.Subject = Format(Time, "h mm ss")

Hecs

XLDnaute Nouveau
Bonjour le forum,

Je voudrais faire une pointeuse. Plus précisément, j'aimerais une pointeuse pour qu'a chaque arrivée d'un employé, il puisse m'envoyer l'heure de son arrivée via outlook et le pc du magasin.

J'utilise un classeur excel pour la caisse avec pas mal de codes et les employés m'envoie l'état de la caisse via mail a chaque changement d'utilisateurs.

Pour certaines raisons, l'heure du pc n'est pas à l'heure...et en plus elle est modifiable si un petit filou y pense...;)

J'ai une question assez simple :comment puis-je faire pour récupérer l'heure via le net et non pas l'heure du PC, pour l'ajouter comme objet à mon mail ?

J'ai chercher un peu partout mais pas moyen de trouver une solution...J'ai aussi penser récupérer cette fameuse heure dans une feuille excel et puis envoyer le tout...mais j'ai rien trouvé non plus (avec autre chose que "time")

Pouvez vous m'aider ? Quelqu'un à une idée ?

Merci beaucoup !
 

PMO2

XLDnaute Accro
Re : .Subject = Format(Time, "h mm ss")

Bonjour,

Une piste pour récupérer l'heure universelle (par la suite il faudra appliquer les heures d'hiver et d'été)



Code:
Const WEB_SITE As String = "http://tycho.usno.navy.mil/cgi-bin/timer.pl"

Sub GetHeureUniverselle()
Dim IE  As Object 'As SHDocVw.InternetExplorer
Dim DOC As Object 'As MSHTML.HTMLDocument
Dim A$
Dim B$
Dim i&
Dim LAT$
Dim LON$
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate (WEB_SITE)
Do Until IE.ReadyState = 4  'READYSTATE_COMPLETE
  DoEvents
Loop
Set DOC = IE.Document
A$ = IE.Document.documentElement.innerHTML
IE.Quit
Set IE = Nothing
'--- Recherche les infos heure universelle ---
A$ = Mid(A$, InStr(1, A$, "<PRE><BR>") + 9)
A$ = Mid(A$, 1, InStr(1, A$, " UTC") - 1)
MsgBox A$
End Sub


Cordialement.

PMO
Patrick Morange
 

Hecs

XLDnaute Nouveau
Re : .Subject = Format(Time, "h mm ss")

Bonjour PMO2, le forum,

J'ai un peu avancé mais pas assez pour arriver à la solution...:-(. J'ai réussi a diviser la date Utc obtenue pour travailler juste sur l'heure pour qu'ensuite l'utilisateur choisisse lui-même si on est en heure hiver ou été.
Mais j'ai pas trouvé le moyen d'automatisé ce choix.
J'ai en fait trouvé une formule mais elle n'a pas l'air de fonctionner...voir commandbutton3...


Merci.
 

Pièces jointes

  • Heure Utc vers Gmt+1.zip
    25.3 KB · Affichages: 56

Hecs

XLDnaute Nouveau
Re : .Subject = Format(Time, "h mm ss")

Bonjour PMO, le forum,

Voici le fichier final,

Une pointeuse qui envoie donc via mail l'heure d'arrivée basée sur l'heure Utc et non l'heure pc avec gestion du passage à l'heure d'été ou l'heure d'hiver.
(Pourvu que la connexion fonctionne...si pas il y a toujours moyen d'enregistrer la feuille avant l'envoie dans un dossier a consulter plus tard)

Merci beaucoup PMO !
 

Pièces jointes

  • Pointeuse Envoie mail avec heure réelle.zip
    27.7 KB · Affichages: 58
Dernière édition:

Hecs

XLDnaute Nouveau
Re : .Subject = Format(Time, "h mm ss")

Bonjour le forum, PMO,

J'ai parlé trop vite, j'ai une erreur d'incompatibilité de type a cette hauteur du code :

maDate = CDate((Mid(A$, 1, InStr(1, A$, ",") - 1)) & Space(1) & (Mid(A$, InStr(1, A$, ",") + 1)))

Je n'ai pas eu de problème au début et puis.... Je comprends pas...

Merci
 

PMO2

XLDnaute Accro
Re : .Subject = Format(Time, "h mm ss")

Bonjour,

Cela provient de la date obtenue à partir du site qu'on interroge qui est un site américain.
Les mois sont signifiés, en anglais, par leurs 3 premières lettres.
Ayant fait le programme au mois de novembre qui par hasard a les mêmes 3 premières lettres en anglais et en français, je me suis fait avoir.
Il convient donc de faire la conversion comme suit

Code:
Private Sub aa() 'CommandButton4_Click()
'Merci à PMO
'Patrick Morange

Dim IE  As Object 'As SHDocVw.InternetExplorer
Dim DOC As Object 'As MSHTML.HTMLDocument
Dim A$
Dim B$
Dim i&
Dim LAT$
Dim LON$
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate (WEB_SITE)
Do Until IE.ReadyState = 4  'READYSTATE_COMPLETE
  DoEvents
Loop
IE.Visible = True
Set DOC = IE.Document
A$ = IE.Document.DocumentElement.innerHTML
IE.Quit
Set IE = Nothing
'--- Recherche les infos heure universelle ---
A$ = Mid(A$, InStr(1, A$, "<PRE><BR>") + 9)
A$ = Mid(A$, 1, InStr(1, A$, " UTC") - 1)
'--- Jour et heure ---
Dim maDate As Date
Dim Conversion As Variant

[COLOR="Blue"]'////////////
Conversion = Array("Janvier", "Jan", "Février", "Feb", "Mars", "Mar", "Avril", "Apr", _
  "Mai", "May", "Juin", "Jun", "Juillet", "Jul", "Août", "Aug", "Septembre", "Sep", _
  "Octobre", "Oct", "Novembre", "Nov", "Décembre", "Dec")
For i& = 1 To 23 Step 2
  If LCase(Left(A$, 3)) = LCase(Conversion(i&)) Then
    A$ = Conversion(i& - 1) & Mid(A$, 4)
    Exit For
  End If
Next i&
'////////////[/COLOR]

maDate = CDate((Mid(A$, 1, InStr(1, A$, ",") - 1)) & Space(1) & (Mid(A$, InStr(1, A$, ",") + 1)))
  '°°° Une heure de décalage UTC vs Paris °°°
maDate = maDate + 1 / 24
  '°°° Une heure de décalage heure d'été °°°
If HeureEte(maDate) Then maDate = maDate + 1 / 24

Sheets("Feuil1").Range("g3").Value = Format(maDate, "dd/mm/yyyy")
Sheets("Feuil1").Range("h3").Value = Format(maDate, "hh:mm:ss")

Dim message, title, defaultValue As String
Dim myValue As String
message = "Mettre votre prénom svp"
title = "Prénom"
defaultValue = "Prénom"
myValue = InputBox(message, title, defaultValue)
If myValue = "" Then myValue = defaultValue

Sheets("Feuil1").Range("b3").Value = myValue

Dim ol As New Outlook.Application
Dim olmail As MailItem

Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
'Caractéristiques de l'e-mail
With olmail
.To = Sheets("Feuil1").Range("A3").Value
'Affiche le nom comme objet du message
.Subject = "Pointage le " & Sheets("Feuil1").Range("g3").Value & "  à " & Sheets("Feuil1").Range("h3").Value
.Body = "Bonjour, le magasin est ouvert." & vbLf & vbLf & vbLf & _
myValue & vbLf & Application.UserName
'Remplacez .Display par .send pour envoyer directement l'e-mail sans l'afficher dans Outlook
'.Send
.Display

End With

End Sub

Cordialement.

PMO
Patrick Morange
 
Dernière édition:

Hecs

XLDnaute Nouveau
Re : .Subject = Format(Time, "h mm ss")

Bonjour PMO, le forum,

J'ai un petit problème : sur "Set IE = CreateObject("InternetExplorer.Application")" erreur automation. J'ai jusqu'à présent "résolu" le problème en m'assurant que le pc soit éteint tous les jours mais je me demande sil il n'y a pas une autre solution ...

Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 349
Membres
103 526
dernier inscrit
HEC