Limitation a la frappe caracteres dans excel
Fermé
artie
-
19 févr. 2009 à 01:15
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 4 mars 2015 à 16:26
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 4 mars 2015 à 16:26
Bonjour,
je suis debutant dans excel.
je veux taper un texte dans un tableau excel et qu'a chaque frappe (y compris les espaces) le curseur passe automatiquement a la cellule suivante de la ligne, puis en fin de ligne ( a la 40 eme colonne ) a la première cellule de la ligne suivante.
merci d'avance
je suis debutant dans excel.
je veux taper un texte dans un tableau excel et qu'a chaque frappe (y compris les espaces) le curseur passe automatiquement a la cellule suivante de la ligne, puis en fin de ligne ( a la 40 eme colonne ) a la première cellule de la ligne suivante.
merci d'avance
A voir également:
- Limitation a la frappe caracteres dans excel
- Aller à la ligne excel - Guide
- Caractères ascii - Guide
- Liste déroulante excel - Guide
- Comment calculer la moyenne sur excel - Guide
- Si et excel - Guide
7 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 4/03/2015 à 12:35
Modifié par eriiic le 4/03/2015 à 12:35
Bonjour,
Une proposition qui réparti tous les caractères d'une saisie dans B2:B6 sur les colonnes dans la limite de 40 car. :
Ca ne te fait plus qu'un seul Enter par ligne.
Si il faut découper les tranches de 40 car sur plusieurs lignes le préciser.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Une proposition qui réparti tous les caractères d'une saisie dans B2:B6 sur les colonnes dans la limite de 40 car. :
Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long, s As String If Target.Count > 1 Then Exit Sub If Intersect(Target, [B2:B6]) Is Nothing Then Exit Sub If Len(Target) > 40 Then MsgBox Len(Target) & " caractères !" Else Application.ScreenUpdating = False Application.EnableEvents = False s = Target For i = 1 To Len(s) Target.Offset(, i - 1) = Mid(s, i, 1) Next i Application.EnableEvents = True Application.ScreenUpdating = True End If End Sub
Ca ne te fait plus qu'un seul Enter par ligne.
Si il faut découper les tranches de 40 car sur plusieurs lignes le préciser.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 421
19 févr. 2009 à 07:32
19 févr. 2009 à 07:32
Bonjour
sauf erreur de compréhension de la question, essayez:
1°) outil / option / Onglet "Modification"
Cochez" déplacer sélection après validation"(ça doit déja être fait)
choisir sens: Droite
2°) sélectionner dans la feuille le champ à remplir complet:
Nombre de colonnes voulues et nombre de lignes suffisant, (ou alors toutes la hauteur des colonnes choisies en sélectionnant sur la régle des entêtes)
3° taper les caractères et entrée à chaque fois. Le curseur démarre à la première cellule en haut à gauche du champ et reviendra à la première colonne, ligne en dessous lorsqu'il aura atteint la limite du champ
Si j'ai bien compris....!
Crdlmnt
sauf erreur de compréhension de la question, essayez:
1°) outil / option / Onglet "Modification"
Cochez" déplacer sélection après validation"(ça doit déja être fait)
choisir sens: Droite
2°) sélectionner dans la feuille le champ à remplir complet:
Nombre de colonnes voulues et nombre de lignes suffisant, (ou alors toutes la hauteur des colonnes choisies en sélectionnant sur la régle des entêtes)
3° taper les caractères et entrée à chaque fois. Le curseur démarre à la première cellule en haut à gauche du champ et reviendra à la première colonne, ligne en dessous lorsqu'il aura atteint la limite du champ
Si j'ai bien compris....!
Crdlmnt
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 421
19 févr. 2009 à 12:45
19 févr. 2009 à 12:45
Re
il me semble toutefois avoir vérifié sur mon Excel (qui est peut être un spécial) que la cellule détectée par le clavier dans le cas d'une sélection multiple contigue est bien la première en haut à gauche, où rentre le premier texte frappé... comme indiqué au point N°3 de mon message 2.
A noter que dans le cas de champs non alignés,c'est le dernier champ sélectionné qui engage le départ
Je pense que la seule différence entre ma proposition et la demande tient au fait qu'il faut faire une entrée pour changer de cellule.
Crdlmnt
il me semble toutefois avoir vérifié sur mon Excel (qui est peut être un spécial) que la cellule détectée par le clavier dans le cas d'une sélection multiple contigue est bien la première en haut à gauche, où rentre le premier texte frappé... comme indiqué au point N°3 de mon message 2.
A noter que dans le cas de champs non alignés,c'est le dernier champ sélectionné qui engage le départ
Je pense que la seule différence entre ma proposition et la demande tient au fait qu'il faut faire une entrée pour changer de cellule.
Crdlmnt
Merci beaucoup mais mes nombreux essais n'ont pas donné de résultat.
J ai trouvé un code qui déclenche un pop up quand le contenu d'une cellule dépasse le contenu autorisé
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each cell In UsedRange
If Len(cell.Value) > 1 Then
MsgBox " Can't enter more than 1 character"
cell.Value = ""
End If
Next
End Sub
C'est possible aussi dans la validation des données, j'aimerais qu au lieu de ce message excel execute, dés dépassement du nombre de caractères autorisés (1), la commande "entrée, pour que le caractère supplémentaire s inscrive automatiquement dans la cellule suivante . Est-ce possible en changeant une ligne du code? Je ne connais pas l'écriture de code et ne sais pas comment faire.
Pour le changement de ligne au bout de 40 colonnes la solution que tu m as proposée ne marche pas sur mon excel
Merci
J ai trouvé un code qui déclenche un pop up quand le contenu d'une cellule dépasse le contenu autorisé
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each cell In UsedRange
If Len(cell.Value) > 1 Then
MsgBox " Can't enter more than 1 character"
cell.Value = ""
End If
Next
End Sub
C'est possible aussi dans la validation des données, j'aimerais qu au lieu de ce message excel execute, dés dépassement du nombre de caractères autorisés (1), la commande "entrée, pour que le caractère supplémentaire s inscrive automatiquement dans la cellule suivante . Est-ce possible en changeant une ligne du code? Je ne connais pas l'écriture de code et ne sais pas comment faire.
Pour le changement de ligne au bout de 40 colonnes la solution que tu m as proposée ne marche pas sur mon excel
Merci
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
19 févr. 2009 à 18:46
19 févr. 2009 à 18:46
C'est comme dit plus haut, l'événement "Selection_Change" n'intervient QU'APRES AVOIR CHANGER DE CELLULE ET PAS PENDANT !!
Vaucluse : d'accord si ENTER mais j'ai dit Strictement Cad SANS ENTER
peut-être un moyen.. API
Mais ce serra asser "lourd" en code. Est-ce VRAIMENT nécessaire SANS Enter ?
Vaucluse : d'accord si ENTER mais j'ai dit Strictement Cad SANS ENTER
peut-être un moyen.. API
Mais ce serra asser "lourd" en code. Est-ce VRAIMENT nécessaire SANS Enter ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Raymond PENTIER
Messages postés
58826
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
19 janvier 2025
17 272
19 févr. 2009 à 20:59
19 févr. 2009 à 20:59
Tu te dis débutant dans Excel. Alors laisse tomber les macros et utilise la méthode indiquée par Vaucluse dès le post 2.
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
4 mars 2015 à 13:54
4 mars 2015 à 13:54
Bonjour
Une autre façon de procéder, en activant chaque touches à l'ouverture du fichier. Dès que le caractère est frappé sans valider par "Entrée" , on passe à la cellule voisine. Seul inconvénient, il faut recopier chaque bout de programme pour chaque touche, mais ça répond à la question "d'Artie".
Voici un échantillon
A la fermeture du fichier, on désactive les touches
A tester
Cdlt
Une autre façon de procéder, en activant chaque touches à l'ouverture du fichier. Dès que le caractère est frappé sans valider par "Entrée" , on passe à la cellule voisine. Seul inconvénient, il faut recopier chaque bout de programme pour chaque touche, mais ça répond à la question "d'Artie".
Voici un échantillon
Sub auto_open() 'Activation des touches Application.OnKey "{ }", "Espace" Application.OnKey "{a}", "a" Application.OnKey "{b}", "b" Application.OnKey "{c}", "LettreC" End Sub Sub Espace() ActiveCell.Value = " " Deplacement End Sub Sub a() ActiveCell.Value = "a" Deplacement End Sub Sub b() ActiveCell.Value = "b" Deplacement End Sub Sub LettreC() ActiveCell.Value = "c" Deplacement End Sub Sub Deplacement() If ActiveCell.Column = 40 Then ActiveCell.Offset(1, -39).Select Else: ActiveCell.Offset(0, 1).Select End Sub Sub Auto_close() 'désactivation des touches Application.OnKey "{ }", "" Application.OnKey "{a}", "" Application.OnKey "{b}", "" Application.OnKey "{LettreC}", "" End Sub
A la fermeture du fichier, on désactive les touches
A tester
Cdlt
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
4 mars 2015 à 16:26
4 mars 2015 à 16:26
Re,
voir aussi cette autre proposition (remontée à cause du +1)
https://forums.commentcamarche.net/forum/affich-11128445-limitation-a-la-frappe-caracteres-dans-excel#11
eric
voir aussi cette autre proposition (remontée à cause du +1)
https://forums.commentcamarche.net/forum/affich-11128445-limitation-a-la-frappe-caracteres-dans-excel#11
eric
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
19 févr. 2009 à 10:49
19 févr. 2009 à 10:49
Bonjour tous,
Si l'ont veux s'en tenir strictement à l'explication, ce n'est pas possible sur une feuille vu qu'il n'y a pas de détection du clavier dans une cellule active
et quand une cellule est en édition, les macros aussi, sont inactive.
Une éventuelle solution, la saisie se faisant dans un textBox
A+
Si l'ont veux s'en tenir strictement à l'explication, ce n'est pas possible sur une feuille vu qu'il n'y a pas de détection du clavier dans une cellule active
et quand une cellule est en édition, les macros aussi, sont inactive.
Une éventuelle solution, la saisie se faisant dans un textBox
A+