Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Convertir en VBA

13 réponses
Avatar
François B
bonjour,

j'ai un phénomène assez étrange : voulant convertir une colonne dans
laquelle j'ai des dates au format US (MM/JJ/AAAA) vers un format bien de chez
moi (...) (JJ/MM/AAAA) j'utilise la fonction convertir (données - convertir)
sauf que je ne redistribue pas sur d'autres colonnes je reste sur celle en
cours.

mon problème : cela fonctionne parfaitement dés lors que je passe par les
menus et plus du tout dés que je transcris cette opération en VBA ...

code (généré par XL) :

Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False,
Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False,
FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True

quelqu'un a t'il une idée ??

par avance un grand merci !!!!!

cdt,

François

10 réponses

1 2
Avatar
MichDenis
Tu adaptes le nom de la feuille :

Sub test()
With Worksheets("Feuil1")
With .Columns("J:J")
.TextToColumns Destination:=Range("J1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True, _
Semicolon:úlse, Comma:úlse, _
Space:úlse, Other:úlse, _
FieldInfo:=Array(1, 3), TrailingMinusNumbers:=True
End With
End With
End Sub



"François B" a écrit dans le message de news:

bonjour,

j'ai un phénomène assez étrange : voulant convertir une colonne dans
laquelle j'ai des dates au format US (MM/JJ/AAAA) vers un format bien de chez
moi (...) (JJ/MM/AAAA) j'utilise la fonction convertir (données - convertir)
sauf que je ne redistribue pas sur d'autres colonnes je reste sur celle en
cours.

mon problème : cela fonctionne parfaitement dés lors que je passe par les
menus et plus du tout dés que je transcris cette opération en VBA ...

code (généré par XL) :

Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:=True, _
Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse,
FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True

quelqu'un a t'il une idée ??

par avance un grand merci !!!!!

cdt,

François
Avatar
Daniel
Bonjour.
On dirait une erreur de l'enregistreur...
Essaie avec :
FieldInfo _
:=Array(1, 2), TrailingMinusNumbers:=True
Cordialement.
Daniel
"François B" a écrit dans le message de
news:
bonjour,

j'ai un phénomène assez étrange : voulant convertir une colonne dans
laquelle j'ai des dates au format US (MM/JJ/AAAA) vers un format bien de
chez
moi (...) (JJ/MM/AAAA) j'utilise la fonction convertir (données -
convertir)
sauf que je ne redistribue pas sur d'autres colonnes je reste sur celle en
cours.

mon problème : cela fonctionne parfaitement dés lors que je passe par les
menus et plus du tout dés que je transcris cette opération en VBA ...

code (généré par XL) :

Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"),
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:=True, _
Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse,
FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True

quelqu'un a t'il une idée ??

par avance un grand merci !!!!!

cdt,

François




Avatar
François B
bonjour,

merci pour votre réponse. je viens de tester et malheureusement cela ne
fonctionne pas ...

peut être est-ce dû au format des cellules ... la macro fonctionne (même
avant la dernière modif ...) quand je suis sur une cellule qui contient
quelque chose qu'il ne reconnait pas >>> 02/16/2007 où le mois 16 n'est
pas compris...

par contre, elle ne marche toujours pas si je suis sur 02/08/2007 où la
réelle date n'est pas le 2 août mais le 8 février ...

Par contre : en passant par le menu, il converti correctement cette date
pour afficher : 08/02/2007 ....

bref ...

en tout cas merci pour l'aide apportée !!

cdt,

François


Tu adaptes le nom de la feuille :

