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
A noter si j'utilise la fonction dans une cellule, le probleme ne se pose pas.
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
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...![]()
Partager