OVH Cloud OVH Cloud

Tranformer un format texte en nombre

14 réponses
Avatar
Jean Martin
Boujour tout le monde,

J'ai déjà fait appel à plusieurs reprises, et avec succès, à votre sagacité
!
J'ai encore besoin d'aide. Voici:

Dans une feuille "facture", j'ai en D18 (et suivantes en colonne) une donnée
'Quantité' qui sert à calculer, à partir d'un 'Prix Unitaire' (colonne F) le
prix total (colonne G). Il se fait que, pour certains articles en promotion,
je fais précéder de l'apostrophe (') la valeur de la colonne D, ce qui
transforme le nombre en texte et fait apparaître l'indication "promo" dans
la colonne du prix unitaire (colonne F).

Une macro que vous m'avez aidé à construire recopie chaque ligne facture
dans une feuille 'récap' qui cumule les unes en-dessous des autres les
lignes des factures successives. Cette récap me sert à calculer le stock.
Mais voilà! les données 'texte' de la colonne D restent des données textes
dans la feuille 'récap' et les données correspondantes échappent au
recensement du stock.

Question: quelle procédure pourrait-on imaginer pour supprimer, dans la
colonne D de la feuille 'récap' tous les signes 'apostrophe' (') afin de
redonner une valeur numérique aux éléments qui en sont affectés?

Merci pour toute aide!

Jean

10 réponses

1 2
Avatar
AV
Question: quelle procédure pourrait-on imaginer pour supprimer, dans la
colonne D de la feuille 'récap' tous les signes 'apostrophe' (') afin de
redonner une valeur numérique aux éléments qui en sont affectés?


Si c'est à faire une seule fois, une formule :
=SUBSTITUE(A1;"'";"")*1

AV

Avatar
Daniel.j
Un truc comme cela:
=CNUM(SUBSTITUE(D1;"'";""))

--
Daniel MVP Excel
FAQ du Forum Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm


"Jean Martin" a écrit dans le message de news:
MJylb.98114$
| Boujour tout le monde,
|
| J'ai déjà fait appel à plusieurs reprises, et avec succès, à votre sagacité
| !
| J'ai encore besoin d'aide. Voici:
|
| Dans une feuille "facture", j'ai en D18 (et suivantes en colonne) une donnée
| 'Quantité' qui sert à calculer, à partir d'un 'Prix Unitaire' (colonne F) le
| prix total (colonne G). Il se fait que, pour certains articles en promotion,
| je fais précéder de l'apostrophe (') la valeur de la colonne D, ce qui
| transforme le nombre en texte et fait apparaître l'indication "promo" dans
| la colonne du prix unitaire (colonne F).
|
| Une macro que vous m'avez aidé à construire recopie chaque ligne facture
| dans une feuille 'récap' qui cumule les unes en-dessous des autres les
| lignes des factures successives. Cette récap me sert à calculer le stock.
| Mais voilà! les données 'texte' de la colonne D restent des données textes
| dans la feuille 'récap' et les données correspondantes échappent au
| recensement du stock.
|
| Question: quelle procédure pourrait-on imaginer pour supprimer, dans la
| colonne D de la feuille 'récap' tous les signes 'apostrophe' (') afin de
| redonner une valeur numérique aux éléments qui en sont affectés?
|
| Merci pour toute aide!
|
| Jean
|
|
Avatar
D V.
Salut,
Tu peux éventuellement créer dans une collonne libre, par exemple
AA18=CNUM(D18) et faire ton bilan sur la colonne AA

DV

"Jean Martin" a écrit dans le message news:
MJylb.98114$
Boujour tout le monde,

J'ai déjà fait appel à plusieurs reprises, et avec succès, à votre
sagacité

!
J'ai encore besoin d'aide. Voici:

Dans une feuille "facture", j'ai en D18 (et suivantes en colonne) une
donnée

'Quantité' qui sert à calculer, à partir d'un 'Prix Unitaire' (colonne F)
le

prix total (colonne G). Il se fait que, pour certains articles en
promotion,

je fais précéder de l'apostrophe (') la valeur de la colonne D, ce qui
transforme le nombre en texte et fait apparaître l'indication "promo" dans
la colonne du prix unitaire (colonne F).

Une macro que vous m'avez aidé à construire recopie chaque ligne facture
dans une feuille 'récap' qui cumule les unes en-dessous des autres les
lignes des factures successives. Cette récap me sert à calculer le stock.
Mais voilà! les données 'texte' de la colonne D restent des données textes
dans la feuille 'récap' et les données correspondantes échappent au
recensement du stock.

Question: quelle procédure pourrait-on imaginer pour supprimer, dans la
colonne D de la feuille 'récap' tous les signes 'apostrophe' (') afin de
redonner une valeur numérique aux éléments qui en sont affectés?

Merci pour toute aide!

Jean




Avatar
Jean Martin
Merci à A.V., Daniel.j et D.V.
Les solutions proposées (basées sur la fonction 'substitue' supposent une
réorganisation de tout mon système. A défaut d'autre chose je m'y résoudrai.
Mais je préférerais de loin une procédure VBA qui, à chaque ajout dans ma
récap, vérifie s'il y a un signe apostrophe dans la colonne D et le fait
disparaître donnat ainsi une valeur numérique à la donnée concernée.

Merci de ce complément !

Jean
Avatar
Papyty
Bonsoir Jean
A mettre à la fin de ta procédure qui cré le récap
la plage est à adapter je suis parti de D2

Sheets("récap").Range("d2:d" & Range("d65536").End(xlUp).Row).Select
For Each Cel In Selection
Range(Cel.Address) = Cel * 1
Next Cel

Est ce que ça te convient?
@+
Thierry

Merci à A.V., Daniel.j et D.V.
Les solutions proposées (basées sur la fonction 'substitue' supposent une
réorganisation de tout mon système. A défaut d'autre chose je m'y résoudrai.
Mais je préférerais de loin une procédure VBA qui, à chaque ajout dans ma
récap, vérifie s'il y a un signe apostrophe dans la colonne D et le fait
disparaître donnat ainsi une valeur numérique à la donnée concernée.

Merci de ce complément !

Jean


Avatar
Papyty
Bonsoir Jean
A mettre à la fin de ta procédure qui cré le récap
la plage est à adapter je suis parti de D2

Sheets("récap").Range("d2:d" & Range("d65536").End(xlUp).Row).Select
For Each Cel In Selection
Range(Cel.Address) = Cel * 1
Next Cel

Est ce que ça te convient?
@+
Thierry
Avatar
Papyty
Bonsoir Jean
A mettre à la fin de ta procédure qui cré le récap
la plage est à adapter je suis parti de D2

Sheets("récap").Range("d2:d" & Range("d65536").End(xlUp).Row).Select
For Each Cel In Selection
Range(Cel.Address) = Cel * 1
Next Cel

Est ce que ça te convient?
@+
Thierry
Avatar
Jean Martin
Merci Thierry.

La démarche me plait. Il y a bien eu un petit problème pour la sélection de
la première ligne. J'ai trouvé un succédané à l'aide de l'enregistreur.
Là où le système bloque, c'est à la ligne [Range(Cell.address)Îll*1].
J'obtiens un message: [Erreur d'exécution '13': Incompatibilité de type]

Quid faciam, miser?

Merci de vos solutions

Jean


"Papyty" a écrit dans le message de
news:1l2de8bdh2uk0$
Bonsoir Jean
A mettre à la fin de ta procédure qui cré le récap
la plage est à adapter je suis parti de D2

Sheets("récap").Range("d2:d" & Range("d65536").End(xlUp).Row).Select
For Each Cel In Selection
Range(Cel.Address) = Cel * 1
Next Cel

Est ce que ça te convient?
@+
Thierry


Avatar
Papyty
Bonsoir Jean
Je suis content que tu vois ma réponse car pour moi le message n'est pas
disponible sur le serveur.
Je n'ai pas réussi à recreer ton probleme chez moi ça marche bien.
Peux tu poster le bout de macro avec ta modification?
peut etre une erreur
@+
Thierry

Merci Thierry.

La démarche me plait. Il y a bien eu un petit problème pour la sélection de
la première ligne. J'ai trouvé un succédané à l'aide de l'enregistreur.
Là où le système bloque, c'est à la ligne [Range(Cell.address)Îll*1].
J'obtiens un message: [Erreur d'exécution '13': Incompatibilité de type]

Quid faciam, miser?

Merci de vos solutions

Jean

"Papyty" a écrit dans le message de
news:1l2de8bdh2uk0$
Bonsoir Jean
A mettre à la fin de ta procédure qui cré le récap
la plage est à adapter je suis parti de D2

Sheets("récap").Range("d2:d" & Range("d65536").End(xlUp).Row).Select
For Each Cel In Selection
Range(Cel.Address) = Cel * 1
Next Cel

Est ce que ça te convient?
@+
Thierry




Avatar
AV
Les solutions proposées (basées sur la fonction 'substitue' supposent une
réorganisation de tout mon système


Pas vraiment :
Si tu veux faire par vba : insertion colonne > la formule > copier/coller valeur
et sup colonne ajoutée
A part ça, j'ai du mal à comprendre pourquoi tu supprimes ce que tu viens
d'ajouter...

AV

1 2