XL 2016 Concatener automatisé si cellule vide

blond2comet

XLDnaute Nouveau
Bonjour à tous,

Je cherche à automatiser un concatener.
J'ai un fichier du type de l'exemple joint.
La première ligne comprend les infos du produit et les lignes en dessous juste le détail pays du produit donné.
Ce que je cherche à faire est de concatener tous les pays dans une seule cellule, celle de la première ligne produit.
Ce serait un truc du genre si "produit" est vide, alors concatener avec "pays" au dessus dont "produit" n'est pas vide.
Je ne sais pas si mes explications sont claires, le fichier est sans doute plus parlant.

Merci beaucoup pour votre aide.
Je n'ai pas vraiment d'idée de la complexité ...
B2C
 

Pièces jointes

  • Classeur1.xlsx
    13.9 KB · Affichages: 12

vgendron

XLDnaute Barbatruc
Hello
un test avec ce code
VB:
Sub conc()
Dim tablo() As Variant
Dim TabFinal() As Variant

fin = Range("B" & Rows.Count).End(xlUp).Row - 1
'Range("A3").Resize(fin - 1, 4).Select
tablo = Range("A3").Resize(fin - 1, 4).Value
Nblig = UBound(tablo, 1)
NbCol = UBound(tablo, 2)
For i = LBound(tablo, 1) To UBound(tablo, 1)
    If tablo(i, 1) <> "" Then nbLigResult = nbLigResult + 1
Next i

ReDim TabFinal(1 To nbLigResult, 1 To 4)
j = nbLigResult

For i = UBound(tablo, 1) To LBound(tablo, 1) Step -1
   
    If tablo(i, 1) = "" Then
        Pays = tablo(i, 2) & ";" & Pays
    Else
        Pays = tablo(i, 2) & ";" & Pays
        TabFinal(j, 1) = tablo(i, 1)
        TabFinal(j, 2) = Pays
        TabFinal(j, 3) = tablo(i, 3)
        TabFinal(j, 4) = tablo(i, 4)
        Pays = ""
        j = j - 1
    End If
   
Next i
Range("H10").Resize(nbLigResult, 4) = TabFinal

End Sub
 

Discussions similaires

Réponses
0
Affichages
216
Réponses
4
Affichages
207

Statistiques des forums

Discussions
312 203
Messages
2 086 181
Membres
103 152
dernier inscrit
Karibu