Une macro pour insérer une caractère

Résolu
Guilhot Messages postés 202 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. benol3 Messages postés 718 Statut Membre 87
     
    Salut,

    En police arial, c'est possible :

    alt+3 à 6 pour les symboles que tu souhaites
    0
    1. Guilhot Messages postés 202 Date d'inscription   Statut Membre Dernière intervention  
       
      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
      0
  2. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour

    Prendre la police symbol

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

    0
    1. Guilhot Messages postés 202 Date d'inscription   Statut Membre Dernière intervention  
       
      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.
      0
    2. Guilhot Messages postés 202 Date d'inscription   Statut Membre Dernière intervention  
       
      Ce que je voudrais faire: "Ni 4 cartes à ? ni 4 cartes à ?" dans une même cellule sans avoir à Insérer etc etc
      0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
    1. Guilhot Messages postés 202 Date d'inscription   Statut Membre Dernière intervention  
       
      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
      0
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0