Limiter caractères dans cellule
bea
-
Vaucluse Messages postés 26496 Date d'inscription Statut Contributeur Dernière intervention -
Vaucluse Messages postés 26496 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en train de travailler sur un fichier d'environ 15000 lignes (extraction d'un logiciel).
Dans "adresse" (col G) (celles ci sont d'ailleurs toutes saisies) je souhaiterais limiter le nombre de caractères à 50 max et faire en sorte que si les 50 sont dépassés la suite de l'adresse bascule dans la colonne "adresse 2ème ligne (col H).
J'espère que ma question est assez claire pour obtenir une réponse
Merci d'avance
Je suis en train de travailler sur un fichier d'environ 15000 lignes (extraction d'un logiciel).
Dans "adresse" (col G) (celles ci sont d'ailleurs toutes saisies) je souhaiterais limiter le nombre de caractères à 50 max et faire en sorte que si les 50 sont dépassés la suite de l'adresse bascule dans la colonne "adresse 2ème ligne (col H).
J'espère que ma question est assez claire pour obtenir une réponse
Merci d'avance
A voir également:
- Limiter caractères dans cellule
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Proteger cellule excel - Guide
4 réponses
Bonjour
avec une tite macro
Michel
avec une tite macro
Option Explicit
'----
Sub limiterà50()
Dim Derlig As Integer, T_gh, Idx As Integer
Derlig = Columns("G").Find("*", , , , , xlPrevious).Row
'mémorise en mémoire RAM les colonnes G & H par une variable-tableau
T_gh = Range("G1:H" & Derlig)
'effectue le test "50" sur chaque index de T_gh
For Idx = 1 To UBound(T_gh)
If Len(T_gh(Idx, 1)) > 50 Then
T_gh(Idx, 2) = Right(T_gh(Idx, 1), Len(T_gh(Idx, 1)) - 50)
T_gh(Idx, 1) = Left(T_gh(Idx, 1), 50)
End If
Next
'restitue T_gh sur la feuille
Range("G1").Resize(UBound(T_gh), 2) = T_gh
End Sub
Michel
Bonjour,
Si les adresses sont saisies, tu peux copier les 50 premiers caractères dans une colonne avec la formule =GAUCHE(G2;50) puis les 50 autres dans une autre colonne avec la formule =DROITE(G2;NBCAR(G2)-50).
Ensuite, il te reste à faire un copier / collage spcial > Valeurs de ces 2 colonnes pour obtenir le résultat souhaité.
A+
Si les adresses sont saisies, tu peux copier les 50 premiers caractères dans une colonne avec la formule =GAUCHE(G2;50) puis les 50 autres dans une autre colonne avec la formule =DROITE(G2;NBCAR(G2)-50).
Ensuite, il te reste à faire un copier / collage spcial > Valeurs de ces 2 colonnes pour obtenir le résultat souhaité.
A+
Hé bé y'a du monde, bonjour à tous,
Par formule, coupe au 1er espace précédent le 50ème caractère.
Partie 1 :
Partie 2 :
formules matricielles à valider avec shift+ctrl+entrée
La formule doit s'entourer de { } si la validation est correcte.
Terminer par un copier-collage spécial valeur sur ces 2 colonnes.
Mais pour 15000 lignes la macro est peut-être préférable, surtout si ça doit être fait régulièrement.
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
Par formule, coupe au 1er espace précédent le 50ème caractère.
Partie 1 :
=GAUCHE(G2;SI(NBCAR(G2)<51;50;MAX((STXT(G2;LIGNE(1:50);1)=" ")*LIGNE(1:50))-1))
Partie 2 :
=STXT(G2;SI(NBCAR(G2)<51;50;MAX((STXT(G2;LIGNE(1:50);1)=" ")*LIGNE(1:50)));200)
formules matricielles à valider avec shift+ctrl+entrée
La formule doit s'entourer de { } si la validation est correcte.
Terminer par un copier-collage spécial valeur sur ces 2 colonnes.
Mais pour 15000 lignes la macro est peut-être préférable, surtout si ça doit être fait régulièrement.
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