concaténation de cellules dans un autre onglet

PR.

XLDnaute Nouveau
Bonjour, je suis autodidacte dans Excel et nouveau membre.
Je souhaiterais concaténer des cellules contenues dans un Tableau dans un 1er onglet sur un autre onglet et dans un autre tableau.
Jusque la facile,. Je vais sur mon deuxième onglet, dans la cellule ou je veux concaténer les cellules contenues dans le 1er tableau avec la formule =CONCATENER(Nom onglet1!A2;" - ";Nom onglet 1!B2).
La ou cela devient compliqué pour moi, c'est que je veux faire glisser cette formule et je n'y parviens pas car dans le 1er tableau, les données sont en lignes et dans le deuxième tableau elles sont en colonnes. existe-t-il une astuce?
Par avance merci.
PR.
 

Lu76Fer

XLDnaute Occasionnel
Bonjour PR.,
Si vous voulez pouvoir changer la cellule ciblée il existe les 2 fonctions utilisateurs suivantes :
INDEX ou INDIRECT

Ensuite, il est important de savoir utiliser les références à une cellule :
A1 : par défaut, il s'agit d'une référence relative qui pointe la cellule en prenant comme référence la cellule contenant la fonction utilisateur. Ex : dans B1 on a '=A1' cela est traduit par R[0]C[-1].
$A$1 : il s'agit d'un référence absolue qui pointe la cellule A1 quelque soit la cellule contenant la fonction utilisateur.
Il est aussi possible d'avoir les 2, par exemple $A1 ou A$1.

Ne connaissant pas exactement ton problème, je souhaite que cela vous donnera les éléments pour y arriver,
 
Dernière édition:

Lu76Fer

XLDnaute Occasionnel
Re : sinon une autre méthode avec la fonction TRANSPOSE :
Avec cette fonction il est possible de transformer la ligne de donnée en une colonne de donnée. Par contre, il sera impossible de combiner le résultat avec une autre fonction. Il faudra donc avec une colonne supplémentaire qui pourra être masquée.
sur l'élément du haut de la colonne il faut écrire la fonction =TRANSPOSE(<< ref à la ligne>>)
Il faut ensuite toute la colonne utile pour recevoir les éléments de la ligne de données puis faire F2 et CTRL + SHIFT + ENTER. C'est dans l'aide de la fonction...
Il sera possible d'étendre la formule en prenant le premier élément, en modifiant la formule et valider toujours avec CTRL + SHIFT + ENTER.
 

PR.

XLDnaute Nouveau
Bonjour Lu76Fer,

Tout d'abord merci de ta réponse.

Malheureusement pour moi, je ne pense pas que cela puisse résoudre mon problème.
Un exemple valant mieux qu'un long écrit, en PJ un fichier exemple de mon problème.

Sur l'onglet Details_evenements je n'ai pas de difficultée pour faire apparaitre dans la colonne B les valeur déjà saisies sur l'onglet Base_evenements contenues dans la ligne 2.
La ou ça se complique c'est que je souhaite faire glisser les formule de la colonne B de l'onglet Details_evenements pour que dans les colonnes suivantes, s'incrémentent les données des lignes 3 et les suivantes de l'onglet Base_evenements.
Et la je sis pas faire....
 

Pièces jointes

  • Exemple forum.xlsx
    12.3 KB · Affichages: 4

Lu76Fer

XLDnaute Occasionnel
Bonjour,
J'ai regarder ton fichier et en cherchant un peu je vois que tu utilises des références structurées avec tes tableaux. Je ne connais pas cette syntaxe et j'ai pris connaissance de celle-ci :
Utilisation de références structurées avec des tableaux Excel - Support Microsoft
Pour l'instant je n'ai pas vu qu'il était possible de gérer des tableaux horizontaux ...
Je ne sais pas s'il sera possible dans ton cas d'utiliser ce type de référence et si tu ne seras pas obligé d'utiliser que des références simples :
Comme tu as fais ici :
=CONCATENER(Base_evenements!A2;" - ";Base_evenements!B2)
A suivre ...
 

PR.

XLDnaute Nouveau
Bonjour,
J'ai regarder ton fichier et en cherchant un peu je vois que tu utilises des références structurées avec tes tableaux. Je ne connais pas cette syntaxe et j'ai pris connaissance de celle-ci :
Utilisation de références structurées avec des tableaux Excel - Support Microsoft
Pour l'instant je n'ai pas vu qu'il était possible de gérer des tableaux horizontaux ...
Je ne sais pas s'il sera possible dans ton cas d'utiliser ce type de référence et si tu ne seras pas obligé d'utiliser que des références simples :
Comme tu as fais ici :
=CONCATENER(Base_evenements!A2;" - ";Base_evenements!B2)
A suivre ...
Merci.
Je me suis débrouillé en réorganisant toute mes formules ainsi que tous mes tableaux. Heureusement qu'il n'y avait pas trop de volume.
Effectivement j'ai utilisé la formule concaténer.
Merci de ta réponse.
 

PR.

XLDnaute Nouveau
Bonjour,

Regarde le classeur joint.


Daniel
Vous êtes au top!
Merci à tous, j'ai réussi a me débrouiller non seulement avec la formule concaténer comme dit plus haut, mais aussi avec la formule index equiv.
Pour l'heure j'arrive à bâtir le projet et la réorganisation imposée à ouvert d'autres possibilités qui seront ou pas exploitées.

Encore merci à tous
 

Lu76Fer

XLDnaute Occasionnel
Vous êtes au top!
Merci à tous, j'ai réussi a me débrouiller non seulement avec la formule concaténer comme dit plus haut, mais aussi avec la formule index equiv.
Pour l'heure j'arrive à bâtir le projet et la réorganisation imposée à ouvert d'autres possibilités qui seront ou pas exploitées.

Encore merci à tous
Bonsoir,
Ce serait intéressant de voir l'une de tes fonctions utilisateurs avec INDEX et EQUIV ...
 

PR.

XLDnaute Nouveau
BonjourLu76Fer,

Ci dessous une formule comme tu me l'a demandé.
=SIERREUR(INDEX(Base_Evenements!$R$2:$R$11;EQUIV($G$1;Base_Evenements!$B$2:$B$11;0));"")

Voici l'explication littérale :

- 1er argument : Ne rien écrire en cas d'erreur.
=SIERREUR(();"")
- 2eme argument : Aller chercher l'information souhaitée dans une plage sur un onglet nommé.
c'est la fonction INDEX. Cet argument venant remplir la parenthèse en rouge du 1er argument.
INDEX(Base_Evenements!$R$2:$R$11)
- 3eme argument : identifier l'information recherchée sur une autre plage du même onglet.
C'est la fonction EQUIV. Attention les plages doivent être de taille identiques.
Cet argument vient s'insérer à la suite du 2eme argument en étant précédé d'un point virgule.
;EQUIV($G$1;Base_Evenements!$B$2:$B$11;0)
Dans ce cas, on recherche l'équivalence de la cellule G1.
Le point virgule et le 0 positionnés avant de refermer la parenthèse indiquent que je recherche exactement la valeur contenue en G1.

Et voila le combo INDEX_EQIV qui en prime n'affiche pas de message d'erreur.

Cela reprend un peu la fonction RECHERCHEV mais le gros avantage est que lorsque l'on modifie les plages en insérant des lignes ou des colonnes, ta formule se modifie toute seule ce qui n'est pas le cas avec RECHERCHEV

De plus, cette fonction me parait plus simple que RECHERCHEV. Mais la, c'est peut être moi qui ais l'esprit tordu 😁😁😁

Bon décorticage.
PR
 

Discussions similaires