Alerte de saisie de mot abregé

Salut le forum

Je saisi des noms de mes clients de meme que le nom de leur parent dans la plage B13 :B16.

Je ne souhaite pas que l’on puisse abréger les noms dans ces cellules.

Ex traopur kaka junior et non traopur k junior.

Autrement dit, si dans les cellules citées, il y’a une seule lettre suivi d’un espace ou une lettre suivi d’un point et un espace, que l’agent soit alerté.

Ex : k ou k. est une forme d’abréviation.

N.B : si possible qu'il y'ait blocage pour contraindre la personne à corriger le mot abregé avant de continuer.

Merci pour vos contributions

15test-nomsaisi.xlsx (10.93 Ko)

Salut,

Un essai ci-joint.

Cordialement.

Salut Yvouille

C'est super après l'essai que j'ai réalisé.

J'ai un petit soucis que j'avais pas soulevé.

Au faite j'ai déjà le code ci-dessous dans la feuille DONNE de mon cas réel.

Pouvez-vous ci-possible fusionner les 2 codes (celui que vous venez de réaliser et celui ci-dessous)?

Merci

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValSaisie
Dim P As Integer
    On Error GoTo fin
    If Not Intersect(Range("B6,B11,B30,B10,B33,B34"), Target) Is Nothing Then
        Application.EnableEvents = False
        ValSaisie = Target
        Application.Undo
        P = InStr(Target, ValSaisie)
        If P > 0 Then
            Target = Left(Target, P - 1) & Mid(Target, P + Len(ValSaisie) + 1)
            If Right(Target, 1) = "+" Then
                Target = Left(Target, Len(Target) - 1)
            End If
        Else
            If Target = "" Then
                Target = ValSaisie
            Else
                Target = Target & "+" & ValSaisie
            End If
        End If
        Application.EnableEvents = True
    End If
 Application.EnableEvents = True   ' Dans tous les cas on remet les évènements en service
End Sub

Re,

zombe a écrit :

Au faite j'ai déjà le code ci-dessous dans la feuille DONNE de mon cas réel.

Pourquoi ne pas l'avoir fourni de suite ??

Es-tu certain que ton code fonctionne tel que fourni ? J'ai fusionné les deux codes et le débogueur m'indique qu'il manque l'étiquette "Fin". Je l'ai mise n'importe où afin de tester la fusion des deux codes et ça passe, mais tu vas devoir revoir cette partie de ton code.

capture 03 08

Cordialement.

Salut Yvouille et le forum

Merci pour votre solution qui marche parfaitement.

Avec votre permission je souhaite que vous revoyer cette partie pour code :

Target = ""
            Target.Activate

Si j'ai bien compris, cela remet la cellule à vide et l'active à nouveau.

Au lieu de la remettre à vide pour que l'on reprenne la saisie, n'est-il pas possible qu'il sélectionne la partie ou y'a l'abréviation?

Merci pour tout

Bonjour le fil, Zombe

Sélectionner le texte me parait très difficile, en revanche tu peux demander le texte de remplacement dan s un Inputbox()

et ce, jusqu'à ce qu'une bonne valeur soit saisie

    For i = 0 To UBound(Tableau)
      Do While Len(Tableau(i)) = 1 Or Right(Tableau(i), 1) = "."
        MsgBox ("La saisie d'une lettre seule ou d'un point est interdite")
        NewTxt = InputBox("Merci de saisir la valeur de remplacment pour [" & Tableau(i) & "]", "NOUVELLE VALEUR ...")
        If NewTxt <> "" Then
          For NbMot = 0 To i
            Pos = Pos + Len(Tableau(NbMot)) + 1
          Next NbMot
          Pos = Pos - 2
          ' Remplacer la partie qui ne va pas
          Application.EnableEvents = False
          Target.Value = Left(Groupe_mots, Pos) & NewTxt & Mid(Groupe_mots, Pos + 2)
          Application.EnableEvents = True
        End If
        Pos = 0 ' Remettre à zéro la position
        ' Redéfinir le tableau
        Tableau = Split(Target.Value, " ")
      Loop
    Next i

A+

Salut Bruno et merci pour votre idée magnifique.

En déclarant vos nvelles variable comme:

Dim Pos%

Dim NbMot%

Ca marche bien.

Encore merci

Rechercher des sujets similaires à "alerte saisie mot abrege"