Remplacement Chr(10) par <BR> [Résolu]

Messages postés
15
Date d'inscription
mercredi 24 juin 2009
Dernière intervention
6 août 2009
- 5 août 2009 à 13:07 - Dernière réponse :
Messages postés
15
Date d'inscription
mercredi 24 juin 2009
Dernière intervention
6 août 2009
- 6 août 2009 à 10:56
Bonjour à tous

J'ai une colonne intitulée commentaire.
Je voudrais créer une macro qui remplace Chr(10) ou vbCrLf (dans le cas d'un ALT+ENTER - saut de ligne dans une même cellule) par
.

Voici mon code :

For i = 3 To Cells(65536, CommentCol).End(xlUp).Row
Cells(i, CommentCol).Select
Cells(i, CommentCol).Value = replace(Search(vbCrLf, Cells(i, CommentCol).Value), vbCrLf, "
")
Next i

Mais voilà il ne se passe pas grand chose...

Y aurait-il une âme intelligente pour me donner un coup de pouce ?

Merci
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 5 août 2009 à 17:04
3
Merci
Salut
Compliqué.
[*]
n'est pas un terme reconnu par VB, mais bon, pourquoi pas
[*] Replace fait déjà la recherche, pourquoi avoir encore inséré un Search ?
[*] Chr(10), c'est vbLf, alors pourquoi rechercher vbCrLf ? normal qu'il ne fasse rien

--> Replace(Cells(i, CommentCol).Value, vbLf, "
")

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_Jack
Meilleure réponse
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Dernière intervention
20 novembre 2013
- 5 août 2009 à 18:34
3
Merci
une demo sur la colonne A (attention pour que cela fonctionne correctement la colonne doit contenir une etiquette)

Sub demo()
    Dim cel As Range, maplage As Range
    Application.ScreenUpdating = False
    Set maplage = Range("A1:A" & Range("A" & Columns(1).Rows.Count).End(xlUp).Row)
    maplage.AutoFilter Field:=1, Criteria1:="=*" & vbLf & "*"
    Set maplage = maplage.SpecialCells(xlCellTypeConstants, 23).SpecialCells(xlCellTypeVisible)
    If Not maplage.Rows.Count = 0 Then
        For Each cel In maplage
           cel.Value = Replace(cel.Value, vbLf, "
")
        Next
    End If
    maplage.AutoFilter
    Application.ScreenUpdating = True
End Sub


A toi de faire le reste

Merci bigfish_le vrai 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de bigfish_le vrai
Messages postés
15
Date d'inscription
mercredi 24 juin 2009
Dernière intervention
6 août 2009
- 5 août 2009 à 17:32
0
Merci
Merci Jack.

Le problème c'est qu'il faut xxx = replace(... et non pas replace directement

J'ai essayé ca:

Dim Cel As Range
Dim p As String
Range(Cells(FirstRowData, cnColText), Cells(65536, cnColText).End(xlUp)).Select
For Each Cel In Selection
p = Cel.Value
p = replace(p, vbLf, "
")
Cel.Value = p
Next

Mais rien ne se passe.
Commenter la réponse de bmwax
Messages postés
15
Date d'inscription
mercredi 24 juin 2009
Dernière intervention
6 août 2009
- 6 août 2009 à 09:12
0
Merci
FAN-TAS-TIQUE !!!

Tu m'enlèves un gros cure-dent épineux du pied...

Merci
Commenter la réponse de bmwax
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 6 août 2009 à 10:32
0
Merci
"Le problème c'est qu'il faut xxx = replace(... et non pas replace directement" Oui, je sais, mais il te suffisait de remplacer ton actuelle syntaxe du Replace par celle que je te proposais
Et tu restais bloqué la dessus ?
Commenter la réponse de cs_Jack
Messages postés
15
Date d'inscription
mercredi 24 juin 2009
Dernière intervention
6 août 2009
- 6 août 2009 à 10:56
0
Merci
Hé bien j'avoue qu'il m'arrive parfois d'oublier de réfléchir...
J'ai quand même des circonstances atténuantes : plus de café le mercredi soir après une journée de code !

Mille excuses Jack, ton code fonctionne aussi...

Merci beaucoup !
Commenter la réponse de bmwax

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.