Sub test()
With Worksheets("Feuil1")
With .Columns("J:J")
.TextToColumns Destination:=Range("J1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True, _
Semicolon:úlse, Comma:úlse, _
Space:úlse, Other:úlse, _
FieldInfo:=Array(1, 3), TrailingMinusNumbers:=True
End With
End With
End Sub



"François B" a écrit dans le message de news:

bonjour,

j'ai un phénomène assez étrange : voulant convertir une colonne dans
laquelle j'ai des dates au format US (MM/JJ/AAAA) vers un format bien de chez
moi (...) (JJ/MM/AAAA) j'utilise la fonction convertir (données - convertir)
sauf que je ne redistribue pas sur d'autres colonnes je reste sur celle en
cours.

mon problème : cela fonctionne parfaitement dés lors que je passe par les
menus et plus du tout dés que je transcris cette opération en VBA ...

code (généré par XL) :

Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:=True, _
Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse,
FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True

quelqu'un a t'il une idée ??

par avance un grand merci !!!!!

cdt,

François






Avatar
François B
bonjour !

en effet, cela semble fonctionner ... sauf que le résultat obtenu est au
format "texte" (peut être est-ce dû au format de départ ?)

ce qui est surprenant, c'est que si je change le format pour un format date
de type jj/mm/aaaa l'affichage reste sur: 12/1/2007 et ne me semble pas être
reconnu comme une date ... en fait il faut alors que je fasse un F2 pour
"valider" le contenu ...

bref bref ... j'ai peur que le problème vienne du fichier initial et d'un
format de cellule plus que louche ...

en tout cas merci encore !!

cdt,

François


Bonjour.
On dirait une erreur de l'enregistreur...
Essaie avec :
FieldInfo _
:=Array(1, 2), TrailingMinusNumbers:=True
Cordialement.
Daniel
"François B" a écrit dans le message de
news:
bonjour,

j'ai un phénomène assez étrange : voulant convertir une colonne dans
laquelle j'ai des dates au format US (MM/JJ/AAAA) vers un format bien de
chez
moi (...) (JJ/MM/AAAA) j'utilise la fonction convertir (données -
convertir)
sauf que je ne redistribue pas sur d'autres colonnes je reste sur celle en
cours.

mon problème : cela fonctionne parfaitement dés lors que je passe par les
menus et plus du tout dés que je transcris cette opération en VBA ...

code (généré par XL) :

Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"),
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:=True, _
Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse,
FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True

quelqu'un a t'il une idée ??

par avance un grand merci !!!!!

cdt,

François









Avatar
Daniel
Si tu le veux tu mettre ton classeur sur www.cjoint.com et poster l'adresse
générée.
Daniel
"François B" a écrit dans le message de
news:
bonjour !

en effet, cela semble fonctionner ... sauf que le résultat obtenu est au
format "texte" (peut être est-ce dû au format de départ ?)

ce qui est surprenant, c'est que si je change le format pour un format
date
de type jj/mm/aaaa l'affichage reste sur: 12/1/2007 et ne me semble pas
être
reconnu comme une date ... en fait il faut alors que je fasse un F2 pour
"valider" le contenu ...

bref bref ... j'ai peur que le problème vienne du fichier initial et d'un
format de cellule plus que louche ...

en tout cas merci encore !!

cdt,

François


Bonjour.
On dirait une erreur de l'enregistreur...
Essaie avec :
FieldInfo _
:=Array(1, 2), TrailingMinusNumbers:=True
Cordialement.
Daniel
"François B" a écrit dans le message
de
news:
bonjour,

j'ai un phénomène assez étrange : voulant convertir une colonne dans
laquelle j'ai des dates au format US (MM/JJ/AAAA) vers un format bien
de
chez
moi (...) (JJ/MM/AAAA) j'utilise la fonction convertir (données -
convertir)
sauf que je ne redistribue pas sur d'autres colonnes je reste sur celle
en
cours.

mon problème : cela fonctionne parfaitement dés lors que je passe par
les
menus et plus du tout dés que je transcris cette opération en VBA ...

code (généré par XL) :

Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"),
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:=True, _
Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse,
FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True

quelqu'un a t'il une idée ??

par avance un grand merci !!!!!

cdt,

