CRLF sous Excell

jdawson

XLDnaute Junior
Bonjour

je sais que le sujet n est pas nouveau mais souvent la solution n est qu'à 50% complete
dans un fichier excell j ai des retour chariot dans des cellules, des CRLF en fait
ces retours chariot se symbolise sous excell par des petits carrés plein ou presque plein lol

comme il est dit partout je fais une recherche de ALT 0010 et remplacer par un espace et je supprime ainsi tous les 0010 ... quand on clique sur la cellule incriminée, le texte au lieu de se mettre sur deux ligne se met sur une ligne !! super ca marche .. et bien non car même sur une seule ligne on a encore le petit carré qui lui ne peut se copier, et qui lorsque vous enregistrez en texte le fichier, ce carre vous crée des retour a la ligne qui désorganise tous en créant des enregistrement fictifs si je puis dire

je suppose que c est le 0013 qui persiste mais la en recherche ca ne marche pas !!

avez vous une astuce simple, car les personnes qui utilise ces fichiers ne sont pas des pro d excell :)

merci a vous par avance

Bruno
 

tototiti2008

XLDnaute Barbatruc
Re : CRLF sous Excell

Re,

essai avec une MFC :

Code:
    With ActiveSheet.UsedRange
        .Range("A1").Activate
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:="=NBCAR(" & .Range("A1").Address(0, 0) & ")>38"
        .FormatConditions(1).Interior.ColorIndex = 3
    End With
 

jdawson

XLDnaute Junior
Re : CRLF sous Excell

bonjour l ami

merci pour la proposition de MFC je vais regarder cela,

toutefois, vite fait une question tu met dans ta MFC Range("A1").Activate
est ce a dire que ta condition sur les 38 caractères se fait uniquement sur la colonne A ??

En effet un fichier de mailing on va dire, n est jamais constituté pour nous pareil entre deux fichier, nous pouvons avoir 6 ou 7 zone ou plus si concatenation il y a, et les zones qui peuvent depasser 38 peuvent etre partout et nulle part tu comprend .. nous avons pas un fichier preformaté et c est domage, donc il est utile pour nous de reperer les zone depassant 38 quelle soit n importe ou .. d'ou ma boucle mais peut etre qu une MFC tu peux l etandre sur toute ta feuille d'un coup,

enfin comme je te le disait je sais pas j ai jamais fait de MFC lolllllll, si c est "instantané" ou si ca demande un "certain temps" il faut le comparer à ma boucle,

je te laisse, je reviens plus tard,

amicalement

bruno
 

jdawson

XLDnaute Junior
Re : CRLF sous Excell

je reviens après avoir teste

super !! c'est super rapide et ça offre le gros avantage d être en temps réel, quand on corrige en dessous ou égale a 38 ça enlève instantanément la couleur, alors que moi je relançai le bouton .. excellent

je vais m efforcer de comprendre maintenant..je viens de relire
activate, delete, color index ok

.FormatConditions.Add Type:=xlExpression, Formula1:="=NBCAR(" & .Range("A1").Address(0, 0) & ")>38"

je pense que format condition(1), (2) doivent dependre du nombre de ligne de condition comme au dessus
par contre va falloir juste me dire ou on dit que cela s etend a toute les cellules de la page lol

je vais au cafe, je reviens lol

merci

bruno
 

tototiti2008

XLDnaute Barbatruc
Re : CRLF sous Excell

Bonjour jdawson,

Sélectionne une des cellules concernées et va dans le Menu format - Mise en forme conditionnelle, tu retrouveras la formule qui a été mise en place

Edit : si tu sélectionne une plage et que tu mets une formule avec des références de cellules sans $ (relatives), la formule sera "recopiée" sur toute la plage concernée et fera évoluer les références de cellules
 
Dernière édition:

jdawson

XLDnaute Junior
Re : CRLF sous Excell

rebonjour tototiti2008,

merci pour l explication, quand tu n a jamais mis les pieds la dedans c est pas évident évident lol

ok pour tout, on est tombe sur un bug de mes macros (ta MFC marche par contre lol)
quand je tombe sur une cellule ou c est marque #NOM? ca me bloque une boucle ou je teste si elle égale a un point seulement

dans ce cas précis on peut pas faire grand chose car parfois c est parce que la personne a tape du style "-2 rue xxx " et excel commence a voir une formule la ou il n y en a pas ..

bref on peut pas tout prévoir non plus,

a plus l ami

bruno
 

jdawson

XLDnaute Junior
Re : CRLF sous Excell

re,

je te remercie du code erreur, je le garde sous la main mais comme je l ai dis ya pas de solution unique car la cause peut etre multiple,
en l occurence ce jour le code erreur etait brut dans la cellule on a donc supprimer purement et simplement mais parfois on a une infos mal tapée et ca occasionne l erreur en lecture excell, on peut donc pas dire on supprimer purement et simpement, parfois on enlevera un - parfois autre chose qui fait penser a excell que c est une formule,

