Forcer en texte une colonne de tableau structuré

Bonjour,

Je souhaite que la saisie soit forcée en texte (pas de 0123456789) dans toute une colonne (ROUTEUR EMAIL) d'un tableau structurée (T_Planning).

J'ai essayé avec la formule ESTTEXTE mais ça ne fonctionne pas (bon je n'y croyais pas vraiment) :

    With Range("T_Planning[ROUTEUR COURRIER]").Validation
        .Delete
        .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=ESTTEXTE(INDIRECT(""T_Planning[ROUTEUR COURRIER]""))"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

Je ne sais pas vraiment comment insérer une formule dans une validation de données en VBA.

Merci par avance :)

Auriane

Bonjour

Il faut commencer par formater la colonne en texte

Manuellement ceci fonctionne pour contrôler que l'on est en texte et que le résultat pourrait être converti en numérique (mais, comme pour toute validation, un copier coller efface la validation... donc on a intérêt à contrôler la saisie par VBA)

=ET(ESTTEXTE(B2);B2*1>0)

Bonjour,

Je n'ai peut-être pas tout compris mais :

Range("T_Planning[ROUTEUR EMAIL]").NumberFormat = "@"

Devrait faire l'affaire non ?

Merci pour ta réponse.

Je n'arrive pas à adapter la formule avec la colonne de mon tableau structuré...

J'ai chaque fois un bug lors de son exécution.

    With Range("T_Planning[ROUTEUR COURRIER]").Validation
        .Delete
        .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=ET(ESTTEXTE("T_Planning[ROUTEUR COURRIER]");"T_Planning[ROUTEUR COURRIER]"*1>0)"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

Une idée ?

Merci !

@Jean-Paul

Merci pour ta réponse mais cela ne suffit pas.

Ton code permet de mettre le format en caractères mais elle n'interdit pas la saisie de chiffres (s'ils saisissent des chiffres ils seront bien pris en compte même si transformés en texte).

Je ne suis pas sûre d'être très claire...

RE

Sub Validation()

    With [T_Planning].ListObject.ListColumns("ROUTEUR COURRIER").DataBodyRange
        C = .Column
        L = .Row
        Formul = " =ET(ESTTEXTE(" & Chr(C + 64) & L & ";" & Chr(C + 64) & L & "*1>0)"
        .NumberFormat = "@"
        With .Validation
            .Delete
            .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
                Formula1:=Formul
            .IgnoreBlank = True
            .InCellDropdown = True
            .ShowInput = True
            .ShowError = True
        End With
    End With
End Sub
Rechercher des sujets similaires à "forcer texte colonne tableau structure"