Bonjour à tous
existe-t-il un code VBA qui concatène le contenu de plusieurs cellules en une seule ?
merci de votre réponse
Version imprimable
Bonjour à tous
existe-t-il un code VBA qui concatène le contenu de plusieurs cellules en une seule ?
merci de votre réponse
bonjour,
ta question manque de précision mais enfin voila une réponse :
ce code concaténe dans cellule A1 de la feuille 1 de contenu des cellules A1 des feuilles 2 et 3 .....Code:
1
2 Thisworkbook.sheets("Feuil1").range("A1") = Thisworkbook.sheets("Feuil2").range("A1") & Thisworkbook.sheets("Feuil3").range("A1")
merci de répondre. Effectivement, je n'ai pas été assez explicite. Ce que je voudrais, c'est copier par exemple les contenus des cellules B1, B2, B3, B4 de la feuille 2 dans le cellule A2 de la feuille 1
J'ai oublié de préciser qu'il faudrait que les différents noms soient mis les uns en dessous des autres, cadrés à gauche
Merci d'avance
bonjour,
Code:
1
2
3
4 Sub concatenation() Cells(2, 1) = Cells(1, 1) & vbCrLf & Cells(1, 2) & vbCrLf & Cells(1, 3) & vbCrLf & Cells(1, 4) End Sub
merci, mais cela ne correspond pas exactement à ce que je veux. En effet les cellules à copier ne sont pas toujours du même nombre et ne vont pas toujours au même endroit. J'arrive avec une boucle à les prendre, mais c'est pour les reposer ailleurs, pas toujours au même emplacement, d'un seul coup dans une seule cellule que je ne sais pas. Cela est-il possible ? merci de vos recherches.
Si j'ai bien compris, dans une plage de cellule (toute la feuille, par exemple), il existe des cellules qui correspondent à un certain critère et tu aimerais concaténer leur contenu... J'ai compris, ou je suis complètement à côté?
Bon j'essai de demander de l'aide à madame soleil :
qu'appelle tu les prendre... ? supposons que tu stocke leur valeur dans une variable chaine.
tiens un petit code pour stocker les cellules sélectionnées dans une chaine :
Code:
1
2
3
4
5
6
7
8
9 Dim YaChaine As String 'Variables utilisé pour mémoriser valeur Sub AjouteSelection() Dim yaC As Range For Each yaC In Selection YaChaine = YaChaine & yaC & vbLf 'Ajoute cellules selectionnées à ma chaine Next End Sub
ensuite tu "colle" ta variable dans la cellule active :
Code:
1
2
3 Sub PoseYaChaine() ActiveCell = YaChaine End Sub
Bonjour
Voici le petit code avec lequel je récupère les valeurs sur une feuille, cela peut allet de 1 à x....
J'aimerai que ces valeurs récupérées puissent se retrouver sur une autre feuille, dans une cellule unique(toujours la même), les unes en dessous des autres, cadrées à gauche. Ce contenu, je le reprends pour le placer dans une autre cellule qui est définie au moment de la copie afin de le mettre en commentaire . Ais-je été assez clair ?Code:
1
2
3
4
5
6
7 For i = 1 To 90(par exemple) Nom(i) = ActiveCell.Value ActiveCell.Offset(1, 0).Select If ActiveCell.Value = "" Then dern_ligne = ActiveCell.Row - 1 Exit For End If
bonjour,
je t'ai déjà donné une solution :
pourquoi utiliser un tableau pour stocker tes valeurs si ensuite tu ne t'en sert que
utilise une chaine de caractéres, rajoute pour cela en haut de ton code, en dehors de tes procédure la déclaration d'une variable globale :Citation:
d'un seul coup dans une seule cellule
Code:Dim YaChaine As String 'Variables utilisé pour mémoriser valeur
tu remplace ton
Nom(i) =....
par
Code:YaChaine = YaChaine & yaC & vbLf
puis pour poser le résultat je t'ai aussi mis le code plus haut...
Je te remercie de tes précieux conseils qui m'ont permis d'y arriver. Bonne journée
Je suis désolé de revenir t'embeter, mais je n'arrive pas à faire des éléments copiés dans ma cellule des commentaires à destination d'une autre cellule. Peut être que ce transfert vers une cellule intermédiaire est superflu, mais je ne vois pas comment faire . Comprends-tu ma démarche ?
si j'en avais parlé dans mon message de 11h39. J'arrive, suivant tes conseils à tout copier dans une seule cellule, mais j'aimerai que ce contenu soit le commentaire d'une autre cellule
voila ce que je fais
mais maintenant, j'aimerai que le contenu de cette cellule puisse être mis en commentaire d'une autre celluleCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Range("A200").Activate ActiveCell.End(xlUp).Activate ligne_début = ActiveCell.Row ActiveCell.Offset(0, 1).Activate For i = 1 To 90 For Each yaC In Selection YaChaine = YaChaine & Chr(10) & yaC 'Ajoute cellules selectionnées à ma chaine Next ActiveCell.Offset(1, 0).Select If ActiveCell.Value = "" Then dern_ligne = ActiveCell.Row Exit For End If Next i Sheets("Saisie").Select Range("AA1").Select ActiveCell = YaChaine
Ca y est enfin, j'ai réussi grace à tes conseils. Encore merci pour ceux-ci.