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!) :
Voilà, je suis nouveau sur le forum mais crois pourtant beaucoup en lui!
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
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
Merci à tous et n'hésitez pas à donner votre avis!
Ciao!
Partager