paramètre string fonction -> fonctionne pas toujours?!
Bonjour à tous,
Sans transition, voici ma question!
-> J'ai un fichier avec un seul onglet ("feuil1").
-> Dans cet onglet, les cellules F1 à F9 sont (ou non) une à une remplies et c'est tout "l'enjeu" de ma discussion.
-> Je veux concaténer le contenu de ces mêmes cellules dans une autre cellule (A3) uniquement lorsqu'elles sont non vides (de F1 à F9).
Ex : F1 est vide, F3 est vide ainsi que F9 --> je concatène F2, F4, F5, F6, F7, F8 uniquement
Le code que j'ai fait marche SAUF lorsque F1 est vide. Je ne comprends pas la raison. Le voici : (sorti de son contexte et donc simplifié afin d'avoir vos lumières plus rapidement!) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| Function ConcatenationLR(ligne As Integer, counter As Integer) As String
Dim lignef As Integer
Dim expression As String
Dim counterf As Integer
lignef = ligne
counterf = counter
expression = Range("F" & lignef).Value
'Test si champs vide
If expression <> "" Then
' concaténer valeurs des cellules si non vides
For m = lignef + 1 To lignef + counterf
If Range("F" & m) <> "" Then
expression = expression & ", " & Range("F" & m)
End If
Next
Else: Call ConcatenationLR(lignef + 1, counterf - 1)
End If
'test de la valeur d'expression -> prend bien la bonne valeur même quand F1 est vide!
A = MsgBox(expression, vbDefaultButton2)
ConcatenationLR = expression
-------------------------------------------------------------------------
End Function
Sub ok()
Sheets("Feuil1").Select
'Range("A3").Value ne prend pas la bonne valeur quand F1 est vide.....!
Range("A3").Value = ConcatenationLR(1, 8)
End Sub |
Voilà, je suis nouveau sur le forum mais crois pourtant beaucoup en lui!
Merci à tous et n'hésitez pas à donner votre avis!
Ciao!