François











Avatar
François B
encore moi ...

après plusieurs tests ...

cette manip fonctionne sur une cellule contenant quelque chose qu'il
reconnait comme une date exemple : 02/09/2007 qu'il remet correctement en
9/2/2007 mais en format texte ... se pose alors le problème de la
"conversion" en format date comme évoqué précédement ...

par contre, cela ne fonctionne pas pour : 02/26/2007 où là, le "array(1,3)
fonctionne parfaitement et sans problème de format ...

cdt,

François


Bonjour.
On dirait une erreur de l'enregistreur...
Essaie avec :
FieldInfo _
:=Array(1, 2), TrailingMinusNumbers:=True
Cordialement.
Daniel
"François B" a écrit dans le message de
news:
bonjour,

j'ai un phénomène assez étrange : voulant convertir une colonne dans
laquelle j'ai des dates au format US (MM/JJ/AAAA) vers un format bien de
chez
moi (...) (JJ/MM/AAAA) j'utilise la fonction convertir (données -
convertir)
sauf que je ne redistribue pas sur d'autres colonnes je reste sur celle en
cours.

mon problème : cela fonctionne parfaitement dés lors que je passe par les
menus et plus du tout dés que je transcris cette opération en VBA ...

code (généré par XL) :

Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"),
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:=True, _
Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse,
FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True

quelqu'un a t'il une idée ??

par avance un grand merci !!!!!

cdt,

François









Avatar
François B
voilà :

http://cjoint.com/?djoMQ2Jm58

encore merci !

cdt,

François


Si tu le veux tu mettre ton classeur sur www.cjoint.com et poster l'adresse
générée.
Daniel
"François B" a écrit dans le message de
news:
bonjour !

en effet, cela semble fonctionner ... sauf que le résultat obtenu est au
format "texte" (peut être est-ce dû au format de départ ?)

ce qui est surprenant, c'est que si je change le format pour un format
date
de type jj/mm/aaaa l'affichage reste sur: 12/1/2007 et ne me semble pas
être
reconnu comme une date ... en fait il faut alors que je fasse un F2 pour
"valider" le contenu ...

bref bref ... j'ai peur que le problème vienne du fichier initial et d'un
format de cellule plus que louche ...

en tout cas merci encore !!

cdt,

François


Bonjour.
On dirait une erreur de l'enregistreur...
Essaie avec :
FieldInfo _
:=Array(1, 2), TrailingMinusNumbers:=True
Cordialement.
Daniel
"François B" a écrit dans le message
de
news:
bonjour,

j'ai un phénomène assez étrange : voulant convertir une colonne dans
laquelle j'ai des dates au format US (MM/JJ/AAAA) vers un format bien
de
chez
moi (...) (JJ/MM/AAAA) j'utilise la fonction convertir (données -
convertir)
sauf que je ne redistribue pas sur d'autres colonnes je reste sur celle
en
cours.

mon problème : cela fonctionne parfaitement dés lors que je passe par
les
menus et plus du tout dés que je transcris cette opération en VBA ...

code (généré par XL) :

Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"),
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:=True, _
Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse,
FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True

quelqu'un a t'il une idée ??

par avance un grand merci !!!!!

cdt,

François
















Avatar
isabelle
bonjour Francois,

peut être avec une autre approche :

Sub test()
mois = Mid(Range("A1"), 1, 2)
jour = Mid(Range("A1"), 4, 2)
année = Mid(Range("A1"), 7, 4)
dt = CDate(année & "/" & mois & "/" & jour)
End Sub

isabelle

encore moi ...

après plusieurs tests ...

cette manip fonctionne sur une cellule contenant quelque chose qu'il
reconnait comme une date exemple : 02/09/2007 qu'il remet correctement en
9/2/2007 mais en format texte ... se pose alors le problème de la
"conversion" en format date comme évoqué précédement ...

