Bonsoir
Au moyen d'un copié-collé, j'ai transcrit le texte de mes conversations MSN
dans Excel (plus facile à gérer les colonnes). Malheureusement, le texte de
certaines cel est trop long. Je voudrais donc forcer un retour à la ligne,
mais à une certaine distance du début de la phrase.
Voilà ce que je pensais:
For Each c in range ("C:C")
If Nbcar(c) > 110 Then
???? Goto au car 110 et tu recules jusqu'à ce que tu trouves un blanc
(séparation de deux mots), ensuite tu fais Alt+Enter pour forcer le retour à
la ligne.
---------
Prob : il ne comprend pas mon Français et ensuite, je suppose qu'il va
passer à la cel suivante dès qu'il aura fait un retour à la ligne, sans
mesurer ce qui reste. Or, si la phrase contient 250 car, on est baisé !
-----------
Pouvez-vous m'aiguillonner, svp
Un grand merci de la part de Jacques, qui revient au bercail car les
Wordiens ne veulent pas qu'il fasse des macros. ! -))
--
Bien amicalmement,
Vivement conseillé >> http://www.excelabo.net
Jacquouille.
j.thiernesseNOSPAM@skynet.be
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Starwing
Bonjour Jacqouille,
Une autre solution envisageable serait:
http://softchris.free.fr/softnote.htm
Un remarquable aide-mémoire.
-- Au plaisir de vous revoir ... Visitez >> http://www.excelabo.net Le merveilleux site de Misange StarwingT
-- "Jacquouille" a écrit dans le message de news:%
Bonsoir Au moyen d'un copié-collé, j'ai transcrit le texte de mes conversations MSN
dans Excel (plus facile à gérer les colonnes). Malheureusement, le texte de
certaines cel est trop long. Je voudrais donc forcer un retour à la ligne, mais à une certaine distance du début de la phrase. Voilà ce que je pensais: For Each c in range ("C:C") If Nbcar(c) > 110 Then ???? Goto au car 110 et tu recules jusqu'à ce que tu trouves un blanc (séparation de deux mots), ensuite tu fais Alt+Enter pour forcer le retour à
la ligne. --------- Prob : il ne comprend pas mon Français et ensuite, je suppose qu'il va passer à la cel suivante dès qu'il aura fait un retour à la ligne, sans mesurer ce qui reste. Or, si la phrase contient 250 car, on est baisé ! ----------- Pouvez-vous m'aiguillonner, svp Un grand merci de la part de Jacques, qui revient au bercail car les Wordiens ne veulent pas qu'il fasse des macros. ! -)) -- Bien amicalmement, Vivement conseillé >> http://www.excelabo.net Jacquouille.
Bonjour Jacqouille,
Une autre solution envisageable serait:
http://softchris.free.fr/softnote.htm
Un remarquable aide-mémoire.
--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
StarwingT
brault-lavoieNOSPAM@sympatico.ca
--
"Jacquouille" <NoSpam_j.thiernesse@skynet.be> a écrit dans le message de
news:%230Ee8DbzEHA.3416@TK2MSFTNGP09.phx.gbl...
Bonsoir
Au moyen d'un copié-collé, j'ai transcrit le texte de mes conversations
MSN
dans Excel (plus facile à gérer les colonnes). Malheureusement, le texte
de
certaines cel est trop long. Je voudrais donc forcer un retour à la ligne,
mais à une certaine distance du début de la phrase.
Voilà ce que je pensais:
For Each c in range ("C:C")
If Nbcar(c) > 110 Then
???? Goto au car 110 et tu recules jusqu'à ce que tu trouves un blanc
(séparation de deux mots), ensuite tu fais Alt+Enter pour forcer le retour
à
la ligne.
---------
Prob : il ne comprend pas mon Français et ensuite, je suppose qu'il va
passer à la cel suivante dès qu'il aura fait un retour à la ligne, sans
mesurer ce qui reste. Or, si la phrase contient 250 car, on est baisé !
-----------
Pouvez-vous m'aiguillonner, svp
Un grand merci de la part de Jacques, qui revient au bercail car les
Wordiens ne veulent pas qu'il fasse des macros. ! -))
--
Bien amicalmement,
Vivement conseillé >> http://www.excelabo.net
Jacquouille.
j.thiernesseNOSPAM@skynet.be
-- Au plaisir de vous revoir ... Visitez >> http://www.excelabo.net Le merveilleux site de Misange StarwingT
-- "Jacquouille" a écrit dans le message de news:%
Bonsoir Au moyen d'un copié-collé, j'ai transcrit le texte de mes conversations MSN
dans Excel (plus facile à gérer les colonnes). Malheureusement, le texte de
certaines cel est trop long. Je voudrais donc forcer un retour à la ligne, mais à une certaine distance du début de la phrase. Voilà ce que je pensais: For Each c in range ("C:C") If Nbcar(c) > 110 Then ???? Goto au car 110 et tu recules jusqu'à ce que tu trouves un blanc (séparation de deux mots), ensuite tu fais Alt+Enter pour forcer le retour à
la ligne. --------- Prob : il ne comprend pas mon Français et ensuite, je suppose qu'il va passer à la cel suivante dès qu'il aura fait un retour à la ligne, sans mesurer ce qui reste. Or, si la phrase contient 250 car, on est baisé ! ----------- Pouvez-vous m'aiguillonner, svp Un grand merci de la part de Jacques, qui revient au bercail car les Wordiens ne veulent pas qu'il fasse des macros. ! -)) -- Bien amicalmement, Vivement conseillé >> http://www.excelabo.net Jacquouille.
JpPradier
Bonsoir Jacquouille
Une petite fonction recursive ci-dessous. j-p
Sub test2() For Each cellu In Range("A1:A10") If Len(cellu) > 150 Then cellu.Value = decoup(cellu.Value) Next End Sub
Function decoup(mot) debut = Left(mot, 150) & Chr(10) fin = Mid(mot, 151) If Len(fin) > 150 Then fin = decoup(fin) decoup = debut & fin End Function
Bonsoir Jacquouille
Une petite fonction recursive ci-dessous.
j-p
Sub test2()
For Each cellu In Range("A1:A10")
If Len(cellu) > 150 Then cellu.Value = decoup(cellu.Value)
Next
End Sub
Function decoup(mot)
debut = Left(mot, 150) & Chr(10)
fin = Mid(mot, 151)
If Len(fin) > 150 Then fin = decoup(fin)
decoup = debut & fin
End Function
Sub test2() For Each cellu In Range("A1:A10") If Len(cellu) > 150 Then cellu.Value = decoup(cellu.Value) Next End Sub
Function decoup(mot) debut = Left(mot, 150) & Chr(10) fin = Mid(mot, 151) If Len(fin) > 150 Then fin = decoup(fin) decoup = debut & fin End Function
GD
Bonsour ® mon Jacky ;o))) avec des petites fonctions perso ça te va ??? passe à la ligne au premier espace trouvé avant la longueur souhaitée pour trouver facilement la position de chr(32) en partant de la fin j'utilise une fonction perso(Renverse) pour inverser une chaine utilisation : =Découpe(A1;80)
Function Decoupe(target, longueur) Application.Volatile fini = False grandchaine = target.Value petitchaine = "" While Not fini ' on recherche la 1ere position de chr(32) a partir de l'extrémité y = InStr(Renverse(Left(grandchaine, longueur)), Chr(32)) If y > 0 Then ' on a trouvé un espace, c'est pas fini ' on récupere la longueur - le morceau jusque chr(32) petitchaine = petitchaine & Left(grandchaine, longueur - y) & Chr(10) ' on raccourci la chaine de départ grandchaine = Trim(Mid(grandchaine, longueur - y + 1, 9 ^ 9)) Else ' c'est fini fini = True ' on fini en mettant le bout restant Decoupe = petitchaine & Trim(Left(grandchaine, longueur - y)) End If Wend End Function
Function Renverse(target) ' -----------pour inverser une chaine res = "" For nC = Len(target) To 1 Step -1 res = res & Mid(target, nC, 1) Next nC Renverse = res End Function
@+
Bonsoir Au moyen d'un copié-collé, j'ai transcrit le texte de mes conversations MSN dans Excel (plus facile à gérer les colonnes). Malheureusement, le texte de certaines cel est trop long. Je voudrais donc forcer un retour à la ligne, mais à une certaine distance du début de la phrase. Voilà ce que je pensais: For Each c in range ("C:C") If Nbcar(c) > 110 Then ???? Goto au car 110 et tu recules jusqu'à ce que tu trouves un blanc (séparation de deux mots), ensuite tu fais Alt+Enter pour forcer le retour à la ligne. --------- Prob : il ne comprend pas mon Français et ensuite, je suppose qu'il va passer à la cel suivante dès qu'il aura fait un retour à la ligne, sans mesurer ce qui reste. Or, si la phrase contient 250 car, on est baisé ! ----------- Pouvez-vous m'aiguillonner, svp Un grand merci de la part de Jacques, qui revient au bercail car les Wordiens ne veulent pas qu'il fasse des macros. ! -))
Bonsour ® mon Jacky
;o)))
avec des petites fonctions perso ça te va ???
passe à la ligne au premier espace trouvé avant la longueur souhaitée
pour trouver facilement la position de chr(32) en partant de la fin
j'utilise une fonction perso(Renverse) pour inverser une chaine
utilisation :
=Découpe(A1;80)
Function Decoupe(target, longueur)
Application.Volatile
fini = False
grandchaine = target.Value
petitchaine = ""
While Not fini
' on recherche la 1ere position de chr(32) a partir de l'extrémité
y = InStr(Renverse(Left(grandchaine, longueur)), Chr(32))
If y > 0 Then
' on a trouvé un espace, c'est pas fini
' on récupere la longueur - le morceau jusque chr(32)
petitchaine = petitchaine & Left(grandchaine, longueur - y) & Chr(10)
' on raccourci la chaine de départ
grandchaine = Trim(Mid(grandchaine, longueur - y + 1, 9 ^ 9))
Else
' c'est fini
fini = True
' on fini en mettant le bout restant
Decoupe = petitchaine & Trim(Left(grandchaine, longueur - y))
End If
Wend
End Function
Function Renverse(target)
' -----------pour inverser une chaine
res = ""
For nC = Len(target) To 1 Step -1
res = res & Mid(target, nC, 1)
Next nC
Renverse = res
End Function
@+
Bonsoir
Au moyen d'un copié-collé, j'ai transcrit le texte de mes
conversations MSN dans Excel (plus facile à gérer les colonnes).
Malheureusement, le texte de certaines cel est trop long. Je voudrais
donc forcer un retour à la ligne, mais à une certaine distance du
début de la phrase.
Voilà ce que je pensais:
For Each c in range ("C:C")
If Nbcar(c) > 110 Then
???? Goto au car 110 et tu recules jusqu'à ce que tu trouves un blanc
(séparation de deux mots), ensuite tu fais Alt+Enter pour forcer le
retour à la ligne.
---------
Prob : il ne comprend pas mon Français et ensuite, je suppose qu'il va
passer à la cel suivante dès qu'il aura fait un retour à la ligne,
sans mesurer ce qui reste. Or, si la phrase contient 250 car, on est
baisé ! -----------
Pouvez-vous m'aiguillonner, svp
Un grand merci de la part de Jacques, qui revient au bercail car les
Wordiens ne veulent pas qu'il fasse des macros. ! -))
Bonsour ® mon Jacky ;o))) avec des petites fonctions perso ça te va ??? passe à la ligne au premier espace trouvé avant la longueur souhaitée pour trouver facilement la position de chr(32) en partant de la fin j'utilise une fonction perso(Renverse) pour inverser une chaine utilisation : =Découpe(A1;80)
Function Decoupe(target, longueur) Application.Volatile fini = False grandchaine = target.Value petitchaine = "" While Not fini ' on recherche la 1ere position de chr(32) a partir de l'extrémité y = InStr(Renverse(Left(grandchaine, longueur)), Chr(32)) If y > 0 Then ' on a trouvé un espace, c'est pas fini ' on récupere la longueur - le morceau jusque chr(32) petitchaine = petitchaine & Left(grandchaine, longueur - y) & Chr(10) ' on raccourci la chaine de départ grandchaine = Trim(Mid(grandchaine, longueur - y + 1, 9 ^ 9)) Else ' c'est fini fini = True ' on fini en mettant le bout restant Decoupe = petitchaine & Trim(Left(grandchaine, longueur - y)) End If Wend End Function
Function Renverse(target) ' -----------pour inverser une chaine res = "" For nC = Len(target) To 1 Step -1 res = res & Mid(target, nC, 1) Next nC Renverse = res End Function
@+
Bonsoir Au moyen d'un copié-collé, j'ai transcrit le texte de mes conversations MSN dans Excel (plus facile à gérer les colonnes). Malheureusement, le texte de certaines cel est trop long. Je voudrais donc forcer un retour à la ligne, mais à une certaine distance du début de la phrase. Voilà ce que je pensais: For Each c in range ("C:C") If Nbcar(c) > 110 Then ???? Goto au car 110 et tu recules jusqu'à ce que tu trouves un blanc (séparation de deux mots), ensuite tu fais Alt+Enter pour forcer le retour à la ligne. --------- Prob : il ne comprend pas mon Français et ensuite, je suppose qu'il va passer à la cel suivante dès qu'il aura fait un retour à la ligne, sans mesurer ce qui reste. Or, si la phrase contient 250 car, on est baisé ! ----------- Pouvez-vous m'aiguillonner, svp Un grand merci de la part de Jacques, qui revient au bercail car les Wordiens ne veulent pas qu'il fasse des macros. ! -))
JpPradier
Bonsoir GD
En lisant ta réponse, je me rends compte que j'ai complètement zappé la partie recherche d'espace :-(
j-p
Bonsoir GD
En lisant ta réponse, je me rends compte que j'ai complètement zappé la partie recherche d'espace
:-(
En lisant ta réponse, je me rends compte que j'ai complètement zappé la partie recherche d'espace :-(
j-p
JièL Goubert
Bonjoir(c) Jacquouille
ma "non" macro sur Word ne t'allais pas ? ;-) Tu aurais peut-être du porsuivre car en fait une fois ton tableau avec les largeur que tu veux, tu enregistre en texte et c'est gagné
mais bon, c'est vrai que c'est sans macros superfétatoire ;-))))))))
-- JièL AMIS
Le 18/11/2004 21:55 vous avez écrit ceci :
Bonsoir Au moyen d'un copié-collé, j'ai transcrit le texte de mes conversations MSN dans Excel (plus facile à gérer les colonnes). Malheureusement, le texte de certaines cel est trop long. Je voudrais donc forcer un retour à la ligne, mais à une certaine distance du début de la phrase. Voilà ce que je pensais: For Each c in range ("C:C") If Nbcar(c) > 110 Then ???? Goto au car 110 et tu recules jusqu'à ce que tu trouves un blanc (séparation de deux mots), ensuite tu fais Alt+Enter pour forcer le retour à la ligne. --------- Prob : il ne comprend pas mon Français et ensuite, je suppose qu'il va passer à la cel suivante dès qu'il aura fait un retour à la ligne, sans mesurer ce qui reste. Or, si la phrase contient 250 car, on est baisé ! ----------- Pouvez-vous m'aiguillonner, svp Un grand merci de la part de Jacques, qui revient au bercail car les Wordiens ne veulent pas qu'il fasse des macros. ! -))
Bonjoir(c) Jacquouille
ma "non" macro sur Word ne t'allais pas ? ;-)
Tu aurais peut-être du porsuivre car en fait une fois ton tableau avec les
largeur que tu veux, tu enregistre en texte et c'est gagné
mais bon, c'est vrai que c'est sans macros superfétatoire ;-))))))))
--
JièL AMIS
Le 18/11/2004 21:55 vous avez écrit ceci :
Bonsoir
Au moyen d'un copié-collé, j'ai transcrit le texte de mes conversations MSN
dans Excel (plus facile à gérer les colonnes). Malheureusement, le texte de
certaines cel est trop long. Je voudrais donc forcer un retour à la ligne,
mais à une certaine distance du début de la phrase.
Voilà ce que je pensais:
For Each c in range ("C:C")
If Nbcar(c) > 110 Then
???? Goto au car 110 et tu recules jusqu'à ce que tu trouves un blanc
(séparation de deux mots), ensuite tu fais Alt+Enter pour forcer le retour à
la ligne.
---------
Prob : il ne comprend pas mon Français et ensuite, je suppose qu'il va
passer à la cel suivante dès qu'il aura fait un retour à la ligne, sans
mesurer ce qui reste. Or, si la phrase contient 250 car, on est baisé !
-----------
Pouvez-vous m'aiguillonner, svp
Un grand merci de la part de Jacques, qui revient au bercail car les
Wordiens ne veulent pas qu'il fasse des macros. ! -))
ma "non" macro sur Word ne t'allais pas ? ;-) Tu aurais peut-être du porsuivre car en fait une fois ton tableau avec les largeur que tu veux, tu enregistre en texte et c'est gagné
mais bon, c'est vrai que c'est sans macros superfétatoire ;-))))))))
-- JièL AMIS
Le 18/11/2004 21:55 vous avez écrit ceci :
Bonsoir Au moyen d'un copié-collé, j'ai transcrit le texte de mes conversations MSN dans Excel (plus facile à gérer les colonnes). Malheureusement, le texte de certaines cel est trop long. Je voudrais donc forcer un retour à la ligne, mais à une certaine distance du début de la phrase. Voilà ce que je pensais: For Each c in range ("C:C") If Nbcar(c) > 110 Then ???? Goto au car 110 et tu recules jusqu'à ce que tu trouves un blanc (séparation de deux mots), ensuite tu fais Alt+Enter pour forcer le retour à la ligne. --------- Prob : il ne comprend pas mon Français et ensuite, je suppose qu'il va passer à la cel suivante dès qu'il aura fait un retour à la ligne, sans mesurer ce qui reste. Or, si la phrase contient 250 car, on est baisé ! ----------- Pouvez-vous m'aiguillonner, svp Un grand merci de la part de Jacques, qui revient au bercail car les Wordiens ne veulent pas qu'il fasse des macros. ! -))
JpPradier
Re Jacquouille
Re voici la macro en tenant compte des espaces. Fonctionne avec Excel 2000 minimum.
Sub test2() For Each cellu In Range("A1:A10") If Len(cellu) > 150 Then cellu.Value = decoup(cellu.Value) Next End Sub
Function decoup(mot) coupe = InStrRev(Left(mot, 150), " ") debut = Left(mot, coupe) & Chr(10) fin = Mid(mot, coupe + 1) If Len(fin) > 150 Then fin = decoup(fin) decoup = debut & fin End Function
Re Jacquouille
Re voici la macro en tenant compte des espaces. Fonctionne avec Excel 2000 minimum.
Sub test2()
For Each cellu In Range("A1:A10")
If Len(cellu) > 150 Then cellu.Value = decoup(cellu.Value)
Next
End Sub
Function decoup(mot)
coupe = InStrRev(Left(mot, 150), " ")
debut = Left(mot, coupe) & Chr(10)
fin = Mid(mot, coupe + 1)
If Len(fin) > 150 Then fin = decoup(fin)
decoup = debut & fin
End Function
Re voici la macro en tenant compte des espaces. Fonctionne avec Excel 2000 minimum.
Sub test2() For Each cellu In Range("A1:A10") If Len(cellu) > 150 Then cellu.Value = decoup(cellu.Value) Next End Sub
Function decoup(mot) coupe = InStrRev(Left(mot, 150), " ") debut = Left(mot, coupe) & Chr(10) fin = Mid(mot, coupe + 1) If Len(fin) > 150 Then fin = decoup(fin) decoup = debut & fin End Function
Clément Marcotte
Bonjour
pour trouver facilement la position de chr(32) en partant de la fin j'utilise une fonction perso(Renverse) pour inverser une chaine
M'est avis que tu fais un détour inutile. ;-)
La fonction VBA InstrRev() donne la position d'un caractère dans une chaîne en partant de la fin de la chaîne. Le résultat obtenu est calculé à partir du début de la chaîne, mais la recherche débute par la fin de la chaîne.
Bonjour
pour trouver facilement la position de chr(32) en partant de la fin
j'utilise une fonction perso(Renverse) pour inverser une chaine
M'est avis que tu fais un détour inutile. ;-)
La fonction VBA InstrRev() donne la position d'un caractère dans une
chaîne en partant de la fin de la chaîne. Le résultat obtenu est
calculé à partir du début de la chaîne, mais la recherche débute par
la fin de la chaîne.
pour trouver facilement la position de chr(32) en partant de la fin j'utilise une fonction perso(Renverse) pour inverser une chaine
M'est avis que tu fais un détour inutile. ;-)
La fonction VBA InstrRev() donne la position d'un caractère dans une chaîne en partant de la fin de la chaîne. Le résultat obtenu est calculé à partir du début de la chaîne, mais la recherche débute par la fin de la chaîne.
Clément Marcotte
Bonjour,
pour trouver facilement la position de chr(32) en partant de la fin j'utilise une fonction perso(Renverse) pour inverser une chaine
Va falloir que tu fasses brûler un lampion pour qu'aucun AMIS ne voit cela :-)
Bonjour,
pour trouver facilement la position de chr(32) en partant de la fin
j'utilise une fonction perso(Renverse) pour inverser une chaine
Va falloir que tu fasses brûler un lampion pour qu'aucun AMIS ne voit
cela :-)
pour trouver facilement la position de chr(32) en partant de la fin j'utilise une fonction perso(Renverse) pour inverser une chaine
Va falloir que tu fasses brûler un lampion pour qu'aucun AMIS ne voit cela :-)
JièL Goubert
Bonjoir(c) Clément Marcotte
Le 19/11/2004 01:07 vous avez écrit ceci :
Va falloir que tu fasses brûler un lampion pour qu'aucun AMIS ne voit cela :-)
raté, c'est vu ;-)))))))))
La prochaine fois il faudra penser à aller bruler un cierge à la Bonne Mère plutot qu'un misérable lampion ;-))) http://www.allmarseille.com/notredame.php3
-- JièL Lent Pion
Bonjoir(c) Clément Marcotte
Le 19/11/2004 01:07 vous avez écrit ceci :
Va falloir que tu fasses brûler un lampion pour qu'aucun AMIS ne voit
cela :-)
raté, c'est vu ;-)))))))))
La prochaine fois il faudra penser à aller bruler un cierge à la Bonne Mère
plutot qu'un misérable lampion ;-)))
http://www.allmarseille.com/notredame.php3
Va falloir que tu fasses brûler un lampion pour qu'aucun AMIS ne voit cela :-)
raté, c'est vu ;-)))))))))
La prochaine fois il faudra penser à aller bruler un cierge à la Bonne Mère plutot qu'un misérable lampion ;-))) http://www.allmarseille.com/notredame.php3
-- JièL Lent Pion
AV
Pour le fun .... Couper la phrase en 2 (si elle contient plus de 80 caractères) à l'espace dont la position est égale ou immédiatement inférieure à 80 Matricielle (validation par ctrl+maj+entrée) (cellule formatée avec retour à la ligne auto)
PS : on pourrait aussi imaginer faire x coupures de phrase (x = ent(nbcar(la Phrase)/80) AV
Pour le fun ....
Couper la phrase en 2 (si elle contient plus de 80 caractères) à l'espace dont
la position est égale ou immédiatement inférieure à 80
Matricielle (validation par ctrl+maj+entrée)
(cellule formatée avec retour à la ligne auto)
Pour le fun .... Couper la phrase en 2 (si elle contient plus de 80 caractères) à l'espace dont la position est égale ou immédiatement inférieure à 80 Matricielle (validation par ctrl+maj+entrée) (cellule formatée avec retour à la ligne auto)