Mise en forme particulière

Résolu/Fermé
mc2_2 - 14 janv. 2013 à 15:38
 mc2_2 - 18 janv. 2013 à 09:47
Bonjour,

Je me perme de faire appel à vos services, pour une mise en forme particulière dans EXCEL.
Je doit dans un formulaire de demande de codification d'article, écrire absolument en majuscule dans certaine cellule.
Ceci parce-que notre ERP n'est pas compatible avec les caractères spéciaux tel que les é, ë, ê ...

Est-il possible de dire lorsque j'écrit dans cette cellule, je transforme les minuscules en majuscule et shint ainsi les accents ?

Par avance merci de votre aide.

3 réponses

eriiic Messages postés 24575 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 mai 2024 7 219
14 janv. 2013 à 16:09
Bonjour,

Fonction personnalisée dans un module standard :
Function Sans_accents(Chaine$) As String ' R. Dezan + Michel Pierron
'Cette fonction enlève également les OE, oe, Æ, æ qui posent un problème sur les sytèmes anglais.
' remplacement des caractères accentués
    Dim a As String, b As String
    Dim i As Long, u As Long
    a = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
    b = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
    Chaine = Replace(Replace(Replace(Replace(Chaine, "oe", "oe"), "OE", "OE"), "æ", "ae"), "Æ", "AE")
    For i = 1 To Len(Chaine)
        u = InStr(1, a, Mid(Chaine, i, 1), 0)
        If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
    Next i
    Sans_accents = Chaine
End Function


Si c'est un formulaire :
Private Sub TextBox1_Change()
    TextBox1 = UCase(Sans_accents(TextBox1))
End Sub


Si c'est une plage de cellule déjà saisie :
Sub traiterSelection()
    Dim c As Range
    For Each c In Selection
        c = UCase(Sans_accents(c))
    Next c
End Sub


Traiter une plage lors de la saisie :
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [B2:B10]) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    Target = UCase(Sans_accents(Target.Value))
    Application.EnableEvents = True
End Sub


https://www.cjoint.com/c/CAoqiKQLqBM
eric
0
Bonjour eriiic,

Je voit que la formule cré fonctionne ,mais je n'arrive pas à la transféé sur mon fichier.

Est-ce que tu pourrai faire la même manipulation avec mon fichier Excel ?

Sachant que les deux cellules à traiter sont :
- libellé de la demande en B12, attention cellule fusionnée
- libellé court en K19, attention cellule fusionnée

Lien d'accès fichier.
http://cjoint.com/?CArkvBeelYG

Par avance merci de ton aide.
0
eriiic Messages postés 24575 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 mai 2024 7 219
17 janv. 2013 à 11:47
0
Bonjour eric,

Merci beaucoup pour ton aide.

Bonne journée.
0