Bonjour à tous,
Je cherche un work-around pour un probleme apparaissant dans la concaténation de chaine. Le code suivant construit itérativement une chaine de caracteres. Seul les 255 premiers caracteres sont lu dans le résultat. La mesure de la taille de la chaine retourne pourtant une valeur supérieur (fonction Len). Il semblerait que ce soit dans les operation d'acces a la valeur de la chaine qu'il y un probleme, plus que dans la concatenation elle meme. J'ai essaye d'utiliser Left pour lire la chaine autrement, mais cela ne corrige pas le probleme.

Voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
Function SelectDataSeriesFromCategory(columnSerie As Range, selectColumn As Range, value As Variant) As String
    Dim RetString As String
    Dim cell As Range
    first = True
    For Each cell In columnSerie
        If (selectColumn.Cells(cell.Row) = value) Then
            If (first) Then
                RetString = CellR1C1AdressString(cell)
                first = False
            Else
                RetString = RetString & "," & CellR1C1AdressString(cell)
            End If
        End If
    Next cell
    SelectDataSeriesFromCategory = Left(RetString, Len(RetString))
End Function
 
Private Function CellR1C1AdressString(cell As Range) As String
    CellR1C1AdressString = cell.Parent.Name & "R" & cell.Row & "C" & cell.Column
End Function
A noter si j'utilise la fonction dans une cellule, le probleme ne se pose pas.
J'aimerai trouver un autre Work around que celui d'utiliser une cellule pour evaluer la fonction (je n'ai pas encore pleinement tester ceci d'ailleurs).

Quelqu'un a t-il déja rencontre ce type de probleme et si oui, existe-t-il une solution ?

En passant, ce sont les premieres lignes de code que j'ecris en VBA pour XL... Pas joyeux...