Besoin d'aide en vba pour heure
Résolu/Fermé
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
-
3 oct. 2011 à 18:31
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 7 oct. 2011 à 09:44
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 7 oct. 2011 à 09:44
A voir également:
- Besoin d'aide en vba pour heure
- 2go internet = combien d'heure - Forum Opérateurs & Réseaux mobiles
- Incompatibilité de type vba ✓ - Forum Programmation
- 1go internet = combien d'heure - Forum Mobile
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. ✓ - Forum Graphisme
6 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
4 oct. 2011 à 07:19
4 oct. 2011 à 07:19
Bonjour
Je comprends mal ce que tu veux faire
ta macro (est ce de toi?) ne peut fonctionner qu'avec la cellule que tu changes dans la colonne C....
Set vtarget = Intersect(Target, Columns(4)) ne représente qu'une seule cellule et
les lignes suivantes
For Each varea In vtarget
For Each vcell In varea sont donc inutiles
est ce que tu voudrais agir sur une zone de la colonne c (par ex D10:D11)? dans ce cas cette zone est elle toujours la m^me (sinon il ne faut pas opter pour l'événement worksheets_change) ?
ou bien...?
Dis toi bien que nous n'avons que ce que tu écris pour essayer de t'aider
Je comprends mal ce que tu veux faire
ta macro (est ce de toi?) ne peut fonctionner qu'avec la cellule que tu changes dans la colonne C....
Set vtarget = Intersect(Target, Columns(4)) ne représente qu'une seule cellule et
les lignes suivantes
For Each varea In vtarget
For Each vcell In varea sont donc inutiles
est ce que tu voudrais agir sur une zone de la colonne c (par ex D10:D11)? dans ce cas cette zone est elle toujours la m^me (sinon il ne faut pas opter pour l'événement worksheets_change) ?
ou bien...?
Dis toi bien que nous n'avons que ce que tu écris pour essayer de t'aider
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
4 oct. 2011 à 13:12
4 oct. 2011 à 13:12
Bonjour, Bonjour Michel,
Peut-être que c'est ça qui veux faire ?
Quand tu change une cellule de la colonne 4 (D) entre les lignes 9 et 30
La date s'inscrit dans la colonne C de la même ligne.
A+
Peut-être que c'est ça qui veux faire ?
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [D9:D30]) Is Nothing Then Application.EnableEvents = False Target.Offset(0, -1) = Time Application.EnableEvents = True End If End Sub
Quand tu change une cellule de la colonne 4 (D) entre les lignes 9 et 30
La date s'inscrit dans la colonne C de la même ligne.
A+
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
Modifié par lanetmel le 4/10/2011 à 23:38
Modifié par lanetmel le 4/10/2011 à 23:38
Bonjour
Premièrement un immense merci à vous qui essayer de m'aider! J'apprécie énormément. Alors je vais essayer d'être plus claire. Je veux faire un fichier pour mes opérateurs de séchoir à bois. Chaque jour, ils doivent entrer des données
Date / heure/ température/ ....
colonne A B C
J'ai déjà mis que lorsque b>0 la date s'inscrit dans la colonne A, ceci fonctionne (je l'ai pas fait en vba
Mais là je voudrais que l'heure s'inscrive dans la colonne b lorsqu'ils entre des info dans c. C'est à tous les jours durant une période qui varie entre 15 et 45 jours. Je veux que l'heure inscrite reste la même , je ne veux pas que'elle change à la fermeture ou ré-ouverture du document.
encore merci à l'avance
Mélanie
Premièrement un immense merci à vous qui essayer de m'aider! J'apprécie énormément. Alors je vais essayer d'être plus claire. Je veux faire un fichier pour mes opérateurs de séchoir à bois. Chaque jour, ils doivent entrer des données
Date / heure/ température/ ....
colonne A B C
J'ai déjà mis que lorsque b>0 la date s'inscrit dans la colonne A, ceci fonctionne (je l'ai pas fait en vba
Mais là je voudrais que l'heure s'inscrive dans la colonne b lorsqu'ils entre des info dans c. C'est à tous les jours durant une période qui varie entre 15 et 45 jours. Je veux que l'heure inscrite reste la même , je ne veux pas que'elle change à la fermeture ou ré-ouverture du document.
encore merci à l'avance
Mélanie
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
5 oct. 2011 à 08:56
5 oct. 2011 à 08:56
Bonjour,
apparemment.... As tu testé la macro de Lermite?
et que fait on avec la date ?
ps: bonjour Lermite, il y avait bien longtemps que l'on s'était croisé, ça va ?
apparemment.... As tu testé la macro de Lermite?
et que fait on avec la date ?
ps: bonjour Lermite, il y avait bien longtemps que l'on s'était croisé, ça va ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
5 oct. 2011 à 08:58
5 oct. 2011 à 08:58
Bonjour,
Est ce que tu lis les réponses des personnes qui tentent de t'aider?
Essayes tu leurs solutions?
Tout est dit dans la réponse de Lermitte, et les questions posées par Michel (est ce que tu voudrais agir sur une zone de la colonne c (par ex D10:D11)? dans ce cas cette zone est elle toujours la m^me (sinon il ne faut pas opter pour l'événement worksheets_change) ? ou bien...?) sont toujours d'actualité...
Est ce que tu lis les réponses des personnes qui tentent de t'aider?
Essayes tu leurs solutions?
Tout est dit dans la réponse de Lermitte, et les questions posées par Michel (est ce que tu voudrais agir sur une zone de la colonne c (par ex D10:D11)? dans ce cas cette zone est elle toujours la m^me (sinon il ne faut pas opter pour l'événement worksheets_change) ? ou bien...?) sont toujours d'actualité...
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
5 oct. 2011 à 13:18
5 oct. 2011 à 13:18
Bonjour à vous deux,
J'ai essayé la réponse de Lermite mais il ne se passe rien. J'ai inscris la macro dans la feuille ou je veux que cela se passe... La date il n'y a rien à faire avec..la date du jour suivant s'inscrit automatiquement lorsque la date est entrée ça sa fonctionne..
Ex de ce que je veux que ça donne
a b c
1 5 octobre 2011 7:14 120
2 6 octobre 20111 8:22 150
3 7 octobre 2011 8:54 130
donc quand on entre la donnée dans c1 je veux que b1 égale à l'heure qu'il est lors de l'entrée de la donnée. la date du jour se met automatiquement.
Ensuite on ferme le fichier jusqu'au lendemain.
le lendemain quand on entre la donnée dans c2 je veux que b2 égale à l'heure
et je ne veux pas que les données change à l'ouverture ou la fermeture de fichier
encore merci à l'avance
Mélanie
J'ai essayé la réponse de Lermite mais il ne se passe rien. J'ai inscris la macro dans la feuille ou je veux que cela se passe... La date il n'y a rien à faire avec..la date du jour suivant s'inscrit automatiquement lorsque la date est entrée ça sa fonctionne..
Ex de ce que je veux que ça donne
a b c
1 5 octobre 2011 7:14 120
2 6 octobre 20111 8:22 150
3 7 octobre 2011 8:54 130
donc quand on entre la donnée dans c1 je veux que b1 égale à l'heure qu'il est lors de l'entrée de la donnée. la date du jour se met automatiquement.
Ensuite on ferme le fichier jusqu'au lendemain.
le lendemain quand on entre la donnée dans c2 je veux que b2 égale à l'heure
et je ne veux pas que les données change à l'ouverture ou la fermeture de fichier
encore merci à l'avance
Mélanie
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
5 oct. 2011 à 13:35
5 oct. 2011 à 13:35
Encore moi,
en fait, ceci fonctionne
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Set vtarget = Intersect(Target, Columns(4))
If Not (vtarget Is Nothing) Then
For Each varea In vtarget
For Each vcell In varea
If Not (IsEmpty(vcell.Value)) Then
If vcell.Row > 9 Then
Range("C" & vcell.Row).Value = Time
End If
Else
Range("C" & vcell.Row).ClearContents
End If
Next
Next
End If
Application.EnableEvents = True
End Sub
jusqu'à temps que j'active ma macro effacer tout. à ce moment on affiche ce message d'erreur : impossible de modifier une cellule fusionnée et ça me renvoie à ma macro ci-haut et cette ligne :
Range("C" & vcell.Row).Value = Time
est soulignée en jaune et à partir de ce moment ça ne fonctionne plus?
Quelqu'un sait pourquoi?
merci
en fait, ceci fonctionne
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Set vtarget = Intersect(Target, Columns(4))
If Not (vtarget Is Nothing) Then
For Each varea In vtarget
For Each vcell In varea
If Not (IsEmpty(vcell.Value)) Then
If vcell.Row > 9 Then
Range("C" & vcell.Row).Value = Time
End If
Else
Range("C" & vcell.Row).ClearContents
End If
Next
Next
End If
Application.EnableEvents = True
End Sub
jusqu'à temps que j'active ma macro effacer tout. à ce moment on affiche ce message d'erreur : impossible de modifier une cellule fusionnée et ça me renvoie à ma macro ci-haut et cette ligne :
Range("C" & vcell.Row).Value = Time
est soulignée en jaune et à partir de ce moment ça ne fonctionne plus?
Quelqu'un sait pourquoi?
merci
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
5 oct. 2011 à 13:44
5 oct. 2011 à 13:44
Désolé, mais cette macro ne répond pas à tes éclaircissements
Les cellules fusionnées sont à éviter au maximum
Les cellules fusionnées sont à éviter au maximum
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
5 oct. 2011 à 14:36
5 oct. 2011 à 14:36
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
Modifié par lermite222 le 7/10/2011 à 10:14
Modifié par lermite222 le 7/10/2011 à 10:14
Re tous, (Oui, ça va très bien, merci)
J'ai tester le code précédant sur ton classeur et je ne vois pas ce qui cloche ??
L'heure s'inscrit bien dans la colonne C quand tu modifie une cellule colonne D ligne Paire. (10..12..14..etc)
A+
EDIT : Pour ce qui est d'effacer une plage avec cellules fusionnées ( en voyant ton classeur j'admet que c'est indispensable à moins de tout changer) Voir cette astuce
Edit 2 : Ce que tu "raconte" dans tes explications ne correspond pas du tout à ton classeur.
La donnée doit s'inscrire en colonne D et l'heure en colonne C ( et pas b/c comme tu dis)
Suivant ta 2ém explication, il semblerait que tu veuille mettre ta date en colonne B quand ont met une donnée en colonne A et que l'ont AJOUTE l'heure à la date quand ont met une donnée en colonne D ????
Tout ça n'est pas clair du tout.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
J'ai tester le code précédant sur ton classeur et je ne vois pas ce qui cloche ??
L'heure s'inscrit bien dans la colonne C quand tu modifie une cellule colonne D ligne Paire. (10..12..14..etc)
A+
EDIT : Pour ce qui est d'effacer une plage avec cellules fusionnées ( en voyant ton classeur j'admet que c'est indispensable à moins de tout changer) Voir cette astuce
Edit 2 : Ce que tu "raconte" dans tes explications ne correspond pas du tout à ton classeur.
La donnée doit s'inscrire en colonne D et l'heure en colonne C ( et pas b/c comme tu dis)
Suivant ta 2ém explication, il semblerait que tu veuille mettre ta date en colonne B quand ont met une donnée en colonne A et que l'ont AJOUTE l'heure à la date quand ont met une donnée en colonne D ????
Tout ça n'est pas clair du tout.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.