Excel 2013 : Remplacement automatique chiffre/ lettre webdings
Résolu
Moys09
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
Moys09 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Moys09 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Excel 2013 : Remplacement automatique chiffre/ lettre webdings
- Word 2013 - Télécharger - Traitement de texte
- Excel 2013 - Télécharger - Tableur
- Liste déroulante excel - Guide
- Powerpoint 2013 - Télécharger - Présentation
- Word et excel gratuit - Guide
20 réponses
Bonjour,
Pour remplacer une valeur dans la cellule active, par VBA uniquement si tu as quelques notions
Pour remplacer une valeur dans la cellule active, par VBA uniquement si tu as quelques notions
Merci Mike-31 !
C'est bien ce qu'il me semblait sauf que je n'ai AUCUNE notion et ne sais absolument pas comment faire ! C'est frustrant de savoir quelque chose, possible, sans pouvoir le faire ! Sais-tu où je pourrai trouver l'info ?
Merci !
C'est bien ce qu'il me semblait sauf que je n'ai AUCUNE notion et ne sais absolument pas comment faire ! C'est frustrant de savoir quelque chose, possible, sans pouvoir le faire ! Sais-tu où je pourrai trouver l'info ?
Merci !
Re,
ça va être difficile bien que le code soit simple
voir le type de code
fait un clic droit sur l'onglet de ta feuille/Visualiser le code et colle le code cidessus
ferme le Visual Basic pour revenir sur ta feuille
ça va être difficile bien que le code soit simple
voir le type de code
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Selection, Range("H3:BB32")) Is Nothing Then
If Target.Value = 1 Then Target = ">"
If Target.Value = 2 Then Target = "&"
If Target.Value = 3 Then Target = "º"
If Target.Value = 4 Then Target = "("
If Target.Value = 5 Then Target = "U"
If Target.Value = 6 Then Target = "V"
End If
End Sub
fait un clic droit sur l'onglet de ta feuille/Visualiser le code et colle le code cidessus
ferme le Visual Basic pour revenir sur ta feuille
Ok Merci ! Avant d'essayer, n'y a-t-il pas une spécificité pour que la lettre soit directement en Webdings ?
En fait, je voulais cela que pour les chiffres car j'ai un autre code plus simple (sans VBA pour les lettres)...
Je suis désolé d'abuser de ton temps...
En fait, je voulais cela que pour les chiffres car j'ai un autre code plus simple (sans VBA pour les lettres)...
Je suis désolé d'abuser de ton temps...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait, ce n'est qu'une simple règle conditionnelle à savoir une colorisation de la cellule en fonction de la lettre indiquée dans la cellule.
Ce que je voudrai dans l'idéal, c'est que dans la cellule X :
- si j'écris une lettre précise, la cellule est colorisée comme je le souhaite (ça c'est ok !)
- si j'écris un nombre (ou une autre lettre n'entrant pas dans la règle de colorisation de cellule), une lettre au format webdings ou un symbole que j'aurai choisi, apparaisse...
Je ne sais pas si je suis assez clair...
Ce que je voudrai dans l'idéal, c'est que dans la cellule X :
- si j'écris une lettre précise, la cellule est colorisée comme je le souhaite (ça c'est ok !)
- si j'écris un nombre (ou une autre lettre n'entrant pas dans la règle de colorisation de cellule), une lettre au format webdings ou un symbole que j'aurai choisi, apparaisse...
Je ne sais pas si je suis assez clair...
Re,
fait abstraction de tes mise en forme conditionnelles qui te donnent satisfactions
ensuite que veux tu faire comme saisie
fait abstraction de tes mise en forme conditionnelles qui te donnent satisfactions
ensuite que veux tu faire comme saisie
Ok !
Alors, tout en gardant ces mises en forme conditionnelles, j'aimerai que, lorsque j'écris "1" dans la cellule (H3, puis H4... jusqu'à H30, de même pour J3:J30), un symbole apparaisse (celui qui correspond au ">" dans la police Webdings).
De même, j'aimerai que si j'écris "2" au lieu de "1" dans ces mêmes cellules, un autre symbole apparaisse (ce qui correspond au "&" dans la police Webdings)...
J'aimerai faire ça pour les chiffres 1 à 6...
Est-ce plus clair ?
Alors, tout en gardant ces mises en forme conditionnelles, j'aimerai que, lorsque j'écris "1" dans la cellule (H3, puis H4... jusqu'à H30, de même pour J3:J30), un symbole apparaisse (celui qui correspond au ">" dans la police Webdings).
De même, j'aimerai que si j'écris "2" au lieu de "1" dans ces mêmes cellules, un autre symbole apparaisse (ce qui correspond au "&" dans la police Webdings)...
J'aimerai faire ça pour les chiffres 1 à 6...
Est-ce plus clair ?
Re,
c'est bien ce que j'avais compris et il n'y a que le VBA pour régler ce problème de remplacement de saisie dans la même cellule et c'est le type de code que je t'ai donné qu'il faut utiliser, complété du choix de police de caractère
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
c'est bien ce que j'avais compris et il n'y a que le VBA pour régler ce problème de remplacement de saisie dans la même cellule et c'est le type de code que je t'ai donné qu'il faut utiliser, complété du choix de police de caractère
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Re,
comme cela
il est possible d'ajouter également la taille de ta police dans le cas ou la police est Webdings
comme cela
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Selection, Range("H3:BB32")) Is Nothing Then
If Target.Value = 1 Then
Target = ">"
ElseIf Target.Value = 2 Then
Target = "&"
ElseIf Target.Value = 3 Then
Target = "º"
ElseIf Target.Value = 4 Then
Target = "("
ElseIf Target.Value = 5 Then
Target = "U"
ElseIf Target.Value = 6 Then
Target = "V"
Target.Font.Name = "Webdings"
Else
Target.Font.Name = "Arial"
End If
End If
End Sub
il est possible d'ajouter également la taille de ta police dans le cas ou la police est Webdings
Re,
non mon code fonctionne parfaitement pour les valeurs de 1 à 6, peut être as tu formaté tes cellules en texte
non mon code fonctionne parfaitement pour les valeurs de 1 à 6, peut être as tu formaté tes cellules en texte
A Mike-16 et aux éventuels autres contributeurs ;-)
Voici le code que j'ai validé dans VBA :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Selection, Range("H3:BB32")) Is Nothing Then
If Target.Value = 1 Then
Target = "h"
ElseIf Target.Value = 2 Then
Target = "e"
ElseIf Target.Value = 3 Then
Target = "N"
ElseIf Target.Value = 4 Then
Target = "("
ElseIf Target.Value = 5 Then
Target = "-"
ElseIf Target.Value = 6 Then
Target = "F"
Target.Font.Name = "Wingdings"
Else
Target.Font.Name = "Calibri"
End If
End If
End Sub
Lorsque j'inscris "6" dans une cellule, le bon symbole wingdings correspondant à la lettre "F" apparaît ! C'est exactement ce que je voulais.
Or, si j'inscris 1, 2, 3, 4 ou 5, dans cette même cellule, apparaît respectivement un "h", "e", "N", "(" ou "-"...
Quelqu'un pourrait-il me dire ce que je dois faire pour parvenir à finaliser mon projet ?
Voici le code que j'ai validé dans VBA :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Selection, Range("H3:BB32")) Is Nothing Then
If Target.Value = 1 Then
Target = "h"
ElseIf Target.Value = 2 Then
Target = "e"
ElseIf Target.Value = 3 Then
Target = "N"
ElseIf Target.Value = 4 Then
Target = "("
ElseIf Target.Value = 5 Then
Target = "-"
ElseIf Target.Value = 6 Then
Target = "F"
Target.Font.Name = "Wingdings"
Else
Target.Font.Name = "Calibri"
End If
End If
End Sub
Lorsque j'inscris "6" dans une cellule, le bon symbole wingdings correspondant à la lettre "F" apparaît ! C'est exactement ce que je voulais.
Or, si j'inscris 1, 2, 3, 4 ou 5, dans cette même cellule, apparaît respectivement un "h", "e", "N", "(" ou "-"...
Quelqu'un pourrait-il me dire ce que je dois faire pour parvenir à finaliser mon projet ?
Re,
si je comprends bien, ça change tout, tu veux dire que dans ta cellule il peut y avoir 1 comme 1et 2 bien sur sans le et soit 12 ou encore 123
c'est bien ça
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
si je comprends bien, ça change tout, tu veux dire que dans ta cellule il peut y avoir 1 comme 1et 2 bien sur sans le et soit 12 ou encore 123
c'est bien ça
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Pardon, je me suis mis mal exprimé !
Non, ce sera soit "1", "2, "3", "4", "5" ou "6" aucune possibilité chiffrée autre
Mon soucis c'est que la seule correspondance qui fonctionne comme je le veux est celle du "6".
Quand j'écris "6" en calibri, il écrit "F" et le remplacement automatiquement par le "F" en police Wingdings. Il ne le fait pas pour les autres...
Non, ce sera soit "1", "2, "3", "4", "5" ou "6" aucune possibilité chiffrée autre
Mon soucis c'est que la seule correspondance qui fonctionne comme je le veux est celle du "6".
Quand j'écris "6" en calibri, il écrit "F" et le remplacement automatiquement par le "F" en police Wingdings. Il ne le fait pas pour les autres...
Re,
bizarre,
ferme ton Excel qui est peut être en erreur, puis télécharge mon fichier et teste la partie blanche qui correspond à ta plage
https://www.cjoint.com/c/FHkqYZsX61j
bizarre,
ferme ton Excel qui est peut être en erreur, puis télécharge mon fichier et teste la partie blanche qui correspond à ta plage
https://www.cjoint.com/c/FHkqYZsX61j
Re,
ouvre mon fichier, puis
tu as peut être un niveau de protection trop élevé, contrôle onglet Développeur/module Code/Sécurité des macros/coche Activer toutes les macros(non recommandé .........
Enregistre et ferme ton Excel
ouvre à nouveau mon fichier et accepte l'activation des macros si Excel te le propose et reteste le fichier voir
ouvre mon fichier, puis
tu as peut être un niveau de protection trop élevé, contrôle onglet Développeur/module Code/Sécurité des macros/coche Activer toutes les macros(non recommandé .........
Enregistre et ferme ton Excel
ouvre à nouveau mon fichier et accepte l'activation des macros si Excel te le propose et reteste le fichier voir
Ne serait-ce pas possible de séparer avec :
- d'un côté une macro qui remplacerai automatiquement le "1" par le ">"
- une seconde macro qui remplacement automatiquement les nouvelles écritures (">") du format calibri au format wingdings du genre "s'il y a écrit ">", police wingdings"... pour ensuite faire de même avec les nombres de 2 à 6 ?
- d'un côté une macro qui remplacerai automatiquement le "1" par le ">"
- une seconde macro qui remplacement automatiquement les nouvelles écritures (">") du format calibri au format wingdings du genre "s'il y a écrit ">", police wingdings"... pour ensuite faire de même avec les nombres de 2 à 6 ?
Re,
c'est vraiment bizarre, arrête ton ordi avant de le redémarrer et teste mon fichier, et si ça ne fonctionne pas je ne vois pas d’où cela peut venir parce que le code fonctionne parfaitement pour l'avoir testé
c'est vraiment bizarre, arrête ton ordi avant de le redémarrer et teste mon fichier, et si ça ne fonctionne pas je ne vois pas d’où cela peut venir parce que le code fonctionne parfaitement pour l'avoir testé
Re,
il est impossible d'avoir plusieurs codes avec la syntaxe
Private Sub Worksheet_Change(ByVal Target As Range)
si sur la même feuille du Visual Basic tu plusieurs code avec cette syntaxe il ne faut en conserver qu'un
après qu'il y ait plusieurs lignes ne change rien au fonctionnement du code mais tu peux remplacer ton code par ce code
ensuite tu testes le 1 puis tu reviens dans le code et change le 1 par 2 ainsi que le "h" par "e" puis par 3 etc ...
il est impossible d'avoir plusieurs codes avec la syntaxe
Private Sub Worksheet_Change(ByVal Target As Range)
si sur la même feuille du Visual Basic tu plusieurs code avec cette syntaxe il ne faut en conserver qu'un
après qu'il y ait plusieurs lignes ne change rien au fonctionnement du code mais tu peux remplacer ton code par ce code
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Selection, Range("H3:BB32")) Is Nothing Then
If Target.Value = 1 Then
Target = "h"
Target.Font.Name = "Wingdings"
Else
Target.Font.Name = "Calibri"
End If
End If
End Sub
ensuite tu testes le 1 puis tu reviens dans le code et change le 1 par 2 ainsi que le "h" par "e" puis par 3 etc ...
Re,
remplace tes codes par ce dernier
si ça ne fonctionne pas, peux tu mettre ton fichier anonymisé à disposition voir ce qui bloque en suivant cette procédure
1) Clic sur ce lien https://www.cjoint.com/
2) Clic sur le bouton Parcourir pour sélectionner ton fichier
3) Clic sur le bouton Créer le lien en bas de la page
4) Au bout de quelques secondes en haut de la page en bleu souligné un lien sera généré, tu le sélectionnes et tu le copies dans une réponse
remplace tes codes par ce dernier
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Selection, Range("H3:BB32")) Is Nothing Then
On Error Resume Next
If Target.Value = 1 Then Target = ">"
If Target.Value = 2 Then Target = "&"
If Target.Value = 3 Then Target = "º"
If Target.Value = 4 Then Target = "("
If Target.Value = 5 Then Target = "U"
If Target.Value = 6 Then Target = "V"
If Target.Value = 1 Or Target.Value = 2 Or Target.Value = 3 Or Target.Value = 4 Or Target.Value = 5 Or Target.Value = 6 Then
Target.Font.Name = "Webdings"
Else
Target.Font.Name = "Arial"
End If
End If
End Sub
si ça ne fonctionne pas, peux tu mettre ton fichier anonymisé à disposition voir ce qui bloque en suivant cette procédure
1) Clic sur ce lien https://www.cjoint.com/
2) Clic sur le bouton Parcourir pour sélectionner ton fichier
3) Clic sur le bouton Créer le lien en bas de la page
4) Au bout de quelques secondes en haut de la page en bleu souligné un lien sera généré, tu le sélectionnes et tu le copies dans une réponse
Bonsoir Mike-31 !
J'ai encore passé pas mal de temps sur mon truc et j'y suis parvenu !
En fait, j'avais posté mon problème sur un autre site et le code VBA ne fonctionnait pas non plus. En combinant le code que vous m'avez donné et celui de l'autre site, tout a fonctionné !
Voici le code si cela vous intéresse :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As String
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("H3:BB32")) Is Nothing Then
If Target.Value = 1 Then
Target = "?"
ElseIf Target.Value = 2 Then
Target = "e"
ElseIf Target.Value = 3 Then
Target = "%"
ElseIf Target.Value = 4 Then
Target = "("
ElseIf Target.Value = 5 Then
Target = "."
ElseIf Target.Value = 6 Then
Target = "F"
End If
If Target > "" Then
Target.Font.Name = "Wingdings"
Else
Target.Font.Name = "Calibri"
End If
End If
End Sub
Merci beaucoup pour votre aide en tout cas !!!
J'ai encore passé pas mal de temps sur mon truc et j'y suis parvenu !
En fait, j'avais posté mon problème sur un autre site et le code VBA ne fonctionnait pas non plus. En combinant le code que vous m'avez donné et celui de l'autre site, tout a fonctionné !
Voici le code si cela vous intéresse :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As String
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("H3:BB32")) Is Nothing Then
If Target.Value = 1 Then
Target = "?"
ElseIf Target.Value = 2 Then
Target = "e"
ElseIf Target.Value = 3 Then
Target = "%"
ElseIf Target.Value = 4 Then
Target = "("
ElseIf Target.Value = 5 Then
Target = "."
ElseIf Target.Value = 6 Then
Target = "F"
End If
If Target > "" Then
Target.Font.Name = "Wingdings"
Else
Target.Font.Name = "Calibri"
End If
End If
End Sub
Merci beaucoup pour votre aide en tout cas !!!
Re,
tu es pratiquement revenu sur mon code post 13
Le principal est l'aboutissement
si ton problème est réglé, n'oublie pas de passer le statut de la discussion en résolu ou confirme le moi que je le fasse pour toi
tu es pratiquement revenu sur mon code post 13
Le principal est l'aboutissement
si ton problème est réglé, n'oublie pas de passer le statut de la discussion en résolu ou confirme le moi que je le fasse pour toi
Re,
oui mais comme tu as écris la fin de ton code, quel que soit ta saisie la police de ta cellule passera en Webdings
mais bon si cela te convient
oui mais comme tu as écris la fin de ton code, quel que soit ta saisie la police de ta cellule passera en Webdings
mais bon si cela te convient
Bonjour !
Oui, je me suis rendu compte et j'ai trouvé la solution avec le code suivant... C'est encore plus simple que je ne le pensais !
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As String
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("H3:BB32")) Is Nothing Then
If Target.Value = 1 Then
Target = "h"
Target.Font.Name = "Wingdings"
ElseIf Target.Value = 2 Then
Target = "e"
Target.Font.Name = "Wingdings"
ElseIf Target.Value = 3 Then
Target = "%"
Target.Font.Name = "Wingdings"
ElseIf Target.Value = 4 Then
Target = "("
Target.Font.Name = "Wingdings"
ElseIf Target.Value = 5 Then
Target = "."
Target.Font.Name = "Wingdings"
ElseIf Target.Value = 6 Then
Target = "F"
Target.Font.Name = "Wingdings"
End If
End If
End sub
Oui, je me suis rendu compte et j'ai trouvé la solution avec le code suivant... C'est encore plus simple que je ne le pensais !
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As String
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("H3:BB32")) Is Nothing Then
If Target.Value = 1 Then
Target = "h"
Target.Font.Name = "Wingdings"
ElseIf Target.Value = 2 Then
Target = "e"
Target.Font.Name = "Wingdings"
ElseIf Target.Value = 3 Then
Target = "%"
Target.Font.Name = "Wingdings"
ElseIf Target.Value = 4 Then
Target = "("
Target.Font.Name = "Wingdings"
ElseIf Target.Value = 5 Then
Target = "."
Target.Font.Name = "Wingdings"
ElseIf Target.Value = 6 Then
Target = "F"
Target.Font.Name = "Wingdings"
End If
End If
End sub
Re,
Oui mais avec tes cellules reste en format Webdings
et tu as 5 ligne inutiles, pour ma part je supprimerai toutes ces lignes remplacerai cette dernière par Target.Font.Name = "Wingdings"
ElseIf Target.Value = "h" Or Target.Value = "e" Or Target.Value = "%" Or Target.Value = "(" Or Target.Value = "." Or Target.Value = "F" Then
Target.Font.Name = "Wingdings"
Else: Target.Font.Name = "Calibri"
Oui mais avec tes cellules reste en format Webdings
et tu as 5 ligne inutiles, pour ma part je supprimerai toutes ces lignes remplacerai cette dernière par Target.Font.Name = "Wingdings"
ElseIf Target.Value = "h" Or Target.Value = "e" Or Target.Value = "%" Or Target.Value = "(" Or Target.Value = "." Or Target.Value = "F" Then
Target.Font.Name = "Wingdings"
Else: Target.Font.Name = "Calibri"
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As String
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("H3:BB32")) Is Nothing Then
If Target.Value = 1 Then
Target = "h"
ElseIf Target.Value = 2 Then
Target = "e"
ElseIf Target.Value = 3 Then
Target = "%"
ElseIf Target.Value = 4 Then
Target = "("
ElseIf Target.Value = 5 Then
Target = "."
ElseIf Target.Value = 6 Then
Target = "F"
ElseIf Target.Value = "h" Or Target.Value = "e" Or Target.Value = "%" Or Target.Value = "(" Or Target.Value = "." Or Target.Value = "F" Then
Target.Font.Name = "Wingdings"
Else: Target.Font.Name = "Calibri"
End If
End If
End Sub