|
Publicité | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
|
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 |
|
|
|
|
|
#2 |
![]() Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
|
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.
|
|
|
|
|
|
#3 |
|
Expert Confirmé
![]() Date d'inscription: juillet 2007
Localisation: Loire Atlantique (44)
Âge: 54
Messages: 1 863
|
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. |
|
|
|
|
|
#4 |
|
Membre du Club
![]() Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
|
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 merci |
|
|
|
|
|
#5 |
![]() Nom : Didier GONARD
Date d'inscription: février 2008
Localisation: Nantes
Messages: 550
|
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 Tutoriels :
N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
|
|
#6 | ||
![]() Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
|
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 D'autre part, vous avez écrit à l'origine : Citation:
Citation:
ou : si l'heure système est >= à ?
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
|
||
|
|
|
|
|
#7 | |
![]() Nom : Didier GONARD
Date d'inscription: février 2008
Localisation: Nantes
Messages: 550
|
Bonjour Jacques Jean,
Citation:
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 Tutoriels :
N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
|
|
|
#8 |
![]() Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
|
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.
|
|
|
|
|
|
#9 |
|
Membre du Club
![]() Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
|
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 |
|
|
|
|
|
#10 |
![]() Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
|
Bonjour,
Code :
mh = Format(Now, "hh:mm:ss")
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
|
|
|
|
|
|
#11 |
|
Membre du Club
![]() Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
|
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 |
|
|
|
|
|
#12 |
![]() Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
|
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.
|
|
|
|
|
|
#13 |
|
Expert Confirmé
![]() Date d'inscription: juillet 2007
Localisation: Loire Atlantique (44)
Âge: 54
Messages: 1 863
|
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. |
|
|
|
|
|
#14 |
![]() Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
|
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 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.
|
|
|
|
|
|
#15 |
|
Membre du Club
![]() Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
|
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 |
|
|
|
|
|
#16 |
![]() Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
|
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.
|
|
|
|
|
|
#17 |
|
Membre du Club
![]() Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
|
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 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 |
|
|
|
|
|
#18 |
![]() Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
|
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.
|
|
|
|
|
|
#19 |
![]() Nom : Jacques THERY
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 65
Messages: 2 350
|
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.
|
|
|
|
|
|
#20 |
|
Membre du Club
![]() Nom : VINCENT SOBOLEWSKI
Date d'inscription: octobre 2009
Messages: 84
|
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 |
|
|
|
|
|
![]() |
||
[XL-2002] si heure système = heure dans cellule alors
|
||
| Outils de la discussion | |
|
|