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
Membre du Club
 
Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
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
Vieux 04/02/2010, 19h26   #2
Rédacteur/Modérateur
 
Avatar de jacques_jean
 
Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
Par défaut

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 ?
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 20h46   #3
Expert Confirmé
 
Date d'inscription: juillet 2007
Localisation: Loire Atlantique (44)
Âge: 54
Messages: 1 863
Par défaut

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+
__________________
La qualité et la précision de la réponse sont proportionnelles à celles de la question.
Gorfael est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/02/2010, 10h11   #4
Membre du Club
 
Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
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 :
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
Vieux 05/02/2010, 12h24   #5
Rédacteur
 
Avatar de Ormonth
 
Nom : Didier GONARD
Date d'inscription: février 2008
Localisation: Nantes
Messages: 550
Par défaut

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
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/02/2010, 14h34   #6
Rédacteur/Modérateur
 
Avatar de jacques_jean
 
Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
Par défaut

Déjà dans votre exemple de code, il y a une petite incohérence :


Code :
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 >= à ?
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/02/2010, 14h59   #7
Rédacteur
 
Avatar de Ormonth
 
Nom : Didier GONARD
Date d'inscription: février 2008
Localisation: Nantes
Messages: 550
Par défaut

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
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/02/2010, 15h41   #8
Rédacteur/Modérateur
 
Avatar de jacques_jean
 
Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
Par défaut

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.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/02/2010, 10h31   #9
Membre du Club
 
Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
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
Vieux 06/02/2010, 10h42   #10
Rédacteur/Modérateur
 
Avatar de jacques_jean
 
Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
Par défaut

Bonjour,

Code :
mh = Format(Now, "hh:mm:ss")
 
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/02/2010, 15h23   #11
Membre du Club
 
Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
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
Vieux 08/02/2010, 17h35   #12
Rédacteur/Modérateur
 
Avatar de jacques_jean
 
Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
Par défaut

Bonsoir,

Cela fonctionne si les cellules sont formatées en texte.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/02/2010, 06h20   #13
Expert Confirmé
 
Date d'inscription: juillet 2007
Localisation: Loire Atlantique (44)
Âge: 54
Messages: 1 863
Par défaut

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+
__________________
La qualité et la précision de la réponse sont proportionnelles à celles de la question.
Gorfael est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/02/2010, 14h36   #14
Rédacteur/Modérateur
 
Avatar de jacques_jean
 
Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
Par défaut

Bonjour Gorfael,

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

Code :
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.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/02/2010, 18h00   #15
Membre du Club
 
Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
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
Vieux 11/02/2010, 18h57   #16
Rédacteur/Modérateur
 
Avatar de jacques_jean
 
Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
Par défaut

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.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/02/2010, 16h18   #17
Membre du Club
 
Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
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 :
Dim temps
 
Private Sub Worksheet_Activate()
Hon
Private Sub Worksheet_Deactivate()
Hoff
End Sub
Code :
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 :
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
Vieux 13/02/2010, 19h28   #18
Rédacteur/Modérateur
 
Avatar de jacques_jean
 
Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
Par défaut

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.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/02/2010, 16h28   #19
Rédacteur/Modérateur
 
Avatar de jacques_jean
 
Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
Par défaut

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".
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/02/2010, 10h46   #20
Membre du Club
 
Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
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
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 06h38.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.