merci quand meme, je garde le code ca pourra toujours servir a un moment donné

bruno
 

tototiti2008

XLDnaute Barbatruc
Re : CRLF sous Excell

Re,

Si tu as un peu d'expérience sur les causes d'erreurs, tu pourra envisager des règles que tu pourra alors coder en VBA
Je pense (pas testé) que Cells(i,j).formula devrait te donner le texte tapé par l'utilisateur (à un "=" prêt")
 

jdawson

XLDnaute Junior
Re : CRLF sous Excell

bonjour tototiti2008

je reviens vers toi,
tout d abord merci de ton aide, certaines personnes apprecie bcp les macros réallisées, gain de temps important,
je travaille sur une nouvelle, encore une,
un client a mis plusieurs lignes dans une meme colonne d adresse, elles sont donc séparees par des LF simples et non CRLF
je remplace les LF par tabulation

et dans une autre macro, apres avoir enregistre en texte et reouvert sous excell pour faire apparaitre les nouvelles colonnes générées par la 1ere macro, je met tous les codes postaux ville en 5e colonne,
en fait le client a 5 colonnes au final, donc si la 5 est vide je regarde la 4 et sinon la 3 et je vire le code postal ville de la 4 vers la 5 ou de la 3 vers la 5.. tu vois le truc

bon tout ca pour te dire, dans ma première macro, je remplace LF par TABULATION,
ca marche mais ca le fait sur tout le fichier,
y a t'il moyen de selectionner la colonne sous excell, tout la colonne se met en bleu et lancer ma macro qui travaillerai sur cette colonne,
ainsi les personnes utilisant la macro pour la faire que sur la colonne qu elle veulent elle au cas ou dans d autre champ il y ait des lf mais que l on veut pas remplacer par des tabulation

je sais pas si c est clair tout cela

j ai trouve ce code la

Sub SelectionPlageAvecSouris()
Dim MonTableau() As String
Dim Plage As Range
Dim j As Integer
Set Plage = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)
MonTableau = Split(Plage.Address, ",")
For j = 0 To UBound(MonTableau)
MsgBox MonTableau(j)
Next j
End Sub

a ce stade ca me demande de selectionner, je selectionne la colonne A, ca me confirme que la colonne est selectionnee

apres j ai ce code à mettre, inserer je sais pas comment

Cells.Replace What:=Chr(10), Replacement:=Chr(9), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

amicalement

bruno
 
Dernière édition:

jdawson

XLDnaute Junior
Re : CRLF sous Excell

je me reponds a moi même :

c est bon j ai trouve le code, ca marche selon la selection a la souris,

ce code ne vaut que si on veut limiter l action de la macro a une selection
j ai donc gardé les deux codes avec ou sans selection au cas ou on veuille pas se casser la tete et le faire sur la feuilles excell entiere

bruno
 

jdawson

XLDnaute Junior
Re : CRLF sous Excell

bonjour a toi tototiti2008

c est l epoque de noel et avant la fin du monde je viens te consulter sur un code vba

j ai fait un TCD en enregistrant le code et ca donne donc cela en vba

Sub TCD_ETRANGER()
'
' Macro1 Macro
' Macro enregistrée le 14/12/2012 par Bruno
'

'
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatab ase, SourceData:= _
"'Sheet 1'!R1C6:R50000C7").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _
"COMMUNE", PageFields:="CODE_POSTAL"
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("COMMUNE"). _
Orientation = xlDataField
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("CODE_POSTAL") _
.CurrentPage = "99"

End Sub

avec ce code je fais un TCD avec en tete de page le code postal que je veux.. ici 99 (sur 2 chiffres) et en dessous les communes correspondant avec en face le nombre de commune du departement 99

il faut savoir que pour nous quand on a 99 dans un cp adresse, la commune telle que nous la connaissons contient ici le pays (allemagne, italie ...)
ma macro compterai donc les pays par ce biais la

j ai donc avec ce code 99 en haut
et dessous ALLEMAGNE 5
Italie 3
etc....

toutefois quand je clique dans l item Commune je devrais avoir que les communes correspondant au code 99 ?? j ai toutes les commune meme les francaises (car le fichier est complet 01 02 03) et 99 que je selectionne dans mon code
quand je lance ma macros ca marche nickel je n ai que ALLEMAGNE BELGIQUE mais si pour une raison on veut cliquer dans communes ca me remonte toutes les communes francaise et etrangere.. comment relie l item communes à l item preselectionne 99 ?

Merci par avance de ton aide, je met cela a ton credit et donc serait ton debiteur :)

bruno
 

Discussions similaires

Réponses
8
Affichages
302
Réponses
0
Affichages
228

Statistiques des forums

Discussions
312 479
Messages
2 088 744
Membres
103 944
dernier inscrit
Stbj