Changement de cellule après x caractères
Résolu
Villette54
Messages postés
300
Date d'inscription
Statut
Membre
Dernière intervention
-
Zoul67 Messages postés 1959 Date d'inscription Statut Membre Dernière intervention -
Zoul67 Messages postés 1959 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aurais aimé savoir si dans VBA il était possible de faire un petit programme qui change de cellule automatiquement après avoir tapé 3 caractères dans la cellule plutôt que de devoir taper sur tabulation.
Du genre
Je suis en A1, je tape 7 "azertyuiop" je trouve :
en A1 : aze
en B1 : rty
en C1 : uio
en D1 : p
Dans le même esprit, je voudrais savoir si après avoir remplis 5 cellules (avec 3 caractères chacune) il est possible de se retrouver sur la ligne en dessous et de reprendre le même cycle.
Pour reprendre mon exemple, après avoir tapé mon "azertyuiop", je tape "qsdfghjkl" j'ai donc
en D1 : pqs
en A2 : dfg
en B2 : hjk
en C2 : l
Est-il possible de faire ça simplement ? Sur plusieurs plages différentes sur une feuille ?
Merci d'avance.
J'aurais aimé savoir si dans VBA il était possible de faire un petit programme qui change de cellule automatiquement après avoir tapé 3 caractères dans la cellule plutôt que de devoir taper sur tabulation.
Du genre
Je suis en A1, je tape 7 "azertyuiop" je trouve :
en A1 : aze
en B1 : rty
en C1 : uio
en D1 : p
Dans le même esprit, je voudrais savoir si après avoir remplis 5 cellules (avec 3 caractères chacune) il est possible de se retrouver sur la ligne en dessous et de reprendre le même cycle.
Pour reprendre mon exemple, après avoir tapé mon "azertyuiop", je tape "qsdfghjkl" j'ai donc
en D1 : pqs
en A2 : dfg
en B2 : hjk
en C2 : l
Est-il possible de faire ça simplement ? Sur plusieurs plages différentes sur une feuille ?
Merci d'avance.
A voir également:
- Changement de cellule après x caractères
- Site x - Guide
- Sites X : Pornhub, YouPorn et Redtube sont de nouveau accessibles en France - Guide
- Changer de dns - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
1 réponse
Binjour,
Est-il possible de faire ça? oui
Simplement ? bof!
le point noir est la longueur avec un reste de la division par X
le code à adapter à ton contexte
segment représente la longueur de X (3 actuellement mais possible de changer)
la maquette de W
https://www.cjoint.com/?3Iesk2AwUwh
dans l'attente de ta réaction
Michel
Est-il possible de faire ça? oui
Simplement ? bof!
le point noir est la longueur avec un reste de la division par X
le code à adapter à ton contexte
segment représente la longueur de X (3 actuellement mais possible de changer)
Option Explicit Sub test() découpertexteparX 3 End Sub '------------------------------------------- Sub découpertexteparX(segment) Dim F As Byte, Fin As Byte, Lig As Byte, Concat As String Dim Nbre As Byte, cptr As Byte, T_dec() Fin = Columns("A").Find("*", , , , , xlPrevious).Row For Lig = 1 To Fin Concat = Concat & Cells(Lig, "A") Next Nbre = Int(Len(Concat) / segment) If Len(Concat) Mod segment <> 0 Then Nbre = Nbre + 1 ReDim T_dec(1 To Nbre) For cptr = 1 To UBound(T_dec) T_dec(cptr) = Left(Concat, segment) If cptr = UBound(T_dec) Then T_dec(cptr) = Concat Else Concat = Right(Concat, Len(Concat) - segment) End If Next Range("B1").Resize(1, UBound(T_dec)) = T_dec End Sub
la maquette de W
https://www.cjoint.com/?3Iesk2AwUwh
dans l'attente de ta réaction
Michel
Merci pour ta réponse,
Cependant, malgré de multiple essai je ne comprend pas ta macro (je suis débutant en VBA) et ne parvient pas à l'utiliser.
Peut-être que j'ai mal formulé ma demande.
Pour plus de précision, je souhaitais appliquer ça à un tableau ou j'ai un nombre incalculable de valeur à 3 chiffres à saisir.
Du coup je dois : taper 3 chiffres, appuyer sur tab, taper 3 chiffres, appuyer sur tab, ..., taper 3 chiffres appuyer sur entrée, et recommencer...
Le soucis est de devoir vérifier à chaque fois à l'écran ou j'en suis sur la ligne.
C'est pourquoi j'aurais aimer que le "changement de cellule" se fasse automatiquement.
(Peut-être qu'un extrait du fichier t'aiderais à mieux comprendre ?)
Si tu peux faire ta saisie dans une Textbox, inspire-toi peut-être de :
https://forums.commentcamarche.net/forum/affich-28617073-fonction-regexp-sous-vba#p28636205
Avec la macro Textbox_Change, tu devrais pouvoir vider le champ de la Textbox dès que tu as rédigé 3 caractères et lancer l'écriture dans la bonne cellule.
Oh, tiens, c'était en réponse à une question que tu posais...
Merci, mais passer par une textbox n'est pas la meilleure solution pour moi.
De plus, je ne vois pas très bien le lien entre les deux sujets ?
L'autre je cherchais à conditionner une textbox pour n'y saisir qu'un format date.
Ici je cherche simplement à conditionner une cellule, pour qu'elle détecte automatiquement que 3 caractères ont été saisis, et que du coup elle passe à la cellule suivante pour que je puisse continuer à taper.
Du coup tu n'inscris que des triplets dans une textbox et la feuille se remplit avec ces triplets.