Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 04/02/2010, 19h02   #1
Nouveau Membre du Club
 
VINCENT SOBOLEWSKI
Inscription : octobre 2009
Messages : 108
Détails du profil
Informations personnelles :
Nom : VINCENT SOBOLEWSKI

Informations forums :
Inscription : octobre 2009
Messages : 108
Points : 26
Points : 26
Par défaut si heure système = heure dans cellule alors

bonjour
existe un code qui déclenche une macro si l'heure système est = à l'heure écrite dans une cellule
le tout mis en fonctionnement à l'ouverture du fichier
et ne fonctionne pas si le fichier est fermé
merci
vsobo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2010, 19h26   #2
Expert Confirmé Sénior
 
Avatar de jacques_jean
 
Homme Jacques THERY
CBPDI(Congés Bien Payés/Durée Indéterminée)
Inscription : janvier 2006
Messages : 2 958
Détails du profil
Informations personnelles :
Nom : Homme Jacques THERY
Âge : 67
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : CBPDI(Congés Bien Payés/Durée Indéterminée)

Informations forums :
Inscription : janvier 2006
Messages : 2 958
Points : 4 997
Points : 4 997
Bonsoir,

Quelques précisions sont nécessaires.

A priori, cela est possible, mais a peu de chance de se réaliser au moment où vous ouvrez votre fichier.

Quelle est la motivation exacte ?
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2010, 20h46   #3
Membre Expert
 
