Concaténation VBA - chr(10) ou chr (13) ignorés

Bonjour,

J'ai réalisé une petite fonction pour concaténer dans la même cellule le contenu de plusieurs autres cellules. La fonction fonctionne bien (sans jeu de mot), sauf sur un point : je souhaite que les différentes valeurs insérées dans une même cellule soient séparées par un retour à la ligne (comme si je saisissez manuellement ALT + entrée).

J'ai essayé d'insérer chr(10) (comme ci-dessous), chr(13), chr(10) + chr(13), vbCr, vbLf, vbCrLf et à chaque fois sans effet, le caractère est ignoré et les différentes valeurs sont concaténées sans retour à la ligne ni aucune séparation.

Ainsi si la première cellule contient "AA" et la seconde "BB", j'obtiens "AABB" au lieu de "AA" sur la première ligne et "BB" sur la seconde, à l'intérieur de la même cellule.

Pouvez-vous m'aider à régler ce problème ? Ci-dessous mon code pour que tout soit clair.

Par avance merci.

Function RECHERCHEPLUSV(Valeur As String, Plage As Range, Colonne As Integer)
Dim c As Range
    texte = ""

    For Each c In Plage.Columns(1).Cells

        If c.Value = Valeur Then
            If texte = "" Then
                texte = c.Offset(, Colonne).Value

            Else
                texte = texte & Chr(10) & c.Offset(, Colonne).Value
            End If
        End If

    Next c
    RECHERCHEPLUSV = texte
End Function 

Bonjour

Un Code de Claude Dubois qui concatene la colonne A en D2

'Code Claude Dubois

Sub Concatene()
Dim Cel As Range, Co As Range
Dim Lg As Long
    Application.ScreenUpdating = False
        Lg = [A65536].End(xlUp).Row
    With Range("d2")
       .ClearContents
            For Each Cel In Range("a2:a" & Lg)
                If Cel <> "" Then
                    .Value = .Value & Cel.Value & Chr(10)                  
                  Else: Exit For
                End If
            Next Cel
    End With
End Sub

Cordialement

248concatene.zip (7.18 Ko)

Bonjour,

sur 2003 et 2010,

Dim t As String
t = [A2] & vbLf & [B2]
[C2] = t

fonctionne très bien.

'Renvoyer à la ligne automatiquement' est même activé tout seul.

Peut-être est-ce qu'il manque sur 2007 (?)

eric

Bonjour,

Bonjour Eriiic et Amadéus,

Comme notre ami cherche une solution par une fonction, celle-ci ne peut pas "formater" la cellule..

A la différence d'un code...

@ touriste : ta fonction renvoie bien les données, mais pour que les sauts à la ligne soient pris en compte, il faut au préalable que les cellules contenant la fonction soient formatées avec "Retour à la ligne automatique"

Bon dimanche

Ben oui c'est ça.

C'est tout bête.

Mille mercis.

Rechercher des sujets similaires à "concatenation vba chr ignores"