Copie de Texte depuis Html : converti en Date!

  • Initiateur de la discussion Mullinski
  • Date de début
M

Mullinski

Guest
Bonjour à tous,

J'espère que mon petit problème n'est qu'une broutille pour la majorité d'entre vous, à moins que...

Version d'Excel utilisée :
Excel 2000 (9.0.3821 SR-1) sur XP SP2

Problème rencontré :
Lorsque je copie une valeur de texte (ex : 4-6) depuis une case d'un tableau html, et que par la suite je colle cette valeur dans une cellule de feuille Excel à l'aide de la commande Coller, je retrouve systématiquement dans ma cellule de destination la valeur 04-juin affichée, tandis que dans la barre de formule de la cellule est affichée la date 04/06/2006 :( .

J'ai bien compris que Excel converti comme un grand le 4-6 en date, sauf que ce n'est en aucun cas une date et que je souhaite seulement retrouver le texte 4-6 dans ma cellule :angry: ...

Avant de coller le texte dans la cellule, j'ai bien mis en forme celle-ci avec la valeur Texte (Format de Cellule->Nombre->Texte).

Pourtant, lorsqu'après avoir collé le texte, je retourne dans Format de Cellule->Nombre, celui-ci à changer et a été modifié en format Personnalisé : jj-mmm...

Bien évidemment, si je re-sélectionne le format Texte, Excel n'affiche plus 04-juin mais 38872 qui est le numéro correspond à la date du 04/06/06 dans le code de date et d'heure d'Excel :evil: ...

Je suis bien conscient que dans ce cas précis, la commande Collage spécial en tant que texte pourrait résoudre le problème. Sauf qu'en pratique, je copie des tableaux entier et qu'en utilisant cette dernière méthode, je me retrouverais avec une seule colonne de destination qui contiendrait le contenu de toutes les colonnes sources, séparées par un espace :( . Et je ne peux en aucun cas retravailler ce résultat en essayant de retrouver et de redistribuer mes colonnes : certains textes à l'intérieur des colonnes html contiennent eux-même des espaces. Impossible donc de retrouver le contenu de chaque colonne source une fois les données collées :unsure: ...

Et pour ceux qui pense que c'est mon tableau html qui est 'défectueux' je précise qu'il s'agit bien d'un simple tableau écrit sous la forme


'texte 1A''texte 1B'
'texte 2A''texte 2B'
...


J'ai tout d'abord supposé que le problème venait d'une options de mise en forme automatique d'Excel : je n'ai trouvé que l'options Saisie semi-automatique des valeurs de cellule dans le menu Outils->Options->Modification. Cochée ou décochée, ça ne change rien :( .

J'ai ensuite envisagé que le problème pouvait provenir des Options régionales et linguistiques de Windows : j'ai bien trouvé les formats de dates dans Démarrer/Panneau De configuration/Options régionales et linguistiques/Onglet Options régionales/Bouton Personnaliser/Onglet Date. Mais le séparateur de date est bien / et non - ...

Alors si l'un d'entre vous sait comment me dépanner, je luis en serais infiniment reconnaissant.

Et s'il vous faut des précisions, n'hésitez pas...

Merci

Message édité par: mullinski, à: 27/06/2006 04:04
 
M

Mullinski

Guest
Euh :ermm: , je viens de me rendre compte que le code du tableau pré-cité ne s'est pas affiché correctement dans mon message (normal c'est du Html !).

De toute façon , ça n'a pas grande importance. Il s'agit d'un simple tableau créé à l'aide des commandes TABLE, TR et TD. Bref, rien d'anormal...

Donc, je m'en remet à vous chers collègues...

Dans l'espoir que l'un d'entre vous me propose une solution, je vous souhaite bon courage.

Message édité par: mullinski, à: 27/06/2006 04:06
 
M

Mullinski

Guest
Alors, pour ceux que ça intéresse (ils n'ont pas l'air nombreux vu le nombre de réponse obtenues :unsure: ), j'ai temporairement trouvé une alternative pour copier des tableaux d'une page Html :p

Une fois le tableau copié, il faut le coller... dans Word :eek:

Croyez-le ou non, mais une fois le tableau copié dans Word à l'aide de la commande coller, il suffit de copier de nouveau ce tableau depuis Word et de le coller dans Excel à l'aide de la commande Collage spécial en tant que texte ;) .

Résultat, si le tableau source contenait plusieurs colonnes, celles-ci sont respectées dans Excel :silly: . Et les textes sous la forme 4-6 ou 1-12 restent bien sous cette forme au lieu de se transfomer en 04-juin ou 01-déc :woohoo: .

Bon, je ne suis pas satisfait de cette méthode batarde qui à l'énorme inconvénient d'augmenter le temps de traitement :ermm: . Mais en attendant, je n'ai pas trouvé mieux :( .

Si quelqu'un à une autre idée, qu'il me fasse signe :whistle:

Bon courage...

Message édité par: mullinski, à: 27/06/2006 03:58
 

Ti_

Nous a quitté
Repose en paix
Salut

Ca vient de ce qu'Excel reconnaît ou croit reconnaître automatiquement des dates depuis un format html. Il est possible de désactiver temporairement cette reconnaissance, en passant par plusieurs méthodes.

La première consiste à cliquer sur la petite icone qui s'affiche en bas à droite de la plage de cellules collées, et à sélectionner l'option 'Créer des requêtes Web actualisables'. Ensuite dans les options, tu coches 'Désactiver la reconnaissance des dates'.
Mais je reconnais que ce n'est tout de même pas simple.

Alors je suis passé par une petite macro qui fait à peu près la même chose, mais avec un petit inconvénient. Le principe : on part d'une feuille vierge qu'on met en format texte, on fait un PasteSpecial en mettant le paramètre NoHTMLFormatting à true, puis on rétablit un format général à la feuille.

Ca marche très bien, le seul inconvénient c'est que si tu fais ça sur une feuille non vierge, tu perds alors le format nombre des cellules déjà mises en forme. Ce n'est pas gênant si tu n'as que des formats standards sur ta feuille, ça peut l'être si tu as déjà des dates ou autres. Mais bon dans ce cas, le fait de coller tes données sur une feuille vierge, puis de les remettre dans la bonne feuille de destination devrait de toute façon prendre moins de temps que de passer par Word.

Voici la macro, à coller dans ton perso.xls ou dans ton MesMacros.xla. Tu peux lui dédier un bouton sur ta barre perso si tu utilises souvent le copier/coller depuis une feuille html.


Sub CopieSpecialHTML()
'Ti : http://www.veriti.net
With ActiveSheet
.Cells.NumberFormat = '@'
.PasteSpecial NoHTMLFormatting:=True
.Cells.NumberFormat = 'General'
End With
End Sub
 

exce3343

XLDnaute Nouveau
Salut _Ti,

je viens de tester ta seconde méthode (la première me paraissant moins pratique) :

A mon avis, je n'ai pas la même version d'Excel que toi : à l'exécution de la macro, j'obtiens l'erreur d'exécution 1004 (Erreur définie par l'application ou par l'objet) :angry:

Le débogage me renvoi sur la ligne .PasteSpecial NoHTMLFormatting:=True.

Après vérification dans l'aide de VB, l'argument NoHTMLFormatting n'existe pas pour la méthode PasteSpecial :ermm: .

Mais de toute façon, je ne vois pas trop en quoi cette macro est différente de la méthode manuelle consistant à mettre en forme les cellules avant et après le collage, ce qui ne résoud pas le problème (voir message d'origne) :eek:.

Donc je me penche sur l'autre solution ;) ...

Si j'ai mal interprété ta seconde méthode, préviens-moi.

Merci pour le coup de main.
 

Ti_

Nous a quitté
Repose en paix
ah oui c'est vrai que j'ai fait ça avec Excel XP, il se peut que cette option n'existe pas dans Excel 2000 (et encore moins si tu as XL97). Dommage parce que ça fonctionne bien sinon.

Mais quand tu dis
Mais de toute façon, je ne vois pas trop en quoi cette macro est différente de la méthode manuelle
consistant à mettre en forme les cellules avant et après le collage

Ben si, tout de même, puisque tu copies ta page html, tu vas sur la cellule de destination de ta feuille Excel, tu appelles la macro et voilà, c'est fait. Autrement dit, ça t'évite toutes les manipulations manuelles (sinon c'est inutile de faire une macro, non...)
 

Discussions similaires

Réponses
9
Affichages
406

Membres actuellement en ligne

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 184
dernier inscrit
amiko