Microsoft 365 Remplacer chiffre par un symbole (Point noir)

midimic

XLDnaute Junior
Bonjour, je n'ai pas trouvé dans les discussions une solution à ma question? Je voudrais dans une suite binaire remplacer 0 par cellule vide et 1 par un gros point noir trouvé dans les symboles dans le but de construire une figure.
Merci de votre aide toujours efficace
Michel
 
Solution
Re,

Et dans le fichier ci-joint pour rester en Calibri , en E7:G10 la formule matricielle : =SUBSTITUE(SUBSTITUE(B7:D10;"1";"•");"0";"")

Et pour faire plus court en E14:G25 : {=REPT("•";B14:D25)}


Pour rappel après sélection de la plage de cellule, saisir la formule sans les accolades et valider par CTRL+MAJ+ENTREE

Cordialement

patricktoulon

XLDnaute Barbatruc
celle que tu aime n'est pas matricielle
quand on l’étend l'adress de cellule s’incrémente
regarde comme c'est facile avec matricielle
apres la fermeture de parentheses je valide CTRL+MAJ+ENTER
demo6.gif
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
oui, je le sais bien, que la 2ème formule n'est pas matricielle ;
sinon j'aurais écrit la formule entre accolades, comme ceci :

{=REPT("•";B17@D28)}

(j'ai mis « @ » au lieu de « : » pour éviter le smiley auto.)

soan
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
ajout : j'ai vu ta modif du post #31 ; merci pour cette autre démo ! :)

comment tu fais ces animations ? avec un logiciel spécial ? avec Excel seulement ?
edit : j'ai vu qu'l'image animée est un .gif mais j'sais pas quel logiciel t'utilises.


soan
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour le fil, le forum,
Waouh, quel déchainement d'énergies.
Bah ce n'est pas fini, voici une solution VBA assez commode avec le clic droit :
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Application.CountIf(Target, 1) + Application.CountIf(Target, 0) = Target.CountLarge Then
    Cancel = True
    Target.Replace 1, Chr(149)
    Target.Replace 0, ""
ElseIf Application.CountIf(Target, Chr(149)) + Application.CountBlank(Target) = Target.CountLarge Then
    Cancel = True
    Target.Replace Chr(149), 1
    Target.Replace "", 0
End If
End Sub
A+
 

Pièces jointes

  • fichier figure(1).xlsm
    16.7 KB · Affichages: 10

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour @soan,

Bonjour @patricktoulon, le fil,

J'ai téléchargé le fichier de ton post #28.

Merci pour tes exemples de formules matricielles.
:) (et j'ai compris leur étendue)

Pour les formules non matricielles, et par rapport à ma formule initiale qui était :


=SI(B7=1;"l";"")

* je n'ai pas aimé ta formule suivante, plus longue, qui utilise 2 SUBSTITUTE() :

=SUBSTITUE(SUBSTITUE(B7;"1";"•");"0";"")

* j'ai aimé ta formule suivante, plus courte et astucieuse, qui utilise REPT() :

=REPT("•";B15)

Je t'ai attribué un "J'adore" pour cette deuxième formule, et aussi pour ta démo
sur la différence entre les formules matricielles et les formules non matricielles.


soan

Non pas que je me sente outre mesure floué, mais rendons à Roblochon ce qui appartient à Roblochon :) voir #post20

(j'ai mis « @ » au lieu de « : » pour éviter le smiley auto.)

Il y a un bon moyen d'éviter ces smiley auto, c'est d'inclure les formules dans les balises ICODE. Voir le bouton/liste déroulante de l'éditeur de post avec trois points et une flèche vers le bas. Choisir la dernière option : '>_ Code en ligne'

Cordialement
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Roblochon, Patrick, le fil,

Désolé, j'avais zappé ton post #20 car je suis un p'tit peu allergique aux accolades
des formules matricielles. :p ;) (mais un p'tit peu moins depuis la jolie démo de Patrick)

Oui, effectivement, à la base, les formules sont de Roblochon (Patrick s'est un peu trompé
en indiquant mapomme au lieu de Roblochon) ; rendons à César ce qui appartient à César)


----------------------------------------------------------------------------------------------------

Ajout pour @patricktoulon : non, les formules ne sont pas de Jules César ! puisqu'on te dit
qu'elles sont de @Roblochon ! :p:D j'espère quand même que Roblochon ne va pas se
prendre pour César ! quoique... sait-on jamais ? il a peut-être une couronne de lauriers
sur la tête, lui aussi ? :rolleyes:


----------------------------------------------------------------------------------------------------

J'attribue donc à Roblochon un "J'adore" pour sa formule astucieuse : {=REPT("•";B14:D25)}
et aussi pour son indication super pratique d'éviter les smileys automatiques !

(je crois que Roblochon au sale caractère pourra retrouver le sourire, et ne plus être
grincheux comme un des 7 nains de Blanche-Neige ; ah, ben j'ai compris pourquoi
Roblochon est grincheux : il voulait une bise de Blanche-Neige ! :p ;))

Patrick, je te laisse le "J'adore" que je t'avais attribué ; cela pour ta jolie démo,
et car c'est sur ton post que j'avais découvert l'utilisation de REPT avec 0 et 1
(même si c'était une reprise de la formule de Roblochon) ; je connaissais déjà
REPT() pour répéter plusieurs caractères, mais j'pensais pas qu'elle pouvait
être utile avec 0 et 1.


soan
 
Dernière édition:

midimic

XLDnaute Junior
Bonjour le fil, le forum,

Bah ce n'est pas fini, voici une solution VBA assez commode avec le clic droit :
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Application.CountIf(Target, 1) + Application.CountIf(Target, 0) = Target.CountLarge Then
    Cancel = True
    Target.Replace 1, Chr(149)
    Target.Replace 0, ""
ElseIf Application.CountIf(Target, Chr(149)) + Application.CountBlank(Target) = Target.CountLarge Then
    Cancel = True
    Target.Replace Chr(149), 1
    Target.Replace "", 0
End If
End Sub
A+
Bonjour, je ne suis pas à l'aise avec vbA. Je vais quand essayer de faire fonctionner pour voir et apprendre. Merci
 

midimic

XLDnaute Junior
Je suis plus qu'amusé de vous voir vous tirer la bourre dans la bonne humeur. C'est agréable des gens qui ne font pas la gueule. D'autant plus amusé que je suis loin de vous préoccupations dans la finesse du détail. J'en suis juste à essayer d'introduire le point noir comme texte de remplacement dans la formule SUBSTITUE . J'ai lu sur ce forum qu'il faut appuyer sur<Alt et taper le code du symbole (ici CF25) et relâcher <Alt. Je n'y arrive pas ! j'ai du loupé un épisode. Si vous pouvez m'expliquer comment éditer un point noir sans passer par un changement de police . . . AU plaisir de vous lire
 

job75

XLDnaute Barbatruc
Bonjour midimic,
J'en suis juste à essayer d'introduire le point noir comme texte de remplacement dans la formule SUBSTITUE . J'ai lu sur ce forum qu'il faut appuyer sur<Alt et taper le code du symbole (ici CF25)
Où avez-vous vu ça ? Le code du point est 149.

Le curseur étant dans la barre de formule, appuyez sur Alt et simultanément tapez 0149.

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 453
Messages
2 088 550
Membres
103 881
dernier inscrit
malbousquet