Concaténer des colonnes dans excel avec une macro
Résolu/Fermé
ThomasMexcel
Messages postés
28
Date d'inscription
jeudi 8 juin 2017
Statut
Membre
Dernière intervention
28 mars 2018
-
8 août 2017 à 08:54
ThomasMexcel Messages postés 28 Date d'inscription jeudi 8 juin 2017 Statut Membre Dernière intervention 28 mars 2018 - 8 août 2017 à 16:04
ThomasMexcel Messages postés 28 Date d'inscription jeudi 8 juin 2017 Statut Membre Dernière intervention 28 mars 2018 - 8 août 2017 à 16:04
A voir également:
- Vba concatener cellules
- Concatener deux cellules excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Excel compter cellule couleur sans vba - Guide
- Verrouiller cellules excel - Guide
- Inverse de concatener ✓ - Forum Bureautique
7 réponses
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
645
Modifié le 8 août 2017 à 11:37
Modifié le 8 août 2017 à 11:37
Bonjour,
Une proposition :
Peut-être a adapter et ajouter des gestions d'erreurs
Cordialement,
Une proposition :
Sub regroupement_colonnes() Dim X As Byte If MsgBox("Voulez-vous lancer le regroupement des cellules?", vbYesNo, "Extraction Nomenclature") = vbYes Then X = InputBox("Saisir le nombre de colonnes à regrouper") ActiveCell = "" For i = X To 0 Step -1 ActiveCell = Cells(ActiveCell.Row, ActiveCell.Column - X + i) & ActiveCell Next i End If End Sub
Peut-être a adapter et ajouter des gestions d'erreurs
Cordialement,
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 742
8 août 2017 à 11:45
8 août 2017 à 11:45
Bonjour
Il faut concatener la valeur de chaque cellule à la valeur de la dernière cellule donc l'instruction de boucle devrait être :
Cdlmnt
Via
Il faut concatener la valeur de chaque cellule à la valeur de la dernière cellule donc l'instruction de boucle devrait être :
For i = 0 To (X - 1) ActiveCell = ActiveCell & Cells(ActiveCell.Row, ActiveCell.Column - X + i) Next i
Cdlmnt
Via
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
8 août 2017 à 13:16
8 août 2017 à 13:16
Bonjour à tous,
avec une fonction personnalisée :
Syntaxes :
=concat(A2;" ";3) syntaxe complète : concat(cel1; separateur; nbCol)
=concat(A3;;3) utilisation séparateur par défaut = ", "
=concat(A4;" ") nbCol absent : toutes les colonnes jusqu'à celle de la formule
https://www.cjoint.com/c/GHilpdcE0Zg
eric
avec une fonction personnalisée :
Function concat(cel1 As Range, Optional sep As String = ", ", Optional nbCol As Long) As String Dim c As Range If nbCol = 0 Then nbCol = Abs(Application.ThisCell.Column - cel1.Column) For Each c In cel1.Resize(, nbCol) concat = concat & sep & c.Text Next c concat = Mid(concat, Len(sep) + 1) End Function
Syntaxes :
=concat(A2;" ";3) syntaxe complète : concat(cel1; separateur; nbCol)
=concat(A3;;3) utilisation séparateur par défaut = ", "
=concat(A4;" ") nbCol absent : toutes les colonnes jusqu'à celle de la formule
https://www.cjoint.com/c/GHilpdcE0Zg
eric
ThomasMexcel
Messages postés
28
Date d'inscription
jeudi 8 juin 2017
Statut
Membre
Dernière intervention
28 mars 2018
8 août 2017 à 13:30
8 août 2017 à 13:30
Merci à tous pour vos suggestions, la première réponse de pilas31 fonctionne parfaitement. Je ne sais pas si la requête suivante est possible : si j'ai effectué ma macro sur la première ligne, j'aimerais pouvoir étirer ensuite la cellule pour reproduire la macro sur les lignes suivantes, ce qui n'est pas le cas actuellement (cf image jointe)
Est-ilpossible de reconnaître les cellules ? Ou difficilement réalisable en passant via une macro ?
merci
https://img-19.ccm2.net/3n5gXyIjh-xclwaPTsPGkBBmfUM=/a994e46341a5461eb789400d03074a75/ccm-ugc/apercu.PNG
Est-ilpossible de reconnaître les cellules ? Ou difficilement réalisable en passant via une macro ?
merci
https://img-19.ccm2.net/3n5gXyIjh-xclwaPTsPGkBBmfUM=/a994e46341a5461eb789400d03074a75/ccm-ugc/apercu.PNG
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
Modifié le 8 août 2017 à 13:37
Modifié le 8 août 2017 à 13:37
tu es sûr d'avoir testé toutes les propositions ?
ThomasMexcel
Messages postés
28
Date d'inscription
jeudi 8 juin 2017
Statut
Membre
Dernière intervention
28 mars 2018
8 août 2017 à 13:50
8 août 2017 à 13:50
oui j'ai pour le moment le même résultat ..
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
8 août 2017 à 14:35
8 août 2017 à 14:35
??? même sur mon fichier ? Tu plaisantes, il y a 3 lignes différentes...
ThomasMexcel
Messages postés
28
Date d'inscription
jeudi 8 juin 2017
Statut
Membre
Dernière intervention
28 mars 2018
8 août 2017 à 14:39
8 août 2017 à 14:39
eriiic je n'arrive pas à avoir accès à ton fichier. Par contre je viens de voir que j'ai copié ta syntaxe dans l'onglet des macros, or tu me parles de créer une fonction.
Ai-je fait une erreur en important ta fonction dans l'onglet des macros ?
Merci pour ton aide
Ai-je fait une erreur en important ta fonction dans l'onglet des macros ?
Merci pour ton aide
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 742
8 août 2017 à 14:48
8 août 2017 à 14:48
As tu vérifié que tu n'est pas en calcul manuel ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ThomasMexcel
Messages postés
28
Date d'inscription
jeudi 8 juin 2017
Statut
Membre
Dernière intervention
28 mars 2018
8 août 2017 à 15:47
8 août 2017 à 15:47

Pour toi via55
ThomasMexcel
Messages postés
28
Date d'inscription
jeudi 8 juin 2017
Statut
Membre
Dernière intervention
28 mars 2018
8 août 2017 à 16:04
8 août 2017 à 16:04
eriiic c'est à priori tout bon ! lorsque je tire ma cellule ma fonction répond bien à ma demande.
Merci pour tes infos précieuses !
Merci pour tes infos précieuses !
hichamaziz
Messages postés
28
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
2 avril 2019
1
8 août 2017 à 14:37
8 août 2017 à 14:37
merci pour le post