macros pour transformé date "exotique"

  • Initiateur de la discussion Initiateur de la discussion fredh
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fredh

XLDnaute Occasionnel
[Resolu] macro pour transformé date "exotique"

Bonjour a tous

J'ai un soft qui m'extrait des valeurs d'une base de données.
Seulement voila j'ai une celulle qui a un format de date tres bizarre que j'aimerai changer en quelque chose de convenable.
Ex: En A1 j'ai le texte :
Monday, December 03, 2007 22:39:50
J'aimerai que ca deviennent :
A1 --> 03.12.07
B1 --> 22:39:50

il faudrait que la transformation transforme A1 puis A2 puis A3 etc jusqu'a la fin de Ax

Je suis debutant en VBA mais je ne sais pas du tout dans quel direction chérché.
merci de votre aide.

@+
 

Pièces jointes

Dernière édition:
Re : macros pour transformé date "exotique"

Bonsoir,

J'ose me lancer, avec le risque de dire une bêtise, est-ce que ceci pourrait convenir :


Range("A1").Value = Range("A1")*1


Sans aucune certitude de ma part

Je te laisse essayer

@+
 
Re : macros pour transformé date "exotique"

Re tibo
Ca serait trop simple...

En effet dans la cellule il y a un "texte".
Multiplié un "texte" par 1 est impossible.

Il faudrait que j'arrive a changer le texte en valeur.....

merci quand meme je continue a chercher, j'ai trouver cela :
Code:
 Cells(n, col).TextToColumns Destination:=Cells(n, col), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, [COLOR=red]4[/COLOR]), TrailingMinusNumbers:=True

Mais c'est bien lourd alors je cherche plus simple.

J'ai aussi trouvé ca :
Code:
Cells(n, col).FormulaR1C1 = "03.30.2007"
Mais la valeurs "03.30.2007" est fixe pour toutes mes celulles.....Pas cool

Je continue a chercher mais si bien sur quelqu'un a une macro magique je serait ravi.

RENAUDER ---> je vais etudié ta macro des que j'ai resolue mon petit soucis, peut etre pourais je simplifié la mienne avec tes astuces.

@+
 
Re : macros pour transformé date "exotique"

re,

à tenter

l'exemple que tu donnes ("03.30.2007") doit correspondre au 30 mars 2007.

Essaye de modifier ta macro pour obtenir "30.03.2007"

et logiquement la multiplication de cette chaine alpha par 1 doit se transformer en date.

Facile à dire, peut-être moins à faire, mais je ne saurais malheureusement pas t'apporter mon aide pour la modif de la macro.

@+
 
Re : macros pour transformé date "exotique"

re
J'ai essayer. Malheureusement ca marche pas.
Excel est plus tetu que moi😱
Il veut pas multiplier une "chaine de caractere" par un "nombre".
De meme que aditionné des pommes avec des poires.....

@+
 
Re : macros pour transformé date "exotique"

rere,

Excel a beau être têtu 😉, les forumeurs le sont également.

Je pense tout simplement qu'il faudrait remplacer les . par /

et ensuite multiplier par 1

Si ça marche toujours pas, en formule, il y a la fonction DATEVAL qui fonctionne ainsi :

=DATEVAL("30/03/2007")

qui transforme en date

L'équivalent anglais est DATEVALUE

Il faudrait trouver son équivalent en vba ou utiliser la formule telle quelle dans la macro.

Essaye et tiens nous au courant.

@+
 
Re : macros pour transformé date "exotique"

Re bonsoir à tous

merci Fred pour l'édition, mais ce n'est pas mon écran qu'il faudrait changer, mais mes yeux🙄

pour ton souci, pas tout suivi depuis, mais regarde le code ci dessous si il peut t'aider :

Code:
Dim d As String, dd As Date
d = "30.12.2007"
dd = DateValue(Replace(d, ".", "/"))

bonne soirée
@+
 
Re : macros pour transformé date "exotique"

Si a1 est automatiquement indexé il suffit de definir un format pour la cellule a1=>Format / cellule / date et choisir le modele dans la liste



En b1 il faut inserer => fonction / texte / droite :qui permet d'extraire un nombre choisi de caracteres de la cellule choisie

Pour les cellulus de la colonne a : selectionner a1 ; selectionner le pinceau ;selectionner les cellules que vous desirer definir le meme format que a1

Selectionner la cellule b1 ; pointer le coin en bas a droite ; lorsque une croix noire apparait ; tirer jusqu'au niveau de la derniere cellule de la colonne a desiree
 
Re : macros pour transformé date "exotique"

Bonjour a tous

Ca y est.
Vous aviez raison, il suffit de remplacer les ".", par "/" et de remplir la celulle de cette facons :

MM/DD/YYYY au lieu de dd.mm.yyyy

et excel convertit/affiche cela sous la forme dd.mm.yyyy

comment il intervertit MM/DD en dd.mm je sais pas.....

Voici donc le code et le fichier joint
Code:
t = Split(Range("A" & n), ";")
dat = t(num) & "/" & t((num) + 1) & "/" & t((num) + 2)
[COLOR=seagreen]'t(num) est le champ du split qui contient le mois en toute lettre[/COLOR]
[COLOR=seagreen]'t((num)+1) est le champ du split qui contient le jour en toute lettre[/COLOR]
[COLOR=seagreen]'t((num)+2) est le champ du split qui contient l'année en toute lettre[/COLOR]
[COLOR=seagreen]'donc dat = "December" & "/" & "20" & "/" & "2007"[/COLOR]
[COLOR=seagreen]' ca donne dat = "December/20/2007"[/COLOR]
dat = Replace(dat, ",", "")
dat = Replace(dat, "January", "01")
dat = Replace(dat, "February", "02")
dat = Replace(dat, "March", "03")
dat = Replace(dat, "April", "04")
dat = Replace(dat, "May", "05")
dat = Replace(dat, "June", "06")
dat = Replace(dat, "July", "07")
dat = Replace(dat, "August", "08")
dat = Replace(dat, "September", "09")
dat = Replace(dat, "October", "10")
dat = Replace(dat, "November", "11")
dat = Replace(dat, "December", "12")
Cells(n, col - 2) = dat
[COLOR=seagreen]'ca donne dat = "12/20/07"[/COLOR]
voir fichier joint

Merci a tous d'avoir participé a resoudre ce probleme
Je change le nom du poste par resolu
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour