Mise en forme particulière

Résolu
mc2_2 -  
 mc2_2 -
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

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. mc2_2
     
    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
  3. mc2_2
     
    Bonjour eric,

    Merci beaucoup pour ton aide.

    Bonne journée.
    0