Concatenation macro VBA excel nombre de lignes indéfini et séparateur point virgule

Anna_2013

XLDnaute Junior
Bonsoir,

J'ai essayé de développer une macro permettant de concatener un nombre de lignes indéfinis dans une cellule spécifique C1. Chaque ligne concaténée dans la Feuille 1 étant séparée avec le point virgule.
Cependant quand 'jexécute la macro seul le point virgule apparait en A2. Aucune donnée n'est concaténée en C1.
Pourriez vous svp m'aider à résoudre ce probleme (voir fichier excel joint).
Merci par avance pour votre aide,

Public Sub aaa()
Dim i As Long, LastLig As Long
Dim LastCol As Integer
Dim j As Byte
Dim CONCA As String

With Sheets("Feuil1")
LastLig = .cells(Rows.Count, 1).End(xlUp).Row
LastCol = .cells(1, Columns.Count).End(xlToLeft).Column
For j = 1 To LastCol 'De la colonne 1 à la colonne LastCol
For i = 1 To LastLig 'On boucle sur le contenu de chaque colonne j et on concatène
CONCA = CONCA & .cells(i, j).Value & ";"
Next i
.cells(LastLig + 1, j).Value = CONCA 'On écrit la valeur après la dernière cellule remplie
CONCA = "" 'On initalise CONCA
Next j
End With

End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Concatenation macro VBA excel nombre de lignes indéfini et séparateur point virg

Code:
Bonjour à tous
Avec une fonction personnalisée ?:
VB:
Public Function Concat(Source As Range, Separateur As String, Optional SansVide As Boolean) As String
'------------------------------------------------------------------------------
' concatène chaque cellule de la source - avec le séparateur Separateur
' avec les cellules vides si SansVide est omis ou égal à FAUX
' sans les cellules vides si SansVide est égal à VRAI
'------------------------------------------------------------------------------
Dim xcell As Range, i As Long
  If Source.Count = 0 Then Exit Function
  If IsMissing(SansVide) Then SansVide = False
  For Each xcell In Source
      If Not SansVide Or Len(xcell.Value) > 0 Then Concat = Concat & Separateur & xcell.Value
  Next xcell
  If Len(Separateur) > 0 Then Concat = Mid(Concat, Len(Separateur) + 1)
End Function
 

Pièces jointes

  • Concatener v1.xls
    33 KB · Affichages: 125
Dernière édition:

Anna_2013

XLDnaute Junior
Re : Concatenation macro VBA excel nombre de lignes indéfini et séparateur point virg

Bonjour,

Je vous remercie tout d'abord pour votre aide.

J'ai modifié le langage de programmation pour la macro concatener.
Cependant elle concatene bien le nombre de cellules mais je souhaiterais que la formule soit appliquée aux lignes i à n pour la colonne A1. Je souhaiterais également que devant le nom SR100 il n'y ait pas de point virgule
Merci pour votre aide,

Anna
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : Concatenation macro VBA excel nombre de lignes indéfini et séparateur point virg

Re-bonjour, bonjour, mapomme :),

...elle concatene bien le nombre de cellules mais je souhaiterais que la formule soit appliquée aux lignes i à n pour la colonne A1...

Dans le fichier joint, la macro agit sur la colonne A, au lieu de la B (sollicitée en #1).

...Je souhaiterais également que devant le nom SR100 il n'y ait pas de point virgule...

Dans le fichier déposé en #2, comme dans le fichier ci-joint, ce nom, premier de la liste, n'est précédé d'aucune ponctuation :confused:.

Les huit modules vides sont supprimés.

A bientôt :)
 

Pièces jointes

  • 00 - Anna_2013 - Concatener V2.xls
    67.5 KB · Affichages: 160

Discussions similaires

Réponses
0
Affichages
153
Réponses
1
Affichages
168

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote