![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: mars 2005
Messages: 2 625
|
Bonjour
J'ai un souci: Comment en macro VB faire en sorte que la date soit correcte en entrant jj_mm_aa, il se transforme souvent en mm/jj/aa. Voici un exemple dans le fichier joint. Merci pour votre aide. Salutations Michel |
|
|
|
| ANNONCES | |||
|
|
|
|
#3 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: août 2006
Messages: 7 503
|
Bonsoir Michel, PierreJean
une autre solution ci dessous si j'ai bien compris. Code:
Sub test()
Dim mavaleur As String
mavaleur = Range("A1").Value
Range("A1").Value = CDate(Replace(mavaleur, "_", "/"))
End Sub
@+
__________________
Pierrot On se trouve toujours suffisamment intelligent, vu que c'est avec ce que l'on a qu'on juge !!! |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: mars 2005
Messages: 2 625
|
Merci à Pierre-jean et à pierrot93.
Mais j'ai Excel 2003 et dans les 2 cas, on passe de 05_11_06 à 11/05/06 avce la méthode à pierrot93 et avec celle de Pierrejean, on a bien 05/11/06, mais en fait si on prend un format standard, la valeur est celle du 11/05/06, ce qui ne me convient pas. Si quelqu'un à une idée! A demain Michel |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: août 2006
Messages: 7 503
|
Re Michel, PierreJean
je viens de tester avec 2003 ma macro, et ca passe bien, en ayant un format standard au départ ... A suivre... Bonne soirée @+
__________________
Pierrot On se trouve toujours suffisamment intelligent, vu que c'est avec ce que l'on a qu'on juge !!! |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: mars 2005
Messages: 2 625
|
Bonjour,
Merci à Pierre-jean et à Pierrot93 La seconde solution de Pierre jean fonctionne. Pour celle de Pierrot93, en effet, si je met un format standard, cela fonctionne (il me le mettait en date au départ). Ah les formats! Encore merci, je vais prochainement le tester sur une colonne entière. Bonne journée. Michel |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: mars 2005
Messages: 2 625
|
Re bonjour,
Je suis désolé, mais cela ne marche pas chez moi avec un nouveau fichier. Par exemple: Ouvrez une nouvelle feuille. Inscrivez 05_11_06 Faites une macro qui transforme 05_11_06 en 05/11/06 de format jj/mm/aa. Puis reprenez un nouveau classeur vide, taper 05_11_06 et lancer la macro que vous venez d'élaborer. Que se passe t'il? Merci d'avance. Michel |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: août 2006
Messages: 7 503
|
Bonjour Michel, PierreJean
je viens de re re re faire le test et avec ma macro cela fonctionne parfaitement (Excel2000 cet après midi). quelques petites reflexions : Par contre tu dis : Code:
Faites une macro qui transforme 05_11_06 en 05/11/06 de format jj/mm/aa Les cellules de mes nouvelles feuilles Excel ont toutes un format nombre "Standard". Peut être un "problème" de paramètres régionaux. Bon courage @+
__________________
Pierrot On se trouve toujours suffisamment intelligent, vu que c'est avec ce que l'on a qu'on juge !!! |
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: mars 2005
Messages: 2 625
|
Bonjour Pierrot 93
En effet j'ai testé ta macro et cela à l'air de fonctionner (ce matin j'avais l'impression que cela faisait comme avant) . J'ai changer la virgule par le point pour les décimales dans les paramêtres régionaux puis je suis revenu en virgule. Et peux-on le faire sur une colonne entière sans faire de macro compliquée comme dans mon exemple, où il faudrait ajouter 2 colonnes puis les soustraire. Voici un exemple en pièce jointe: Merci d'avance Michel |
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: août 2006
Messages: 7 503
|
Re Michel, PierreJean
ci dessous macro qui boucle sur la colonne A pour modifier les valeur, par contre je vois pas le rapport avec les autres colonnes... Sachant que la colonne B est vide et dans C tu multiplies par 1 !!! Code:
Sub test()
'macro par Pierrot93
Dim l As Integer, MaPlage As Range
Set MaPlage = Range("A1:A" & Range("A65536").End(xlUp).Row)
For l = 1 To MaPlage.Rows.Count
MaPlage(l, 1).Value = CDate(Replace(MaPlage(l, 1).Value, "_", "/"))
Next l
End Sub
@+
__________________
Pierrot On se trouve toujours suffisamment intelligent, vu que c'est avec ce que l'on a qu'on juge !!! |
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: mars 2005
Messages: 2 625
|
A Pierrot93
Merci pour ta réponse rapide. Cela marche très bien. J'ai mis les colonnes de droites pour lancer la macro MJ, il faut se mettre en L1C1 (ou A1). Cela permet de vérifier que les dates sont bien incréméntées de 1. En effet, souvent, il faut multiplier par 1 pour qu'un format de cellule en texte soit pris pour une valeur par Excel. Merci, je pense que la discussion est close. Bonne soirée à tous (et à Pierrejean que l'on rencontre souvent sur le forum). Michel |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| format date -> format texte sans changer les donné | _RV | Forum Excel | 2 | 23/03/2005 10h51 |
| date encore | renaud | Forum Excel Downloads - Archives | 3 | 23/03/2004 09h17 |
| encore un pb de date | Domi | Forum Excel Downloads - Archives | 2 | 02/02/2004 20h45 |
| Convertir une date format texte en format date... | Christian | Forum Excel Downloads - Archives | 2 | 16/12/2003 09h02 |
| encore une convertion en date ! | bouquin martine | Forum Excel Downloads - Archives | 1 | 29/10/2003 15h41 |