[Catégorie modifiée VB6 -> VBA] Impossible de changer le format d'une cellule

Messages postés
7
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
22 février 2013
- - Dernière réponse : us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
- 25 févr. 2013 à 20:36
Bonjour,

Je fais face à un problème assez incompréhensible: il m'est possible de changer le format de certaines cellules d'une même colonne, alors que pour d'autres cellules c'est impossible.

j'ai par exemple dans ma colonne:
28/02/2011 06:13
28/02/2011 23:38
01-FEB-2012 10:57
01-FEB-2012 15:21

J'aimerais convertir toute les cellules sous le format dd/m/yyyy.
Donc je sélectionne ces 4 cellules et les mets sous le format dd/m/yyyy, et voilà le résultat :
28/2/11
28/2/11
01-FEB-2012 10:57
01-FEB-2012 15:21

Les 2 dernières cellules ne changent pas de format !

Si quelqu'un sait pourquoi, ça serait un grand bonheur... merci d'avance !

David Lanchos
Afficher la suite 

9 réponses

Messages postés
7
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
22 février 2013
0
Merci
Je précise que j'ai déjà tenté de bien formater par le code VBA la colonne en question, en utilisant NumberFormat ou encore Format( ,"dd/m/yyyy"), mais sans effet...

David Lanchos
Commenter la réponse de canardav77
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
0
Merci
Bonjour,
essaye ceci (exemple sur cellule A1) :
Range("A1").NumberFormat = "dd/mm/yyyy"
Range("A41").Value = Replace(Range("A1").Text, "-", "/")

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
7
0
Merci
Bonjour,

Tient ! ucfoutu tu ne râles plus pour la mauvaise section ! Bon, je reprend le relai : Pense à mettre ta question dans la rubrique VBA et non dans Visual Basic 6 !!

Ensuite, tu n'es pas dans le bon format régional... Tu as ton Excel en Anglais, au lieu du Français... C'est surement là ton problème.

En anglais : le deuxième mois, c'est "February", d'où FEB... En français, le mois en raccourci c'est "févr.". Donc en gros, tu as des dates sous forme de "lettre" avec les raccourci anglais, au lieu de les avoir en raccourci français. D'où la confusion pour ton Excel qui lui marche en français.
Le problème ne se pose pour les dates codés en nombre, trés logiquement car tu peux les définir comme tu veux.

Pour t'en convaincre, remplace la date "01-FEB-2012" par "1-févr.-2012"

Amicalement,
Us.
Commenter la réponse de us_30
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Salut

Parce que FEB n'est pas reconnu comme un nom de mois valide puisque anglais.
La cellule est donc un simple texte auquel le formatage ne s'adresse pas.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
0
Merci
Bonjour, jack,
et pourtant : même ainsi (avec FEB) mon code fonctionnerait
Testé.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
7
0
Merci
pas chez moi. testé aussi.
Commenter la réponse de us_30
Messages postés
7
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
22 février 2013
0
Merci
Bonjour et merci à vous !

Au final j'ai réglé le problème grâce à vos idées.
J'ai passé les chaines de caractères "FEV" en "fév" par exemple.

C'est un peu ghetto mais bon !

David Lanchos
Commenter la réponse de canardav77
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
0
Merci
J'ai déjà rencontré le même problème ici.
Tu devrais avoir le même problème avec les mois août et décembre.
C'est que ces 3 mois contiennent des accents en français et le logiciel d'où proviennent les données ne les comprend pas...

J'ai réglé le problème avec cette macro (à modifier selon les besoins)
nbLignes = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
        For I = 2 To nbLignes
            If InStr(1, UCase(ActiveSheet.Range("A" & I)), "AOU") > 0 Then
                ActiveSheet.Range("A" & I) = Right(ActiveSheet.Range("A" & I), 2) + 2000 & "-" & "08" & "-" & Left(ActiveSheet.Range("A" & I), 2)
                ActiveSheet.Range("A" & I).NumberFormat = "dd-mmm-yy"
            ElseIf InStr(1, UCase(Range("A" & I)), "FEV") > 0 Then
                ActiveSheet.Range("A" & I) = Right(ActiveSheet.Range("A" & I), 2) + 2000 & "-" & "02" & "-" & Left(ActiveSheet.Range("A" & I), 2)
                ActiveSheet.Range("A" & I).NumberFormat = "dd-mmm-yy"
            ElseIf InStr(1, UCase(Range("A" & I)), "DEC") > 0 Then
                ActiveSheet.Range("A" & I) = Right(ActiveSheet.Range("A" & I), 2) + 2000 & "-" & "12" & "-" & Left(ActiveSheet.Range("A" & I), 2)
                ActiveSheet.Range("A" & I).NumberFormat = "dd-mmm-yy"
            End If
        Next


Note que mon format de dates a un "-" comme séparateur.
Les dates apparaissent donc dans la barre de formule ainsi: 2013-02-22

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
7
0
Merci
cqfd
Commenter la réponse de us_30