concaténation sous condition

jerlef

XLDnaute Nouveau
Bonjour à tous,

Voilà mon problème :
J'ai une feuille excel avec trois colonnes. Pour être plus clair j'ai mis en pièce jointe un exemple.

Ce que je souhaite c'est une macro qui me permettrait d'arriver à cela :

1 test toto;titi;tata;truc

pour chaque ligne

Merci de votre aide !!! ;)
 

Pièces jointes

  • exemple.xls
    13.5 KB · Affichages: 35
  • exemple.xls
    13.5 KB · Affichages: 37
  • exemple.xls
    13.5 KB · Affichages: 31

jerlef

XLDnaute Nouveau
Re : concaténation sous condition

on me transmet ce fichier en l'état.
les colonnes A et B contiennent chacune une donnée et la colonne C contient plusieurs infos (n) en relation avec la colonne A et ainsi de suite pour A2, A3 ....

Je ne sais pas si je suis bien clair...?
 

jerlef

XLDnaute Nouveau
Re : concaténation sous condition

J'ai pas le choix on me donne ce fichier en l'état
Il y a toujours une valeur dans la colonne A, une dans la B et n dans la C
et ainsi de suite et les colonnes A et B sont fusionnées proportionnellement au nomlbre de cellules correspondantes en colonne C

J'espère être clair...
Merci
 

Staple1600

XLDnaute Barbatruc
Re : concaténation sous condition

Re


Si le fichier n'est pas trop volumineux

Tu peux essayer Copier/Collage Spécial/Transposé

Puis dans une cellule =C1&";"&C2&";"&C3 'etc etc

ensuite edition/copier/collage spécial/valeurs

Solution qui je le reconnais reste tres fastidieuse
 

Staple1600

XLDnaute Barbatruc
Re : concaténation sous condition

Re


Ce qui me gene ce sont les cellules fusionnées

Je ne vois pas comment en VBA identifier la dernière valeur (ou dernière ligne)
en rapport avec la cellule fusionnée.

Peut-etre cette fonction personnalisée pourra t'aider
Code:
Public Function ConcSep(InCells As Range, Sep As String) As String
'SOURCE:http://www.chalouhis.com/XLBLOG/archives/2005/02/03/concatenate-with-separators/
 'exemple d'utilisation: =concsep(A1:A10;";")
    Dim OutStr As String
    Dim Cell As Variant
    
    OutStr = ""
    If InCells Is Nothing Then Exit Function
    On Error Resume Next
    For Each Cell In InCells
        OutStr = OutStr & Cell.Value & Sep
    Next Cell
    OutStr = Left(OutStr, Len(OutStr) - Len(Sep))
    ConcSep = OutStr
End Function

Cette macro fonctionne pour 1 ligne
Code:
Public Sub JoinCells()
'source:http://www.excelforum.com/showthread.php?threadid=505582
'auteur: bob stearns
Dim row_num As Range
Dim cell As Range
Dim result As String

With Selection
    For Each row_num In .Rows
      For Each cell In row_num.Cells
        result = result & cell.Value & " "
      Next cell
      If row_num.Row < .Rows(.Rows.Count).Row Then result = result & ";"
    Next row_num
  End With


With Cells(Selection.Row, Selection.Column + Selection.Columns.Count)
    .Value = result
    '.WrapText = True
End With
End Sub
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
525

Statistiques des forums

Discussions
312 330
Messages
2 087 347
Membres
103 525
dernier inscrit
gbaipc