Une macro pour insérer une caractère [Résolu/Fermé]

Signaler
Messages postés
149
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
5 mai 2021
-
Messages postés
24054
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
17 mai 2021
-
Bonjour,

j'ai pu créer une macro dans word qui insère les caractères trèfle, Carreau, coeur ou Pique dans mon texte; je voudrais faire la même chose dans excel 2007 mais je n'obtiens que le signe "?". Est il possible de faire ce que je voudrais réaliser ?


4 réponses

Messages postés
569
Date d'inscription
lundi 29 juillet 2013
Statut
Membre
Dernière intervention
7 mai 2015
74
Salut,

En police arial, c'est possible :

alt+3 à 6 pour les symboles que tu souhaites
Messages postés
149
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
5 mai 2021

Merci, j'ai beau me mettre en Arial, lorsque je tape Alt 3 je n'ai rien dans ma cellule ......
Pourtant c'est très facile de faire cette macro sous word ......je continuerai à faire Insertion, symbole, insérer, fermer, OK ...... tant pis
Messages postés
5556
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
14 mai 2021
607
Bonjour

Prendre la police symbol

=car(167) trèfle
=car(168) carreau
= car(169) coeur
=car(170) pique

Messages postés
149
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
5 mai 2021

Merci, effectivement je peux faire une macro (en passant d'une police à l'autre) qui fait apparaître le symbole trèfle dans ma cellule. Mon problème demeure quand même car dés que j'ai inscrit du texte dans la cellule le macro ne m'inscrit plus rien. Il faut peut-être que je modifie la "nature" du contenu de la cellule .... transformer en TEXTE ???
En tout cas merci pour cette réponse rapide.
Messages postés
149
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
5 mai 2021

Ce que je voudrais faire: "Ni 4 cartes à ? ni 4 cartes à ?" dans une même cellule sans avoir à Insérer etc etc
Messages postés
24054
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
17 mai 2021
6 769
Bonjour,

Une proposition en vba.
Saisir /p pour pique, /c pour coeur, /k pour carreau et /t pour trèfle, garder la police Arial.
Avec en bonus coeur et carreau en rouges.
edit : voir autre version sur post suivant

eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Messages postés
149
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
5 mai 2021

Vraiment Chapeau !!! Merci beaucoup.
Si ce n'est pas trop demander: j'ai copié ça dans un fichier Excel qui supporte les macros et ça marche au poil; est ce qu'il serait possible d'intégrer dans mon Excel habituel pour que je retrouve la macro à chaque feuille ?
Est ce que je peux importer et sauvegarder ? De quelle manière ?
Très sympa et encore merci
Michel
Messages postés
24054
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
17 mai 2021
6 769
J'en profite pour améliorer, chaque caractère peut être présent plusieurs fois.
Saisir /p pour pique, /c pour coeur, /k pour carreau et /t pour trèfle, garder la police Arial

Actif sur toutes les feuille du classeur, à mettre dans Thisworkbook :
Option Explicit
Dim stopEvents As Boolean

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim i As Long, ch As String
    If Intersect(Target, Range("A2:C10")) Is Nothing Then Exit Sub
    If Target.Count > 1 Or stopEvents Then Exit Sub
    ch = Target
    While InStr(ch, "/p") > 0
        ch = Replace(ch, "/p", ChrW(&H2660))
    Wend
    While InStr(ch, "/c") > 0
        ch = Replace(ch, "/c", ChrW(&H2665))
    Wend
    While InStr(ch, "/k") > 0
        ch = Replace(ch, "/k", ChrW(&H2666))
    Wend
    While InStr(ch, "/t") > 0
        ch = Replace(ch, "/t", ChrW(&H2663))
    Wend
    stopEvents = True
    Target = ch
    stopEvents = False
    'rouge
    For i = 1 To Len(Target)
        If Mid(Target, i, 1) = ChrW(&H2665) Or Mid(Target, i, 1) = ChrW(&H2666) Then
            Target.Characters(i, 1).Font.ColorIndex = 3
        End If
    Next i
End Sub

Est ce que je peux importer et sauvegarder ? De quelle manière ?
A partir d'excel 2007 il faut enregistrer le classeur en type *.xlsm pour conserver les macros.
https://www.cjoint.com/?DExuihpwMRI

eric