GNT sans publicité, site mobile, fonctionnalitées exclusives...

[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>
Lire les 7 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ChrisV
Le #1741942
Bonjour Stephane,

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:
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 hhhmmmsss 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 :


ChrisV
Le #1719904
Un poil plus court... ;-)

=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:
Bonjour Stephane,

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:
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 hhhmmmsss 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 :






Stephane Faure
Le #1731169
Bonjour ChrisV,

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
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)


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 :

ChrisV
Le #1725674
Bonjour Stéphane,

Je n'arrive pas à faire marcher les deux formules...


Hum... :-(
je viens de refaire un test... RAS !

Classeur démo si tu le désires...


ChrisV


"Stephane Faure" news:
Bonjour ChrisV,

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
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)


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 :



Stephane Faure
Le #1731047
ChrisV, in
Classeur démo si tu le désires...


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 :

Publicité
Suivre les réponses
Poster une réponse
Anonyme