Convertir cellule+lettre en cellule+signe
Résolu/Fermé
A voir également:
- Convertir cellule+lettre en cellule+signe
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Verrouiller cellule excel - Guide
- Convertir youtube en mp3 avec audacity - Guide
10 réponses
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
950
28 oct. 2014 à 19:53
28 oct. 2014 à 19:53
Salut le Forum
Autre Formule
Mytå
Autre Formule
SI(ESTERR(CHERCHE("D";B2));1;-1)*SUBSTITUE(SUBSTITUE(SUBSTITUE(B2;"C";"");"D";"");CAR(160);"")
Mytå
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 28/10/2014 à 16:32
Modifié par pijaku le 28/10/2014 à 16:32
Bonjour,
Le souci vient du fait que tes valeurs (par exemple : 73 128,53 C) contiennent un espace au lieu du séparateur de millier. En fait, tu as 73espace128,53...
Qui plus est un espace "insécable".
Alors pour faire ce que tu souhaites, tu dois :
1- sélectionner, dans la barre de formule, un de ces espaces insécables :
Et le copier (Ctrl + C)
2- Sélectionner toute la colonne B puis taper Ctrl+H
dans la case recherche"r : coller (Ctrl + V) (pour y placer ton espace insécable)
dans la case remplacer par : ne rien mettre
3- cliquer sur remplacer tout.
4- Ta formule devient, par exemple et pour faire simple :
=SI(DROITE(B2;1)="C";GAUCHE(B2;NBCAR(B2)-1)*1;SI(DROITE(B2;1)="D";GAUCHE(B2;NBCAR(B2)-1)*-1;"erreur"))
🎼 Cordialement,
Franck 🎶
Le souci vient du fait que tes valeurs (par exemple : 73 128,53 C) contiennent un espace au lieu du séparateur de millier. En fait, tu as 73espace128,53...
Qui plus est un espace "insécable".
Alors pour faire ce que tu souhaites, tu dois :
1- sélectionner, dans la barre de formule, un de ces espaces insécables :
Et le copier (Ctrl + C)
2- Sélectionner toute la colonne B puis taper Ctrl+H
dans la case recherche"r : coller (Ctrl + V) (pour y placer ton espace insécable)
dans la case remplacer par : ne rien mettre
3- cliquer sur remplacer tout.
4- Ta formule devient, par exemple et pour faire simple :
=SI(DROITE(B2;1)="C";GAUCHE(B2;NBCAR(B2)-1)*1;SI(DROITE(B2;1)="D";GAUCHE(B2;NBCAR(B2)-1)*-1;"erreur"))
🎼 Cordialement,
Franck 🎶
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
28 oct. 2014 à 16:34
28 oct. 2014 à 16:34
Ton classeur avec la formule...
tontong
Messages postés
2567
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
20 novembre 2024
1 059
28 oct. 2014 à 16:59
28 oct. 2014 à 16:59
Bonjour,
Il y a un autre piège dans votre fichier: le séparateur de milliers n'est pas une espace simple (CAR(32)) mais une espace insécable (CAR(160)).
2 solutions:
1- Sélectionner tout le champ de Solde
Édition Remplacer (ou Ctrl+h) et dans la zone Rechercher taper 0160 en maintenant la touche Alt enfoncée, dans la zone Remplacer par ne rien mettre. Clic sur remplacer tout.
en colonne C recopier la formule donnée au #2.
=GAUCHE(A2;NBCAR(A2)-2)*(1-(2*(DROITE(A2;1)="D")))
2- En colonne C recopier directement la fomule
=GAUCHE(SUBSTITUE(B2;CAR(160);"");NBCAR(B2)-2)*(1-(2*(DROITE(B2;1)="D")))
Tracer le graphique avec les champs des colonnes A et C.
Nota: comme quoi un fichier c'est utile ;-)
Il y a un autre piège dans votre fichier: le séparateur de milliers n'est pas une espace simple (CAR(32)) mais une espace insécable (CAR(160)).
2 solutions:
1- Sélectionner tout le champ de Solde
Édition Remplacer (ou Ctrl+h) et dans la zone Rechercher taper 0160 en maintenant la touche Alt enfoncée, dans la zone Remplacer par ne rien mettre. Clic sur remplacer tout.
en colonne C recopier la formule donnée au #2.
=GAUCHE(A2;NBCAR(A2)-2)*(1-(2*(DROITE(A2;1)="D")))
2- En colonne C recopier directement la fomule
=GAUCHE(SUBSTITUE(B2;CAR(160);"");NBCAR(B2)-2)*(1-(2*(DROITE(B2;1)="D")))
Tracer le graphique avec les champs des colonnes A et C.
Nota: comme quoi un fichier c'est utile ;-)
bonjour
voila la solution
a toi de voir si ca te convient
A+
Maurice
voila la solution
a toi de voir si ca te convient
Sub Convert() Application.ScreenUpdating = False NombLig = Cells(Rows.Count, 2).End(xlUp).Row For L = 2 To NombLig Test = Replace(Replace(Range("B" & L).Value, Chr(160), ""), ",", ".") If Right(Test, 1) = "D" Then Range("C" & L).Value = -Val(Test) Else Range("C" & L).Value = Val(Test) End If Range("C" & L).NumberFormat = "0.00_ ;[Red]-0.00 " Next Application.ScreenUpdating = True End Sub
A+
Maurice
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
27 oct. 2014 à 17:11
27 oct. 2014 à 17:11
Bonjour
Une possibilité :
Avec la valeur en A2 , en B2 la formule pour convertir en nombre :
=SI(DROITE(A2;1)="D";0-(CNUM(GAUCHE(A2;NBCAR(A2)-5))+CNUM(GAUCHE(DROITE(A2;4);2)/100));CNUM(GAUCHE(A2;NBCAR(A2)-5))+CNUM(GAUCHE(DROITE(A2;4);2)/100))
le premier GAUCHE prend les caractères à gauche d'une longueur égale à la longueur de la chaine -5 (le . ,les 2 chiffres décimaux, l'espace et la lettre) et CNUM convertit le résultat en nombre
le second GAUCHE prend les 2 caractères à gauche des 4 caractères de DROITE (donc prend les 2 décimaux) puis conversion avec CNUM et division par 100
L'addition des 2 redonne le nombre d'origine qu'on soustrait à 0 si lettre D pour obtenir un négatif
Cdlmnt
Une possibilité :
Avec la valeur en A2 , en B2 la formule pour convertir en nombre :
=SI(DROITE(A2;1)="D";0-(CNUM(GAUCHE(A2;NBCAR(A2)-5))+CNUM(GAUCHE(DROITE(A2;4);2)/100));CNUM(GAUCHE(A2;NBCAR(A2)-5))+CNUM(GAUCHE(DROITE(A2;4);2)/100))
le premier GAUCHE prend les caractères à gauche d'une longueur égale à la longueur de la chaine -5 (le . ,les 2 chiffres décimaux, l'espace et la lettre) et CNUM convertit le résultat en nombre
le second GAUCHE prend les 2 caractères à gauche des 4 caractères de DROITE (donc prend les 2 décimaux) puis conversion avec CNUM et division par 100
L'addition des 2 redonne le nombre d'origine qu'on soustrait à 0 si lettre D pour obtenir un négatif
Cdlmnt
tontong
Messages postés
2567
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
20 novembre 2024
1 059
27 oct. 2014 à 17:19
27 oct. 2014 à 17:19
Bonjour,
Une autre possibilité:
Si votre séparateur de décimales est la virgule il faut commencer par remplacer le point par une virgule.
Édition Remplacer ou en raccourci Ctrl+h.
Données Convertir fonctionne pour un fichier délimité avec l'espace comme séparateur.
En format standard Excel ne peut renvoyer que du texte s'il ne reconnait pas un nombre.
À partir de la valeur avec le bon séparateur de décimales on peut obtenir un nombre négatif pour D avec la formule:
=GAUCHE(A2;NBCAR(A2)-2)*(1-(2*(DROITE(A2;1)="D")))
Une autre possibilité:
Si votre séparateur de décimales est la virgule il faut commencer par remplacer le point par une virgule.
Édition Remplacer ou en raccourci Ctrl+h.
Données Convertir fonctionne pour un fichier délimité avec l'espace comme séparateur.
En format standard Excel ne peut renvoyer que du texte s'il ne reconnait pas un nombre.
À partir de la valeur avec le bon séparateur de décimales on peut obtenir un nombre négatif pour D avec la formule:
=GAUCHE(A2;NBCAR(A2)-2)*(1-(2*(DROITE(A2;1)="D")))
Raymond PENTIER
Messages postés
58756
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
12 décembre 2024
17 251
27 oct. 2014 à 17:54
27 oct. 2014 à 17:54
Quant à moi, je n'ai pas compris comment est fait le tableau "D débit et C pour credit (dans une seule cellule)".
Le mieux serait de nous envoyer ton fichier avec https://www.cjoint.com/
Le mieux serait de nous envoyer ton fichier avec https://www.cjoint.com/
Bonjour
tu peux aussi le faire par macro
A+
Maurice
tu peux aussi le faire par macro
Sub CONVERT() NombLig = Cells(Rows.Count, 1).End(xlUp).Row For L = 2 To NombLig Nomb = Val(Split(Range("A" & L), " ")(0)) If Trim(Split(Range("A" & L), " ")(1)) = "D" Then Range("B" & L).Value = -Nomb Else Range("B" & L).Value = Nomb End If Range("B" & L).NumberFormat = "0.00_ ;[Red]-0.00 " Next End Sub
A+
Maurice
Raymond PENTIER
Messages postés
58756
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
12 décembre 2024
17 251
28 oct. 2014 à 19:22
28 oct. 2014 à 19:22
Tu vois, MEL, toutes les complications qui découlent de tes saisies fantaisistes ?
Alors fais comme tout le monde : en colonne B tu saisis tes montants (sans espaces), en colonne C tu saisis "C" ou "D".
Ensuite tout est merveilleusement facile et immédiat ...
Alors fais comme tout le monde : en colonne B tu saisis tes montants (sans espaces), en colonne C tu saisis "C" ou "D".
Ensuite tout est merveilleusement facile et immédiat ...
Raymond PENTIER
Messages postés
58756
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
12 décembre 2024
17 251
28 oct. 2014 à 22:38
28 oct. 2014 à 22:38
Je constate que ma suggestion n'a pas plu à quelqu'un !
Une petite explication de vote serait plus constructive ...
Une petite explication de vote serait plus constructive ...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
29 oct. 2014 à 07:39
29 oct. 2014 à 07:39
Salut Raymond,
Je n'ai pas mis le -1, mais l'explication est la suivante :
Il ne s'agit certainement pas de saisie, j'en veux pour preuve l'espace insécable contenu par chaque nombre, mais d'une importation d'un logiciel quelconque.
S'agissant de tout ressaisir manuellement, si Excel peut y apporter des solutions plus ou moins automatiques, je ne vois pas l'intérêt. D'autant plus que MEL risque fort d'avoir régulièrement ce genre d'import à traiter.
Les solutions sont toutes sur le sujet qui, ma foi, est fort bien résolu.
Bonne journée à toi.
A+
Je n'ai pas mis le -1, mais l'explication est la suivante :
Il ne s'agit certainement pas de saisie, j'en veux pour preuve l'espace insécable contenu par chaque nombre, mais d'une importation d'un logiciel quelconque.
S'agissant de tout ressaisir manuellement, si Excel peut y apporter des solutions plus ou moins automatiques, je ne vois pas l'intérêt. D'autant plus que MEL risque fort d'avoir régulièrement ce genre d'import à traiter.
Les solutions sont toutes sur le sujet qui, ma foi, est fort bien résolu.
Bonne journée à toi.
A+
Raymond PENTIER
Messages postés
58756
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
12 décembre 2024
17 251
30 oct. 2014 à 00:18
30 oct. 2014 à 00:18
Oui pijaku, je pense que tu as raison.
C'est cependant regrettable que MEL donne comme exemples 1200023.24 D et 4501.02 C alors qu'en réalité il s'agit de 1 200 023.24 D et 4 501.02 C !
Regrettable aussi qu'après plus de 24 h il n'a pas encore donné de suite à mon message #10 ...
C'est cependant regrettable que MEL donne comme exemples 1200023.24 D et 4501.02 C alors qu'en réalité il s'agit de 1 200 023.24 D et 4 501.02 C !
Regrettable aussi qu'après plus de 24 h il n'a pas encore donné de suite à mon message #10 ...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
30 oct. 2014 à 07:49
30 oct. 2014 à 07:49
Salut Raymond,
C'est cependant regrettable que MEL donne comme exemples 1200023.24 D
Oui, il vaut toujours mieux être précis dans les explications de base...
Regrettable aussi qu'après plus de 24 h il n'a pas encore donné de suite à mon message #10 ...
Mettons cela sur le fait que MEL s'est occupé(e?) des enfants hier. Elle (ou il?) reviendra aujourd'hui...
C'est cependant regrettable que MEL donne comme exemples 1200023.24 D
Oui, il vaut toujours mieux être précis dans les explications de base...
Regrettable aussi qu'après plus de 24 h il n'a pas encore donné de suite à mon message #10 ...
Mettons cela sur le fait que MEL s'est occupé(e?) des enfants hier. Elle (ou il?) reviendra aujourd'hui...
Raymond PENTIER
Messages postés
58756
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
12 décembre 2024
17 251
30 oct. 2014 à 19:04
30 oct. 2014 à 19:04
Oui ! Bel optimisme ...