Format Data suite à une macro

Le
Olivier77
Bonjour à tous,

j'ai créé une macro de mise en forme pour une extraction SAP.
Tout se passe bien sauf que le champ dates est de format jj.mm.aaaa
je fait un "remplacer . par /" dans ma macro, et j'applique un format date
jj/mm/aaaa.
Le problème, c'est que Excel considère le résultat comme du texte, je ne
peux pas faire de formule sur ce champ.
Si j'édite la cellule et que je valide, il reconnait la date, et tout se
passe bien.
Je peux aussi faire un "collage spécial valeur "0" addition" sur toute la
colonne, et ça fonctionne. Mais si je met cette opération dans la macro, ça
ne fonctionne pas non plus.
Bref, comment modifier ma macro pour que mon champ date soit reconnu comme
tel, et non comme du texte?

Merci de votre aide

Cordialement
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #18464001
Salut Olivier

Pourquoi ne mettrais tu pas cette ligne de code :

Selection.NumberFormat = "mm/dd/yyyy"

Celà devrait faire

Dis moi !!!!
Olivier77
Le #18464851
Salut

c'est déjà ce que je fais quand je dis que j'applique un format date.
mais apparement, il ne comprend pas que c'est une date, mais du texte...car
si j'édite la cellule et que je valide, ça fonctionne...

cordialement

"FFO" a écrit :

Salut Olivier

Pourquoi ne mettrais tu pas cette ligne de code :

Selection.NumberFormat = "mm/dd/yyyy"

Celà devrait faire

Dis moi !!!!



Ellimac
Le #18465901
Bonjour,

A priori les dates restent à gauche mais sont tout de même considérées comme
dates, les calculs fonctionnent.
Tu peux éventuellement pour faire plus propre rajouter ceci après une
sélection de ta plage dates :

For Each c In Selection
SendKeys "{f2}~", True
Next

Camille

"Olivier77" news:
Bonjour à tous,

j'ai créé une macro de mise en forme pour une extraction SAP.
Tout se passe bien sauf que le champ dates est de format jj.mm.aaaa
je fait un "remplacer . par /" dans ma macro, et j'applique un format date
jj/mm/aaaa.
Le problème, c'est que Excel considère le résultat comme du texte, je ne
peux pas faire de formule sur ce champ.
Si j'édite la cellule et que je valide, il reconnait la date, et tout se
passe bien.
Je peux aussi faire un "collage spécial valeur "0" addition" sur toute la
colonne, et ça fonctionne. Mais si je met cette opération dans la macro,
ça
ne fonctionne pas non plus.
Bref, comment modifier ma macro pour que mon champ date soit reconnu comme
tel, et non comme du texte?

Merci de votre aide

Cordialement





Olivier77
Le #18466141
Bonjour,

les dates restent à gauche, et bien sûr, les formules ne fonctionnent pas,
sinon ça ne poserait pas de pb.

Sinon ton astuce fonctionne bien, le seul problème, c'est que j'ai 10 000
lignes à mon fichier, donc ça prend 5min pour que la macro fasse "F2" dans
toute les colonnes.

Si tu as une solution plus rapide.

Merci encore de ton aide.

Olivier

"Ellimac" a écrit :

Bonjour,

A priori les dates restent à gauche mais sont tout de même considérées comme
dates, les calculs fonctionnent.
Tu peux éventuellement pour faire plus propre rajouter ceci après une
sélection de ta plage dates :

For Each c In Selection
SendKeys "{f2}~", True
Next

Camille


Ellimac
Le #18466581
Re,

Par formule, en supposant qu'une nouvelle colonne est insérée à droite de
tes dates :

der = Range("a65000").End(xlUp).Row
ActiveCell = _
"ÚTE(RIGHT(RC[-1],4),MID(RC[-1],4,2),LEFT(RC[-1],2))"
ActiveCell.AutoFill Destination:=Range("B2:B" & der)
Prévoir ensuite un Copier Collage spécial valeur de cette nouvelle colonne
et suppression de l'ancienne colonne dates.

Camille

"Olivier77" news:
Bonjour,

les dates restent à gauche, et bien sûr, les formules ne fonctionnent pas,
sinon ça ne poserait pas de pb.

Sinon ton astuce fonctionne bien, le seul problème, c'est que j'ai 10 000
lignes à mon fichier, donc ça prend 5min pour que la macro fasse "F2" dans
toute les colonnes.

Si tu as une solution plus rapide.

Merci encore de ton aide.

Olivier

"Ellimac" a écrit :

Bonjour,

A priori les dates restent à gauche mais sont tout de même considérées
comme
dates, les calculs fonctionnent.
Tu peux éventuellement pour faire plus propre rajouter ceci après une
sélection de ta plage dates :

For Each c In Selection
SendKeys "{f2}~", True
Next

Camille





michdenis
Le #18466571
As-tu essayé quelque chose comme :

Tu adaptes le nom de la feuille et de la plage de cellules
'------------------------------
Sub test()
Dim Rg As Range
With Feuil1
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByColumns
.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
SearchOrder:=xlByColumns
.NumberFormat = "dd/MM/YYYY" 'Ou autre format
End With
End With
End Sub
'------------------------------



"Olivier77" discussion :
Bonjour à tous,

j'ai créé une macro de mise en forme pour une extraction SAP.
Tout se passe bien sauf que le champ dates est de format jj.mm.aaaa
je fait un "remplacer . par /" dans ma macro, et j'applique un format date
jj/mm/aaaa.
Le problème, c'est que Excel considère le résultat comme du texte, je ne
peux pas faire de formule sur ce champ.
Si j'édite la cellule et que je valide, il reconnait la date, et tout se
passe bien.
Je peux aussi faire un "collage spécial valeur "0" addition" sur toute la
colonne, et ça fonctionne. Mais si je met cette opération dans la macro, ça
ne fonctionne pas non plus.
Bref, comment modifier ma macro pour que mon champ date soit reconnu comme
tel, et non comme du texte?

Merci de votre aide

Cordialement
Olivier77
Le #18486391
Bonjour,

j'ai essayé, et ça me pose exactement le même problème de date centré à
gauche, et non reconnue comme date par les formules...

merci quand même...

Olivier



"michdenis" a écrit :

As-tu essayé quelque chose comme :

Tu adaptes le nom de la feuille et de la plage de cellules
'------------------------------
Sub test()
Dim Rg As Range
With Feuil1
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByColumns
.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
SearchOrder:=xlByColumns
.NumberFormat = "dd/MM/YYYY" 'Ou autre format
End With
End With
End Sub
'------------------------------


Olivier77
Le #18486731
Merci, j'avais essayé comme ça, et ça fonctionne bien.
il faut juste passer par la création et la suppression d'une colonne supp.
Juste, je ne comprend pas pourquoi je n'arrive pas à mettre directement au
bon format ma colonne...

Merci.

"Ellimac" a écrit :

Re,

Par formule, en supposant qu'une nouvelle colonne est insérée à droite de
tes dates :

der = Range("a65000").End(xlUp).Row
ActiveCell = _
"ÚTE(RIGHT(RC[-1],4),MID(RC[-1],4,2),LEFT(RC[-1],2))"
ActiveCell.AutoFill Destination:=Range("B2:B" & der)
Prévoir ensuite un Copier Collage spécial valeur de cette nouvelle colonne
et suppression de l'ancienne colonne dates.

Camille


michdenis
Le #18487381
Si c'est possible, publie juste une petite quantité de data
de tes dates sur cjoint.com et donne-nous ici l'adresse
où se trouve ton fichier.
Publicité
Poster une réponse
Anonyme