VBA Fusionner contenu d'une cellule dans une seul dans une liste.

  • Initiateur de la discussion Initiateur de la discussion azertyyyy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

azertyyyy

XLDnaute Nouveau
Bonjour à tous,

désolé si le titre n'ai pas très clair, je ne sais pas trop comment le formuler

Depuis ma base mssql extrait une liste:

Code:
société|Modele|    marque|    Version| Option 
SOC1	78338	CHEVROLET	AVEO	clim
SOC1	78338	CHEVROLET	AVEO	jante allume
SOC1	78338	CHEVROLET	AVEO	garantie
SOC1	78338	CHEVROLET	AVEO	gilet
SOC1	78338	CHEVROLET	AVEO	peinture métallisée
SOC1	78973	CHEVROLET	AVEO	clim
SOC1	78973	CHEVROLET	AVEO	jante allume
SOC1	78973	CHEVROLET	AVEO	garantie
SOC1	78973	CHEVROLET	AVEO	gilet
SOC1	78973	CHEVROLET	AVEO	peinture métallisée

Comme dans mon exemple ci-dessus, les options d'une voiture prennent une ligne par option .

Donc par exemple mon fichier extraction comporte 2500 ligne Alors qu'il n'y a que 500 voitures.
Je voudrait qu'en VBA qu'il me rajoute tout les options correspondante a une voiture dans une cellule.

Pour arriver a la fin avec :

Code:
société|Modele|    marque|    Version| Option 
SOC1	78338	CHEVROLET	AVEO	clim;jante allume ; 	garantie;
SOC1	78973	CHEVROLET	AVEO	clim; ante allume; garantie; gilet; peinture métallisée

Est-ce réalisable? Si oui comment?

Merci d'avance pour votre aide

azertyyy
 
Re : VBA Fusionner contenu d'une cellule dans une seul dans une liste.

Bonsoir

si ta base est sur feuil1
tu mets en bouton sur feuil2 et tu y associe le code

Code:
Sub essai()
'hypothèse base en feuil1
j = 1
With Sheets("feuil1")
    If .Range("A65536").End(xlUp) < 2 Then MsgBox "liste vide": Exit Sub
    For i = 2 To .Range("A65536").End(xlUp)
        If .Cells(i, 2).Value <> .Cells(i - 1, 2).Value Then
            j = j + 1
            Cells(j, 1).Value = .Cells(i, 1).Value
            Cells(j, 2).Value = .Cells(i, 2).Value
            Cells(j, 3).Value = .Cells(i, 3).Value
            Cells(j, 4).Value = .Cells(i, 4).Value
            Cells(j, 5).Value = .Cells(i, 5).Value
        Else
            Cells(j, 5).Value = Cells(j, 5).Value & "; " & .Cells(i, 5).Value
        End If
    Next
End With
End Sub

je pense que je n'ai pas fait d'erreur
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour