> Tous les forums > Forum Bureautique
 problème Date avec macroSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Gorfous
  Posté le 12/06/2017 @ 09:33 
Aller en bas de la page 
Petit astucien

Bonjour,

J'ai un problème avec ce code qui ne renvoi pas la date du jour mais toujours 6/12/2017

De plus, je voudrais que la cellule active devienne celle de la date après le double clic

je suis sous excel 2003

En vous remerciant

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'Mettre X colonne Sel, la date en colonne Date
If Target.Row / 2 = Int(Target.Row / 2) Then
Target = "X"
Target.Offset(0, 1) = Format(Date, "dd/mm/yyyy")
End If
End Sub



Modifié par Gorfous le 12/06/2017 09:33
Publicité
Debrief
 Posté le 12/06/2017 à 11:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

06/12/2017 c'est la date du jour en format anglais.

C'est toujours la même histoire avec les dates en Excel, entre le format local et le format natif (anglais) dans le code et sur la feuille.

Il faut que tu codes:
Target.Offset(0, 1) = Date

Tu aurais pu passer à coté de l'erreur et ne la voir que plus tard car:
Target.Offset(0, 1) = Format("12/06/2017", "dd/mm/yyyy") -> 06/12/2017
Target.Offset(0, 1) = Format("15/06/2017", "dd/mm/yyyy") -> 15/06/2017
parce que 12 qui est le jour peut aussi être un mois d'où la confusion (ou plutôt la différence d'interprétation Excel) entre les formats natif et local.

Cordialement,
D.

P.S. Concernant ton 2ème point il suffit de coder Target.Offset(0, 1).Select

P.P.S. D'ailleurs concernant la question sur la date, je trouve Excel en l'occurrence bien trop tolérant car sur la fonction Format(), il prend a priori le 1er argument comme une date en format natif ("12/06/2017" est le 06 décembre 2017). Mais si ça ne colle pas ("15/06/2017" ne correspond à rien en format natif puisque 15 n'est pas un n° de mois), il rétro-pédale sur un format local en prenant 15 comme le jour. Ce qui donne donc des résultats incohérents. Sur le "15/06/2017", il devrait générer une erreur. Enfin ce que j'en pense ...



Modifié par Debrief le 12/06/2017 12:03
Gorfous
 Posté le 12/06/2017 à 12:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour Debrief,

Content de te revoir

J'ai modifier le code ainsi

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'Mettre X colonne Sel
Target.Offset(0, 1) = Date
If Target.Row / 2 = Int(Target.Row / 2) Then
Target = "X"
'Target.Offset(0, 1) = Format(Date, "dd/mm/yyyy")
Target.Offset(0, 1) = Format("15/06/2017", "dd/mm/yyyy")
Target.Offset(0, 1).Select
End If
End Sub

Mais ça me donne pour date le 15/06/2017 et non la date du jour 12/06/2017

C'est OK pour le point 2

En te remerciant

Debrief
 Posté le 13/06/2017 à 08:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour Gorfous,

J'ai indiqué les dates "12/06/2107" et "15/06/2017" pour illustrer la différence d'interprétation qu'Excel fait par rapport au format de la date.

Sinon, comme je te l'ai écrit, tu codes:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'Mettre X colonne Sel
If Target.Row / 2 = Int(Target.Row / 2) Then
Target = "X"

Target.Offset(0, 1) = Date 'Ne pas utiliser la fonction Format() ici
Target.Offset(0, 1).Select
End If
End Sub

Comme expliqué ci-dessus, si tu codais Target.Offset(0, 1) = Format(Date, "dd/mm/yyyy") au lieu de Target.Offset(0, 1) = Date , ça te donnerait bien "13/06/2017" car nous sommes aujourd'hui le 13, donc un n° jour qui ne peut pas être interprété comme un n° de mois (il n'y a que 12 mois). Mais ce serait un succès en trompe l’œil car tu retrouverais ton problème initial pendant les 12 premiers jours du mois suivant (juillet en l'occurrence) et ainsi de suite.

Cordialement,
D.



Modifié par Debrief le 13/06/2017 08:31
Gorfous
 Posté le 13/06/2017 à 09:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour Debrief,

Je te remercie sincèrement de l'aide que tu m'apporte et des explications données.

J'avais réussi très tard hier soir avec le code ci-après :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Offset(0, 1) = Date
If Target.Row / 2 = Int(Target.Row / 2) Then
Target = "X"
Target.Offset(0, 1) = Date
Target.Offset(0, 1).Select
End If
Cancel = True
End Sub

Si je te suis, je peux supprimer : Target.Offset(0, 1) = Date

Debrief
 Posté le 13/06/2017 à 09:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Offset(0, 1) = Date
If Target.Row / 2 = Int(Target.Row / 2) Then
Target = "X"
Target.Offset(0, 1) = Date
Target.Offset(0, 1).Select
End If
Cancel = True
End Sub

L'instruction en rouge valorise la date dans la cellule droite sans la condition que tu souhaites qui est que cela se fasse sur les lignes paires. Il faut la supprimer.

D.

Gorfous
 Posté le 13/06/2017 à 13:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Encore merci, merci infiniment pour ce renseignement.

Je corrige immédiatement.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
48,99 €SSD Western Digital Green 480 Go à 48,99 €
Valable jusqu'au 22 Février

Cdiscount fait une promotion sur le SSD Western Digital Green 480 Go qui passe à 54,99 € livré gratuitement. On le trouve ailleurs à partir de 72 €. Ce SSD à mémoires SLC et TLC offre des vitesses de 540 Mo/s en lecture et 465 Mo/s en écriture.


> Voir l'offre
35,90 €Souris gamer Logitech G502 Hero à 35,90 € avec le code GAMER10
Valable jusqu'au 22 Février

Cdiscount propose la souris gamer Logitech G502 SE Hero à 35,99 € grâce au code promo GAMER10. On la trouve ailleurs autour de 50 €. Cette souris dédiée aux joueurs dispose de 11 boutons que vous pouvez programmer et d'un éclairage RVB personnalisable avec jusqu'à 16,8 millions de couleurs.


> Voir l'offre
127,66 €Ecran PC 24 pouces Samsung C24RG50 (incurvé, FHD, 144 Hz, 4 ms) à 127,66 € avec le code GAMER10
Valable jusqu'au 24 Février

Cdiscount fait une promotion sur l'écran PC 24 pouces Samsung C24RG50 qui passe à 127,66 € livré gratuitement avec le code GAMER10 alors qu'on le trouve ailleurs à partir de 185 €. Cet écran incurvé possède une dalle VA FullHD (1920x1080) avec un rafraichissement de 144 Hz et un temps de réponse de 4 ms. Un très bon écran dédié aux joueurs.


> Voir l'offre

Sujets relatifs
Erreur date avec macro/ incapable d'ouvrir ailleurs que chez moi
probleme avec date sur excel
probleme avec macro sur excel 2007
problème avec date dans excel
problème de macro avec excel
Problème de menu avec une macro
Problème de date avec Outloock
petit problème avec ma macro (débutant!!)
probleme de date avec exel (resolu)
Macro...Date changement
Plus de sujets relatifs à problème Date avec macro
 > Tous les forums > Forum Bureautique