par contre, cela ne fonctionne pas pour : 02/26/2007 où là, le "array(1,3)
fonctionne parfaitement et sans problème de format ...

cdt,

François



Bonjour.
On dirait une erreur de l'enregistreur...
Essaie avec :
FieldInfo _
:=Array(1, 2), TrailingMinusNumbers:=True
Cordialement.
Daniel
"François B" a écrit dans le message de
news:

bonjour,

j'ai un phénomène assez étrange : voulant convertir une colonne dans
laquelle j'ai des dates au format US (MM/JJ/AAAA) vers un format bien de
chez
moi (...) (JJ/MM/AAAA) j'utilise la fonction convertir (données -
convertir)
sauf que je ne redistribue pas sur d'autres colonnes je reste sur celle en
cours.

mon problème : cela fonctionne parfaitement dés lors que je passe par les
menus et plus du tout dés que je transcris cette opération en VBA ...

code (généré par XL) :

Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"),
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:=True, _
Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse,
FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True

quelqu'un a t'il une idée ??

par avance un grand merci !!!!!

cdt,

François











Avatar
Modeste
Bonsour® François B avec ferveur ;o))) vous nous disiez :

j'ai un phénomène assez étrange : voulant convertir une colonne dans
laquelle j'ai des dates au format US (MM/JJ/AAAA) vers un format bien de chez
moi (...) (JJ/MM/AAAA) j'utilise la fonction convertir (données - convertir)
sauf que je ne redistribue pas sur d'autres colonnes je reste sur celle en
cours.

mon problème : cela fonctionne parfaitement dés lors que je passe par les
menus et plus du tout dés que je transcris cette opération en VBA ...


quelqu'un a t'il une idée ??


sous XP il faut ajouter l'option Local=true
code (généré par XL) :
Columns("J:J").Select

Selection.TextToColumns Destination:=Range("J1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse, _
Tab:=True, Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse, _
FieldInfo :=Array(1, 3), TrailingMinusNumbers:=True, Local=True

--
--
@+
;o)))

Avatar
François B
bonjour Isabelle,

cette méthode fonctionne en effet !

même si elle n'est pas dans la phylosophie de départ ...

merci encore !

cdt,

François


bonjour Francois,

peut être avec une autre approche :

Sub test()
mois = Mid(Range("A1"), 1, 2)
jour = Mid(Range("A1"), 4, 2)
année = Mid(Range("A1"), 7, 4)
dt = CDate(année & "/" & mois & "/" & jour)
End Sub

isabelle

encore moi ...

après plusieurs tests ...

cette manip fonctionne sur une cellule contenant quelque chose qu'il
reconnait comme une date exemple : 02/09/2007 qu'il remet correctement en
9/2/2007 mais en format texte ... se pose alors le problème de la
"conversion" en format date comme évoqué précédement ...

par contre, cela ne fonctionne pas pour : 02/26/2007 où là, le "array(1,3)
fonctionne parfaitement et sans problème de format ...

cdt,

François



Bonjour.
On dirait une erreur de l'enregistreur...
Essaie avec :
FieldInfo _
:=Array(1, 2), TrailingMinusNumbers:=True
Cordialement.
Daniel
"François B" a écrit dans le message de
news:

bonjour,

j'ai un phénomène assez étrange : voulant convertir une colonne dans
laquelle j'ai des dates au format US (MM/JJ/AAAA) vers un format bien de
chez
moi (...) (JJ/MM/AAAA) j'utilise la fonction convertir (données -
convertir)
sauf que je ne redistribue pas sur d'autres colonnes je reste sur celle en
cours.

mon problème : cela fonctionne parfaitement dés lors que je passe par les
menus et plus du tout dés que je transcris cette opération en VBA ...

code (généré par XL) :

Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"),
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:=True, _
Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse,
FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True

quelqu'un a t'il une idée ??

par avance un grand merci !!!!!

cdt,

François














1 2