Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Longueur de champs

  • Initiateur de la discussion Initiateur de la discussion taxi.cab
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

taxi.cab

Guest
Bonjour à tous,

Je vous explique mon problème, je voudrais limiter la saisie automatique d'une cellule sur excel (H1) à 30 caracteres et lorsque les 30 caracteres sont atteints le reste de la saisie passe dans la cellule (I1)...
L'onglet validation longeur de saisie dans "validation de donnée" n'est pas adaptée car il envoie juste une alerte.
J'espere avoir était clair au niveau de ma demande.
Bonne journée à vous tous!
 
Re : Longueur de champs

Bonjour taxi.cab, et bienvenue,

Cela ne me semble possible que par macro.

Voici donc un fichier exemple avec macro événementielle qui se déclenche lorsqu'un cellule est modifiée en colonne H. Cette colonne est définie par la variable "Plage" que tu peux fixer à ta convenance dans la ligne "Set Plage = Range(_:_)".

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range

Set Plage = Range("H:H") ' Définit la zone de cellules concernées par la macro
Application.EnableEvents = False ' Évite la redondance de la macro en limitant l'action à un seul événement
If Not Intersect(Plage, Target) Is Nothing Then ' Si la cellule modifiée est dans la plage
  If Len(Target.Value) > 30 Then ' et si sa longueur dépasse 30 caractères
    Target.Offset(0, 1) = Mid(Target.Value, 31) ' la cellule à droite récupère les caractères à partir de 31
    Target.Value = Left(Target.Value, 30) ' la cellule modifiée est tronquée à partir du 31ème caractère
  End If
End If
Application.EnableEvents = True
End Sub
NB : le passage à la cellule adjacente ne se fait qu'après appui sur la touche Enter ou sur la sélection d'une autre cellule.

Bonne journée.

Cordialement.
 

Pièces jointes

Dernière édition:
Re : Longueur de champs

Re,
Est ce normal que lorsque je la recopie dans mon fichier de base, elle ne s'éxécute pas?
j'ai plusieurs feuille dans mon fichier est ce que ca change quelque chose ou pas?
Désolé du dérangement
 
Re : Longueur de champs

RE :

Si tu as plusieurs feuilles dans ton classeur, il faut bien entendu recopier ce code dans le module de la feuille concernée (ou des feuilles si ça doit s'appliquer à plusieurs).

Si tu as des soucis, tu peux joindre une copie de ton fichier, sans données confidentielles évidemment.

Cordialement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
818
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…