[EXCEL 2000] Copier-coller depuis page HTML et format d'heure
Le
Stephane Faure
Bonjour,
Afin de faire un comparatif de ce que me coûteraient diverses formules
de forfaits Internet, j'ai copié-collé mes factures détaillées
disponibles en page HTML dans Excel 2000. Les données sont
bien placées dans les cellules comme il faut, seulement, les durées de
connexions sont écrites de la sorte :
3h44m22s
47m24s
44s
Le problème est que je ne parviens pas à faire en sorte que ces
données soient interprétées comme des nombres au format heure, de
sorte à pouvoir faire des calcul avec. J'ai appliqué le format
hh:mm:ss aux cellules concernées, et j'ai déjà essayé ceci, indiqué
dans l'aide :
-
Si les nombres ne sont pas affichés ou calculés comme des valeurs
numériques.
Si les nombres sont alignés à gauche dans la cellule et que vous
n'avez pas modifié l'alignement par défaut (Général), ils sont mis en
forme ou entrés comme du texte. Pour convertir les nombres en données
numériques, procédez de la façon suivante :
Sélectionnez une cellule vide au format numérique Standard.
Si vous n'êtes pas sûr du format de la cellule, cliquez sur Cellule
dans le menu Format, puis sur l'onglet Nombre. Dans la zone Catégorie,
cliquez sur Standard, puis sur OK.
Dans la cellule, tapez 1 avant d'appuyer sur ENTRÉE.
Cliquez dans la cellule, puis sur le bouton Copier dans la barre
d'outils Mise en forme.
Sélectionnez la plage de cellules qui contient les nombres au format
Texte.
Dans le menu Edition, cliquez sur Collage spécial, sur Multiplication,
puis sur OK.
-
Mais ça ne change rien. J'ai aussi essayé de faire remplacer
automatiquement les "h" et les "m" par des ":", mais ce qui se produit
alors, c'est que 47m24s devient 47:24:00, c'est-à-dire que 47 minutes
deviennent 47 heures
Je n'ai jamais fait de macro, aussi j'aimerais savoir s'il y a une
autre solution. Pourrait-on par exemple créer un format de nombre
personnalisé permettant d'interpréter les h, m et s comme des heures,
minutes et secondes, un truc du genre hh\hmm\mss\s où \ serait le
caractère d'échappement, permettant d'interpréter le caractère qui
suit comme étant simplement à afficher tel quel. Sinon, si quelqu'un a
un modèle de macro qui pourrait m'aider, ça serait sympa. Merci.
[Publication croisée sur fr.comp.applications.bureautique et
microsoft.public.fr.excel. Si le thème du fil venait à dévier en
faveur de l'un ou l'autre forum, merci de l'y rediriger.]
--
Toute compétition sociale libre et éliminatoire tend à la formation de
monopoles. (Norbert Elias, La dynamique de l'Occident.)
Contre la privatisation programmée d'EDF :
<http://www.energiepublique.org>
Afin de faire un comparatif de ce que me coûteraient diverses formules
de forfaits Internet, j'ai copié-collé mes factures détaillées
disponibles en page HTML dans Excel 2000. Les données sont
bien placées dans les cellules comme il faut, seulement, les durées de
connexions sont écrites de la sorte :
3h44m22s
47m24s
44s
Le problème est que je ne parviens pas à faire en sorte que ces
données soient interprétées comme des nombres au format heure, de
sorte à pouvoir faire des calcul avec. J'ai appliqué le format
hh:mm:ss aux cellules concernées, et j'ai déjà essayé ceci, indiqué
dans l'aide :
-
Si les nombres ne sont pas affichés ou calculés comme des valeurs
numériques.
Si les nombres sont alignés à gauche dans la cellule et que vous
n'avez pas modifié l'alignement par défaut (Général), ils sont mis en
forme ou entrés comme du texte. Pour convertir les nombres en données
numériques, procédez de la façon suivante :
Sélectionnez une cellule vide au format numérique Standard.
Si vous n'êtes pas sûr du format de la cellule, cliquez sur Cellule
dans le menu Format, puis sur l'onglet Nombre. Dans la zone Catégorie,
cliquez sur Standard, puis sur OK.
Dans la cellule, tapez 1 avant d'appuyer sur ENTRÉE.
Cliquez dans la cellule, puis sur le bouton Copier dans la barre
d'outils Mise en forme.
Sélectionnez la plage de cellules qui contient les nombres au format
Texte.
Dans le menu Edition, cliquez sur Collage spécial, sur Multiplication,
puis sur OK.
-
Mais ça ne change rien. J'ai aussi essayé de faire remplacer
automatiquement les "h" et les "m" par des ":", mais ce qui se produit
alors, c'est que 47m24s devient 47:24:00, c'est-à-dire que 47 minutes
deviennent 47 heures
Je n'ai jamais fait de macro, aussi j'aimerais savoir s'il y a une
autre solution. Pourrait-on par exemple créer un format de nombre
personnalisé permettant d'interpréter les h, m et s comme des heures,
minutes et secondes, un truc du genre hh\hmm\mss\s où \ serait le
caractère d'échappement, permettant d'interpréter le caractère qui
suit comme étant simplement à afficher tel quel. Sinon, si quelqu'un a
un modèle de macro qui pourrait m'aider, ça serait sympa. Merci.
[Publication croisée sur fr.comp.applications.bureautique et
microsoft.public.fr.excel. Si le thème du fil venait à dévier en
faveur de l'un ou l'autre forum, merci de l'y rediriger.]
--
Toute compétition sociale libre et éliminatoire tend à la formation de
monopoles. (Norbert Elias, La dynamique de l'Occident.)
Contre la privatisation programmée d'EDF :
<http://www.energiepublique.org>

Poser une question


Avec les données de ton exemple situées en A1:A3
par formule (à recopier vers le bas)
=SI(ESTERR(TROUVE("h";A1));SI(ESTERR(TROUVE("m";A1));1*("00:00:"
&SUBSTITUE(A1;"s";""));1*("00:"&SUBSTITUE(SUBSTITUE(A1;"m";":");"s";"")))
;1*SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;"h";":");"m";":");"s";""))
par macro
(sur la plage sélectionnée)
Sub convertH()
' code initial michdenis
Application.ScreenUpdating = False
For Each c In Selection
c.NumberFormat = "hh:mm:ss"
If InStr(1, c, "h", vbTextCompare) = 0 Then c.Value = "0h" & c
If InStr(1, c, "m", vbTextCompare) = 0 Then c.Value = "0m" & c
For Each sepH In Array("h", "m")
c.Replace sepH, ":"
Next sepH
c.Replace "s", ""
Next c
End Sub
ChrisV
"Stephane Faure" news:
=SI(ESTERR(TROUVE("m";A1));1*SUBSTITUE("0:0:"&A1;"s";"");1*SUBSTITUE(SI(4>TR
OUVE("m";A1);SUBSTITUE("0:"&A1;"m";":");SUBSTITUE(SUBSTITUE(A1;"h";":");"m";
":"));"s";""))
ChrisV
"ChrisV" news:
Désolé pour le retard, mais je lisais uniquement le forum
fr.comp.applications.bureautique vers lequel j'avais fait une
publication croisée avec ce forum. Je n'avais pas pensé que tu
utilisais peut-être le serveur de news de Microsoft, qui ne te donne
pas accès aux forums fr.*, et donc que tu ne pouvais pas y poster. Tu
gagnerais sans doute à utiliser plutôt le serveur de ton fournisseur
d'accès si il donne accès comme le mien aux forums microsoft.*, et
s'il marche bien aussi, ce qui n'est pas gagné avec Wanadoo...
Tu disais donc, in
Je n'arrive pas à faire marcher les deux formules que tu m'as
données : elles m'affichent #VALEUR!, et ce, quel que soit le format
de nombre appliqué. Je les ai collées en D2 et j'y ai remplacé A1 par
C2, qui était la case contenant les données à transformer.
Par contre, la macro marche à merveille, merci beaucoup ! A noter que
le format de nombre à utiliser est plutôt [h]:mm:ss que hh:mm:ss pour
moi qui calcule des durées (surtout utile pour faire la somme
mensuelle).
--
Toute compétition sociale libre et éliminatoire tend à la formation de
monopoles. (Norbert Elias, La dynamique de l'Occident.)
Contre la privatisation programmée d'EDF :
Hum... :-(
je viens de refaire un test... RAS !
Classeur démo si tu le désires...
ChrisV
"Stephane Faure" news:
Non merci, je me contenterai de la macro. Et puis, je me suis un peu
démotivé pour faire ce comparatif. Je ne sais pas si tu connais le FAI
Erevia, mais leur tarifs, bien qu'alléchants à première vue, sont un
vrai carcan !
Sinon, te serait-il possible de réduire les citations que tu fais du
message auquel tu réponds, et d'y répondre en dessous ? C'est l'usage
sur les forums, et ça permet de ne pas alourdir le téléchargement
inutilement. Merci encore !
--
Toute compétition sociale libre et éliminatoire tend à la formation de
monopoles. (Norbert Elias, La dynamique de l'Occident.)
Contre la privatisation programmée d'EDF :