concatener une selection de cellules et afficher le resultat derniere ligne

sebastix

XLDnaute Nouveau
Bonjour,
je souhaiterais pouvoir selectionner N cellules (jamais le même nombre) jamais au même endroit, dans un tableau et lancer une macro qui afficherait le resultat d'une concatenation separee par une virgule dans la cellule juste apres (en bas) de la selection...comme on peut le faire avec la touche somme.

J'ai trouvé une petite macro, mais l'affichage du resultat est 'figée' et s'affiche dans une cellule definie et non dans une cellule relative à la derniere cellule+1 de la selection.

Mais notion en vba sont vraiment basiques...

J'espere que je me fais bien comprendre, d'avance merci pour votre aide.

Sébastien
 

Pièces jointes

  • concatener_seb.xls.zip
    10.4 KB · Affichages: 60

Cousinhub

XLDnaute Barbatruc
Re : concatener une selection de cellules et afficher le resultat derniere ligne

Bonsoir,
et bienvenue

essaie avec ce code :

Code:
Sub Concat1()
For Each cel In Range("A1:A" & [A65000].End(xlUp).Row)
    temp = temp & cel & ", "
Next cel
[A65000].End(xlUp)(2).Value = Left(temp, Len(temp) - 2)
End Sub
 

sebastix

XLDnaute Nouveau
Re : concatener une selection de cellules et afficher le resultat derniere ligne

Bonsoir, merci pour la rapidite de la reponse, j'ai essayé mais rien ne se passe,
avec ma macro de depart le resultat s'affichait quand meme en B1...
Je ne sais pas ce qui ne fonctionne pas. Merci pour votre aide.
Sebastien
 

Cousinhub

XLDnaute Barbatruc
Re : concatener une selection de cellules et afficher le resultat derniere ligne

Re-,
essaie avec ton fichier joint, le résultat apparait dans la cellule jaune (la première cellule vide de la colonne A)
 

Pièces jointes

  • concatener_sebv1.zip
    8.4 KB · Affichages: 65

sebastix

XLDnaute Nouveau
Re : concatener une selection de cellules et afficher le resultat derniere ligne

re-bonsoir,
oui en effet cela fonctionne. Mais, oui il y a un mais :) cela ne fonctionne uniquement pour des cellule en colonne A, j'aimerais pouvoir le faire sur n'importe quelle colonne et le resultat affiché une cellule apres la selection.
D'avance merci,
Sebastien
 

Cousinhub

XLDnaute Barbatruc
Re : concatener une selection de cellules et afficher le resultat derniere ligne

Re-,
regarde le code, et remplace le A par la colonne que tu veux.
Sinon, explique un peu mieux :
Combien de colonnes
Les colonnes ont-elles toutes des en-têtes dans la première ligne?


pour la colonne B :


Code:
For Each cel In Range("B1:B" & [B65000].End(xlUp).Row)
    temp = temp & cel & ", "
Next cel
[B65000].End(xlUp)(2).Value = Left(temp, Len(temp) - 2)

avec le fichier joint, toutes les colonnes sont concaténées (sauf les titres)
 

Pièces jointes

  • concatener_sebv2.zip
    11.2 KB · Affichages: 54

sebastix

XLDnaute Nouveau
Re : concatener une selection de cellules et afficher le resultat derniere ligne

Bonjour à tous, merci bbh et Wamme, j'ai essayer le code de Wamme qui fonctionne tres bien. Cependant j'aimerais que ma selection ne soit pas obligée de commencer en ligne 1.

Voici deux exemples :
Exemple 1: J'ai
A1 aa
A2 bb
A3 cc
A4 dd

Je selectionne de A1 à A4, je clique sur le bouton et j'ai 'aa,bb,cc,dd' qui s'affiche en A5.

Exemple 2: J'ai
C3 23
C4 34
C5 22
C6 21
C7 26

Je selectionne de C3 à C7, je clique sur le bouton et j'ai '23,34,22,21,26' qui s'affiche en C8.

Pour resumer ma selection n'est JAMAIS au meme endroit et n'est JAMAIS de la meme longeur.

Voilà j'espere que je suis plus clair dans mes explications. Merci d'avance pour votre aide, cela devrait me faire gagner un maximum de temps dans mon travail de tous les jours.

Bien cordialement,

Sébastien
 

wamme

XLDnaute Occasionnel
Re : concatener une selection de cellules et afficher le resultat derniere ligne

Bonjour,
essaie la macro modifiée
Edit : pardon à bhbh d'avoir squatté sa macro


Sub Concat1()

col = ActiveCell.Column
lig = ActiveCell.Row
For Each cel In Range(Cells(lig, col), Cells(65000, col).End(xlUp))
temp = temp & cel & ", "
Next cel
Cells(65000, col).End(xlUp)(2).Value = Left(temp, Len(temp) - 2)
End Sub
 

sebastix

XLDnaute Nouveau
Re : concatener une selection de cellules et afficher le resultat derniere ligne

Bonsoir, merci Wamme ca fonctionne super bien.

Je cherche maintenant :

1. a ce que le contenu concatener dans la cellule soit (coller) dans le presse papier (j'ai essayé une formule avec .Select mais cela ne fonctionne pas)

et 2. rendre cette macro/bouton disponible dans mes tableaux excels. J'ai bien essayé de créer un bouton dans Affichage / Personaliser la barre d'outil / Macro - Commandes / Macro Personalisée -> Smile...et enregistré cette macro au format xlt mais rien à faire...???

D'avance merci pour votre aide.

Sébastien
 

sebastix

XLDnaute Nouveau
Re : concatener une selection de cellules et afficher le resultat derniere ligne

Bonjour, oui c'est ce que j'ai fait mais cette macro n'est disponible que pour le fichier perso.xls. J'aimerais qu'a l'avenir cette macro soit disponible dans tous mes tableaux sans devoir la rajouter à la main à chaque fois. Dois-je creer un modele, si oui quel format. Je suis desole pour cette question de debutant :( Merci
Sebastien
 

wamme

XLDnaute Occasionnel
Re : concatener une selection de cellules et afficher le resultat derniere ligne

Salut
si tu affectes une macro placée dans un module de perso.xls à ton bouton personnalisé, elle est disponible pour tous les fichiers - pas besoin de modéle.
ouvre VBA et regarde si tu as bien un fichier "perso.xls" dans la fenetre de gauche.

Sinon tu peux avec l'enregistreur de macro, créer une petite macro en choisissant
"enregistrer la macro dans : classeur de macros personnelles" puis en fermant excel
tu auras le message " Voulez-vous enregistrer les modifications au classeur de macros personnelles" Répondre "oui" ton fichier perso.xls sera créé.
 

Discussions similaires

Statistiques des forums

Discussions
312 840
Messages
2 092 701
Membres
105 513
dernier inscrit
simo200100