Concatener des cellules comprisent entre 2 cellules vides.
Fermé
Cartman44
Messages postés
1
Date d'inscription
vendredi 20 décembre 2013
Statut
Membre
Dernière intervention
20 décembre 2013
-
20 déc. 2013 à 08:49
cartman44 - 24 déc. 2013 à 08:05
cartman44 - 24 déc. 2013 à 08:05
A voir également:
- Concatener des cellules comprisent entre 2 cellules vides.
- Protéger des cellules excel - Guide
- Excel concatener 2 cellules - Guide
- Concaténer pdf - Guide
- Figer des cellules excel - Guide
- Excel concatener une plage de cellules ✓ - Forum Excel
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
2 712
20 déc. 2013 à 09:43
20 déc. 2013 à 09:43
Bonjour,
Essaye avec cette fonction personnalisée :
Code :
Mise en place :
1- Ouvrir le classeur concerné,
2- Tapez ALT+F11 => Visual Basic Editor s'ouvre,
3- Insertion/Module
4- Copiez-collez le code dans le module ainsi créé,
5- fermez Visual Basic Editor
Dans la feuille :
Supposons les données, dans la colonne A, à partir de A4.
Les groupes à concaténer sont séparés par une ligne vide!
En B2 écrire la formule :
=CONCATENE_SPECIAL($A$4;1)
$A$4 = première cellule remplie de la colonne,
1 = Concaténation du 1er groupe
En B3 écrire la formule :
=CONCATENE_SPECIAL($A$4;2)
$A$4 = première cellule remplie de la colonne,
2 = concaténation du 2nd groupe
En B4 écrire la formule :
=CONCATENE_SPECIAL($A$8;3)
$A$4 = première cellule remplie de la colonne,
3 = concaténation du 3ème groupe
etc...
Supplément :
Il est fastidieux de devoir ressaisir la formule à chaque ligne. En effet, le 1, 2 etc ne s'implémente pas avec la poignée de recopie. Pour réaliser cela, il conviendra d'utiliser la formule :
=CONCATENE_SPECIAL($A$8;LIGNE(A1))
Ensuite, vous pouvez "étirer" cette formule vers le bas!
Essaye avec cette fonction personnalisée :
Code :
Function CONCATENE_SPECIAL(Debut As Range, Rang As Long)
Dim Fin As Range, Cel As Range, i As Long
Set Cel = ActiveCell
For i = 1 To (Rang - 1) * 2
Set Debut = Debut.End(xlDown)
Next
If Cel.Column = Debut.Column Then CONCATENE_SPECIAL = "ERREUR": Exit Function
Set Fin = Debut.End(xlDown)
If Fin.Row = Rows.Count Then CONCATENE_SPECIAL = "FIN DE LA COLONNE": Exit Function
For i = Debut.Row To Fin.Row
CONCATENE_SPECIAL = CONCATENE_SPECIAL & " " & Cells(i, Debut.Column)
Next i
End Function
Mise en place :
1- Ouvrir le classeur concerné,
2- Tapez ALT+F11 => Visual Basic Editor s'ouvre,
3- Insertion/Module
4- Copiez-collez le code dans le module ainsi créé,
5- fermez Visual Basic Editor
Dans la feuille :
Supposons les données, dans la colonne A, à partir de A4.
Les groupes à concaténer sont séparés par une ligne vide!
En B2 écrire la formule :
=CONCATENE_SPECIAL($A$4;1)
$A$4 = première cellule remplie de la colonne,
1 = Concaténation du 1er groupe
En B3 écrire la formule :
=CONCATENE_SPECIAL($A$4;2)
$A$4 = première cellule remplie de la colonne,
2 = concaténation du 2nd groupe
En B4 écrire la formule :
=CONCATENE_SPECIAL($A$8;3)
$A$4 = première cellule remplie de la colonne,
3 = concaténation du 3ème groupe
etc...
Supplément :
Il est fastidieux de devoir ressaisir la formule à chaque ligne. En effet, le 1, 2 etc ne s'implémente pas avec la poignée de recopie. Pour réaliser cela, il conviendra d'utiliser la formule :
=CONCATENE_SPECIAL($A$8;LIGNE(A1))
Ensuite, vous pouvez "étirer" cette formule vers le bas!
Merci pijaku,
Cela fonctionne très bien.
Seul Bémol, lorsque je change le contenu de la colonne A, la concatenation ne se fait pas toute seul.
Il faut que je valide la formule, en faisant 'F2' puis 'Entrée'.
Y a t-il un moyen pour que la formule s'applique tout le temps ?
Merci d'avance. Et Joyeux noël ....
PS: Pour le côté fastidieux, avec un éditeur de txt (UltraEdit par exemple) c'est plus facile.
Cela fonctionne très bien.
Seul Bémol, lorsque je change le contenu de la colonne A, la concatenation ne se fait pas toute seul.
Il faut que je valide la formule, en faisant 'F2' puis 'Entrée'.
Y a t-il un moyen pour que la formule s'applique tout le temps ?
Merci d'avance. Et Joyeux noël ....
PS: Pour le côté fastidieux, avec un éditeur de txt (UltraEdit par exemple) c'est plus facile.