Convertir cellule+lettre en cellule+signe
Résolu
MEL
-
MEL -
MEL -
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
- Proteger cellule excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Clavier iphone chiffre et lettre - Guide
10 réponses
Salut le Forum
Autre Formule
Mytå
Autre Formule
SI(ESTERR(CHERCHE("D";B2));1;-1)*SUBSTITUE(SUBSTITUE(SUBSTITUE(B2;"C";"");"D";"");CAR(160);"")
Mytå
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 🎶
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
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
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")))
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
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 ...
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+
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...