Inscription : juillet 2007
Messages : 2 134
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 2 134
Points : 2 154
Points : 2 154
Salut vsobo et le forum
Je suppose que tu veux parler de l'instruction OnTime. Mais elle ne s'arrête que si tu la fermes (voir l'aide).
A+
Gorfael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 10h11   #4
Nouveau Membre du Club
 
VINCENT SOBOLEWSKI
Inscription : octobre 2009
Messages : 108
Détails du profil
Informations personnelles :
Nom : VINCENT SOBOLEWSKI

Informations forums :
Inscription : octobre 2009
Messages : 108
Points : 26
Points : 26
Par défaut si heure systeme

bonjour
justement je veux éviter l'application ontime
j'avais déjà fait une application de ce type avec la date et ça fonctionnait
voici l'exemple
Code :
1
2
3
4
5
6
7
8
private sub worksheet
if range("A1")>=today then
me.tab.colorindex=4
end if
if range("B1)=>today then
me.tab.colorindex=3
end if
end sub
et donc je voudrai un peu la même chose mais avec une heure
merci
vsobo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 12h24   #5
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 201
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 201
Points : 4 235
Points : 4 235
bonjour,

C'est hyper clair vu qu'on ne sait pas ce qui alimente today qui n'est pas il me semble une instruction vba, vois du côté de Now et de ses copains, si ton code cité fonctionne, ça doit suivre...

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 14h34   #6
Expert Confirmé Sénior
 
Avatar de jacques_jean
 
Homme Jacques THERY
CBPDI(Congés Bien Payés/Durée Indéterminée)
Inscription : janvier 2006
Messages : 2 958
Détails du profil
Informations personnelles :
Nom : Homme Jacques THERY
Âge : 67
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : CBPDI(Congés Bien Payés/Durée Indéterminée)

Informations forums :
Inscription : janvier 2006
Messages : 2 958
Points : 4 997
Points : 4 997
Déjà dans votre exemple de code, il y a une petite incohérence :


Code :
1
2
3
4
5
6
7
8
private sub worksheet
if range("A1")>=today then
me.tab.colorindex=4
end if
if range("B1)=>today then 'il faut écrire : if range("B1)>= today
me.tab.colorindex=3
end if
end sub
Ensuite que se passe-t-il si les 2 conditions sont réunies ?

D'autre part, vous avez écrit à l'origine :
Citation:
existe un code qui déclenche une macro si l'heure système est = à l'heure écrite dans une cellule
Ce qui m'a amené à vous répondre :
Citation:
A priori, cela est possible, mais a peu de chance de se réaliser au moment où vous ouvrez votre fichier.
Alors est-ce vraiment : si l'heure système est = à ?
ou : si l'heure système est >= à ?
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 14h59   #7
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 201
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 201
Points : 4 235
Points : 4 235
Bonjour Jacques Jean,

Citation:
'il faut écrire : if range("B1)>= today
vous ne vouliez pas rajouter un " ??

cordialement,

Ps je crois que ce qu'il veut, c'est émuler le mode tâche d'Outlook, qui, s'il est ouvert envoie un message (pop-up), sachant que là ça ne se déclencherait que si l'heure voulue est "à venir"..

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 15h41   #8
Expert Confirmé Sénior
 
Avatar de jacques_jean
 
Homme Jacques THERY
CBPDI(Congés Bien Payés/Durée Indéterminée)
Inscription : janvier 2006
Messages : 2 958
Détails du profil
Informations personnelles :
Nom : Homme Jacques THERY
Âge : 67
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : CBPDI(Congés Bien Payés/Durée Indéterminée)

Informations forums :
Inscription : janvier 2006
Messages : 2 958
Points : 4 997
Points : 4 997
Bonjour Ormonth,

Oui, bien vu. J'ai fait d'abord un copier/coller et je n'ai même pas vu les guillemets manquants.

Quant à l'émulation du "mode tâche d'Outlook" vous avez peut-être ou sans doute raison, mais il faudrait quand même qu'il soit plus précis sur ce qu'il veut faire.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2010, 10h31   #9
Nouveau Membre du Club
 
VINCENT SOBOLEWSKI
Inscription : octobre 2009
Messages : 108
Détails du profil
Informations personnelles :
Nom : VINCENT SOBOLEWSKI

Informations forums :
Inscription : octobre 2009
Messages : 108
Points : 26
Points : 26
Par défaut si heure systeme

bonjour
l'exemple avec la date n'est qu'un exemple qui fonctionne
j'ai des séries de feuille
chaque feuille est une semaine et quand le premier jour de la feuille est égal à maintenant alors l'onglet devient vert et quand le dernier jour de la feuille est égal à maintenant alors l'onglet devient rouge
mais ,nous nous écartons du sujet
le but du sujet est d'avoir le même système , mais avec l'heure
merci
vsobo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2010, 10h42   #10
Expert Confirmé Sénior
 
Avatar de jacques_jean
 
Homme Jacques THERY
CBPDI(Congés Bien Payés/Durée Indéterminée)
Inscription : janvier 2006
Messages : 2 958
Détails du profil
Informations personnelles :
Nom : Homme Jacques THERY
Âge : 67
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : CBPDI(Congés Bien Payés/Durée Indéterminée)

Informations forums :
Inscription : janvier 2006
Messages : 2 958
Points : 4 997
Points : 4 997
Bonjour,

Code :
mh = Format(Now, "hh:mm:ss")
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2010, 15h23   #11
Nouveau Membre du Club
 
VINCENT SOBOLEWSKI
Inscription : octobre 2009
Messages : 108
Détails du profil
Informations personnelles :
Nom : VINCENT SOBOLEWSKI

Informations forums :
Inscription : octobre 2009
Messages : 108
Points : 26
Points : 26
Par défaut si heure systeme

bonjour
je n'arrive pas à le faire fonctionner
est-ce que dans la cellule référence , l'heure doit être écrite d'une certaine façon ,pourtant j'ai mis la cellule en format hh:mm:ss
merci
vsobo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2010, 17h35   #12
Expert Confirmé Sénior
 
Avatar de jacques_jean
 
Homme Jacques THERY
CBPDI(Congés Bien Payés/Durée Indéterminée)
Inscription : janvier 2006
Messages : 2 958
Détails du profil
Informations personnelles :
Nom : Homme Jacques THERY
Âge : 67
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : CBPDI(Congés Bien Payés/Durée Indéterminée)

Informations forums :
Inscription : janvier 2006
Messages : 2 958
Points : 4 997
Points : 4 997
Bonsoir,

Cela fonctionne si les cellules sont formatées en texte.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2010, 06h20   #13
Membre Expert
 
Inscription : juillet 2007
Messages : 2 134
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 2 134
Points : 2 154
Points : 2 154
Salut vsobo et le forum
Date : partie entière du nombre => une égalité est facile à obtenir
heure : partie décimale du nombre => le micro ne travaille pas à la seconde! Il faudrait établir une égalité jusque sur le bit de poid le plus faible. Et ça, ce n'est pas du domaine du possible!
Reste 2 possibilités : l'arrondi à la seconde du nombre (et pas de l'affichage) ou la fourchette (supérieur à limite_inf et inférieurà limite_sup)
A+
Gorfael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2010, 14h36   #14
Expert Confirmé Sénior
 
Avatar de jacques_jean
 
Homme Jacques THERY
CBPDI(Congés Bien Payés/Durée Indéterminée)
Inscription : janvier 2006
Messages : 2 958
Détails du profil
Informations personnelles :
Nom : Homme Jacques THERY
Âge : 67
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : CBPDI(Congés Bien Payés/Durée Indéterminée)

Informations forums :
Inscription : janvier 2006
Messages : 2 958
Points : 4 997
Points : 4 997
Bonjour Gorfael,

Sauf erreur de ma part (toujours possible) j'ai essayé ce code :

Code :
1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet()
mh = Format(Now, "hh:mm:ss")
 
If Range("A1") >= mh Then
Cells(1, 1).Interior.ColorIndex = 4
End If
If Range("B1") >= mh Then 'il faut écrire : if range("B1)>= today
Cells(1, 2).Interior.ColorIndex = 3
End If
End Sub
En "A1" j'ai entré : "14:10:15" et en "B1" : "14:10:55" (format texte).

Entre 14:10:16 et 14:10:55 la première condition ne s'exécute pas mais la deuxième s'exécute bien et avant 14:10:15 les deux conditions s'exécutent, après 14:10:55 aucune ne s'exécute.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2010, 18h00   #15
Nouveau Membre du Club
 
VINCENT SOBOLEWSKI
Inscription : octobre 2009
Messages : 108
Détails du profil
Informations personnelles :
Nom : VINCENT SOBOLEWSKI

Informations forums :
Inscription : octobre 2009
Messages : 108
Points : 26
Points : 26
Par défaut si heure systeme

bonjour
désolé , avec moi ça ne fonctionne pas
au travail j'avais mis une horloge dans une cellule
bref , dès que je remet la main sur ce code , je vous le montre
merci
vsobo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2010, 18h57   #16
Expert Confirmé Sénior
 
Avatar de jacques_jean
 
Homme Jacques THERY
CBPDI(Congés Bien Payés/Durée Indéterminée)
Inscription : janvier 2006
Messages : 2 958
Détails du profil
Informations personnelles :
Nom : Homme Jacques THERY
Âge : 67
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : CBPDI(Congés Bien Payés/Durée Indéterminée)

Informations forums :
Inscription : janvier 2006
Messages : 2 958
Points : 4 997
Points : 4 997
Bonsoir,

Une précision :

- vous n'avez peut-être pas la possibilité de mettre vos données au format texte et dans ce cas, il y a une autre solution tenant compte de la remarque de Gorfael.

- si vous avez mis vos cellules au format texte alors qu'elles sont déjà renseignées, cela ne fonctionnera pas non plus.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2010, 16h18   #17
Nouveau Membre du Club
 
VINCENT SOBOLEWSKI
Inscription : octobre 2009
Messages : 108
Détails du profil
Informations personnelles :
Nom : VINCENT SOBOLEWSKI

Informations forums :
Inscription : octobre 2009
Messages : 108
Points : 26
Points : 26
Par défaut si heure

bonjour
voilà comme promis ce que j'avais fait au travail pour appeler un userform avec l'heure systême
Code :
1
2
3
4
5
6
7
Dim temps
 
Private Sub Worksheet_Activate()
Hon
Private Sub Worksheet_Deactivate()
Hoff
End Sub
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Hoff
End Sub
 
Private Sub Workbook_Open()
Hon
 
End Sub
 
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Range("C1") = 1 Then
UserForm1.Show
End If
 
End Sub
Code :
1
2
3
4
5
6
7
8
9
10
11
Dim temps
Sub Hon()
ThisWorkbook.Sheets(1).Range("A1") = Format(Now, "hh:mm:ss")
temps = Now + TimeValue("00:00:01")
Application.OnTime temps, "Hon"
End Sub
 
Sub Hoff()
On Error Resume Next
Application.OnTime temps, procedure:="Hon", schedule:=False
End Sub
dans la cellule B1 ,j'écris l'heure au format hh:mm:ss
et dans la cellule C1 , je mets la fonction =si(B1=A1;1;"")
et ça fonctionne ,libre à vous pour l'userform
y a t il des inconvénient ?
est-ce correct?
merci
vsobo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2010, 19h28   #18
Expert Confirmé Sénior
 
Avatar de jacques_jean
 
Homme Jacques THERY
CBPDI(Congés Bien Payés/Durée Indéterminée)
Inscription : janvier 2006
Messages : 2 958
Détails du profil
Informations personnelles :
Nom : Homme Jacques THERY
Âge : 67
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : CBPDI(Congés Bien Payés/Durée Indéterminée)

Informations forums :
Inscription : janvier 2006
Messages : 2 958
Points : 4 997
Points : 4 997
Bonsoir,

Je viens de parcourir rapidement votre dernier message et a priori il ouvre de nouveaux horizons.

Vous n'aviez pas donné ces précisions dans les précédents et la différence peut se trouver justement dans le fait que vous utilisez un Userform.

Je n'ai pas le temps d'approfondir ce soir, mais demain, j'y regarderai de plus près, si vous n'avez pas obtenu d'autres réponses avant.

Bonne soirée en attendant.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2010, 16h28   #19
Expert Confirmé Sénior
 
Avatar de jacques_jean
 
Homme Jacques THERY
CBPDI(Congés Bien Payés/Durée Indéterminée)
Inscription : janvier 2006
Messages : 2 958
Détails du profil
Informations personnelles :
Nom : Homme Jacques THERY
Âge : 67
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : CBPDI(Congés Bien Payés/Durée Indéterminée)

Informations forums :
Inscription : janvier 2006
Messages : 2 958
Points : 4 997
Points : 4 997
Bonjour,

J'ai regardé votre code mais n'ayant pas le tout, je ne peut pour l'instant qu'imaginer : vous utilisez un Userform et donc je suppose que vous affectez le contenu des cellules qui contiennent "hh:mm:ss" à des Textbox ou autres objets du formulaire ?

Si c'est bien le cas, à priori, le raison du bon fonctionnement est la même que celle qui fonctionne chez moi en affectant le format texte aux cellules.

En effet, si vous utilisez le contenu de TextBox pour faire des comparaisons, ce contenu est bien en format texte alors que ce n'est pas le cas si vous faite la comparaison dans des formules Excel utilisant le contenu de vos cellules au format "hh:mm:ss".
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2010, 10h46   #20
Nouveau Membre du Club
 
VINCENT SOBOLEWSKI
Inscription : octobre 2009
Messages : 108
Détails du profil
Informations personnelles :
Nom : VINCENT SOBOLEWSKI

Informations forums :
Inscription : octobre 2009
Messages : 108
Points : 26
Points : 26
Par défaut si heure

bonjour
le chiffre "1" déclenche un userform
ce que je voulais au départ , c'est un enregistrement automatique , mais on me l'a fortement déconseillé (si mauvais manipulation , l'enregistrement auto peut être catastrophique)
donc l'userform est un simple double bouton , un pour enregistrer si on clic dessus et l'autre pour ne pas enregistrer
donc enregistrement semi-auto avec validation de la main de la personne
merci
vsobo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 13h12.


 
 
 
 
Partenaires

Hébergement Web