concatener colonnes variables en vba

pmfontaine

XLDnaute Occasionnel
Bonjour,
J'ai beau chercher je ne trouve pas le code VBA me permettant de concaténer le résultat de plusieurs cellule.

Dans une page j'ai un nombre de colonne variable avec des données sur un nombre de ligne variable également (Feuille "données"), je voudrait trouvé un code VBA me permettant d'obtenir dans une autre feuille la concaténation de toute ces donnés comme je l'ai fait en formule classique en A1 A2 et A3 de la feuille "résultat"

merci d'avance pour votre aide
 

Pièces jointes

  • concatener.zip
    90 KB · Affichages: 69
  • concatener.zip
    90 KB · Affichages: 63
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : concatener colonnes variables en vba

Bonsoir.
Ceci le fait :
VB:
Sub Contaténer()
Dim Te(), Ts(), L&, C&, Z$
Te = Feuil1.UsedRange.Value
ReDim Ts(1 To UBound(Te), 1 To 1)
For L = 1 To UBound(Te, 1)
   Z = ""
   For C = 1 To UBound(Te, 2)
      Z = Z & Te(L, C): Next C
   Ts(L, 1) = Z: Next L
Feuil4.Cells(1, 1).Resize(UBound(Ts, 1)) = Ts
End Sub
 

david84

XLDnaute Barbatruc
Re : concatener colonnes variables en vba

Bonjour à tous,
un essai via fonction personnalisée :
Code:
Function Concat(r As Range) As String
Concat = Join(Application.Transpose(Application.Transpose(r)), " ")
End Function

Code:
=Concat(données!A1:M1)
A+
 

pmfontaine

XLDnaute Occasionnel
Re : concatener colonnes variables en vba

Bonjour,
Merci Dranreb et merci david84 pour vos réponses.
Je viens de tester la réponse de Dranreb qui marche très bien, merci beaucoup.
J'ai compris une partie du code, mais je vais continuer a l'étudier, car avoir la solution c'est bien, mais la comprendre c'est mieux.
Bon dimanche à tous.
 

pmfontaine

XLDnaute Occasionnel
Re : concatener colonnes variables en vba

Bonjour,
Je reviens vers vous car avec le code de Drabred, tous marché bien jusqu'au moment ou j'ai voulu concaténer un très grand nombre de colonne. 153 colonnes et 125 lignes exactement.
Erreur d'exécution '1004': Erreur définie par l'application ou par l'objet.

Après quelques essai il semble que ce code bloque au delà de 70 colonnes.
J'ai essayé de le modifier pour faire en deux fois de 1 à 70 puis 71 a la fin que je regroupe sur deux colonne en feuil4, mais je n'y suis pas arrivé.

Est-ce que vous auriez une solution pour régler ce problème.
Merci beaucoup pour votre aide
Patrick
 

pmfontaine

XLDnaute Occasionnel
Re : concatener colonnes variables en vba

Bonjour Dranreb,
Merci de répondre a mon message.
Je suis désolé, mais je ne sais pas comment il faut procéder.
Est-que je dois procéder suivant ce tuto ICI
Si non, est-ce que vous pourriez me donner un exemple de mise en place des espions ?
 

Dranreb

XLDnaute Barbatruc
Re : concatener colonnes variables en vba

Oui, au paragraphe IV.
Quand l'erreur se produit, aller en débogage. sélectionnez les expressions impliquées dans l'instruction qui plante, Ajouter un espion.
Icone paire de lunettes surmontée d'un effet brillant dans menu Débogage.
 

pmfontaine

XLDnaute Occasionnel
Re : concatener colonnes variables en vba

Bonsoir,
Je croyais ne pas pouvoir faire les tests, mais j'ai pu.
Les espions affichent :
Watch : : Feuil4 : <Hors du contexte> : Feuil4 : Module1.Contaténer
Watch : : Feuil4.Cells(1, 2).Resize(UBound(Ts, 1)) = Ts : <Incompatibilité de type> : Empty : Module1.Contaténer

Mais comme je ne suis vraiment pas sur de ma procédure je mets le fichier qui bug avec un lien car pas moyen de réduire suffisamment le pds pour passer en dessous 293 ko
Le fichier est ICI
Merci
Patrick
 

pmfontaine

XLDnaute Occasionnel
Re : concatener colonnes variables en vba

Bonjour,
Voir imprime écran joint.
Est-ce que ça pourrais venir d'un problème de configuration Excel (Configuration PC je ne pense pas car j'ai 8 Go de Ram)
 

Pièces jointes

  • debeugage_concatener1.jpg
    debeugage_concatener1.jpg
    69.9 KB · Affichages: 67

Dranreb

XLDnaute Barbatruc
Re : concatener colonnes variables en vba

En les sélectionnant, puis Edition, Supprimer.

Vous n'aviez pas remarqué, dans les espions, qu'au lieu de charger 2 lignes dans Te il en chargeait 9999 ?
Ça veut dire que votre UsedRange occupe une dizaine de milliers de lignes au lieu d'en occuper 2 !

Ce n'était pas pour moi que je vous demandais de mettre des espions, c'était pour que vous appreniez vous même à déduire ce qui ne va pas d'après ce qu'ils vous montrent !
 
Dernière édition:

Discussions similaires

Réponses
9
Affichages
302

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2