Concaténer sur une ligne

jihem

XLDnaute Nouveau
Bonjour a tous,
Je viens de récupérer un fichier 6000 lignes et ... 112 colonnes .
je voudrai pouvoir concaténer sur une seule ligne (comme pour la ligne 16) la condition étant que les cellules B18 ET E18 soient égales a B17 ET E17 je prends un exemple (fichier piece jointe) :
1 - les conditions s'appliquent pour les lignes 17 à 78.
2 - Alors on garde sur la ligne 17 les valeurs de A17 à Q17 ainsi que la valeur de cette ligne inscrite entre les cellules R17 et DH17
3 - Ensuite on récupère sur la ligne en dessous la valeur trouvée entre R18 et DH18 et on la remonte d'une ligne
4 - On passe a la ligne N+2 , on récupère la valeur trouvée entre R19 et DH19 et on la remonte de 2 lignes... et ainsi de suite jusqu'a que la condition ne soit plus active.
5 - Enfin on supprime les lignes dont on aura récupéré les données de R à DH. sur mon exemple on supprimera les lignes 18 à 78
6 - Il ne restera plus qu'une ligne la 17 , comme fait manuellement pour la ligne 16.
Un modèle vaut bien une demande peut être par trop claire. ;-) je joins le fichier.
Merci
JM
 

Pièces jointes

  • Recupération.xls
    49.5 KB · Affichages: 30
  • Recupération.xls
    49.5 KB · Affichages: 36
  • Recupération.xls
    49.5 KB · Affichages: 35

Victor21

XLDnaute Barbatruc
Re : Concaténer sur une ligne

Bonjour jihem.

Pas sûr d'avoir tout compris : les lignes 2 à 16 n'aident pas, et les lignes après la 17° présentent toutes les mêmes valeurs en B et E.
A tout hasard, en R17 :
=SI(ESTNA(RECHERCHE(96;R18:R78));"";RECHERCHE(96;R18:R78))
, à recopier sur toutes les cellules vides jusqu'en DH17.
Puis copier, collage spécial valeur de la ligne 17 et suppression des lignes suivantes.
Sinon, VBA, mais sans moi...

PS : vous joignez un .XLS, et annoncez XL2010.
Si c'est bien XL 2010, utilisez sierreur()
=SIERREUR(RECHERCHE(96;R18:R78);"")
 
Dernière édition:

jihem

XLDnaute Nouveau
Re : Concaténer sur une ligne

Bonjour Victor21,
Et merci de votre réponse.
Effectivement les lignes 2 a 16 ne sont là que pour l'exemple de ce que je souhaite obtenir une fois les 6000 lignes traitées.
Oui les valeurs de B à E sont les mêmes lorsqu'il s'agit du même contact.
En fait je récupère ce fichier tel quel (il y avait 95 onglets !) que j'ai rassemblé en un seul.
Je pense aussi qu'un code vba serait adapté, car il ne faudrait pas modifier le contenu des cellules.
Si quelqu'un a un code , je suis preneur.
Cordialement
JM
 

gbinforme

XLDnaute Impliqué
Re : Concaténer sur une ligne

Bonjour jihem, Victor21,

Je pense aussi qu'un code vba serait adapté, car il ne faudrait pas modifier le contenu des cellules.
Si quelqu'un a un code , je suis preneur.

Alors, avec ce que j'ai compris voilà ton classeur avec une macro qui concatène sur une autre feuille.
 

Pièces jointes

  • Recupération.xls
    56.5 KB · Affichages: 30
  • Recupération.xls
    56.5 KB · Affichages: 43
  • Recupération.xls
    56.5 KB · Affichages: 42

gbinforme

XLDnaute Impliqué
Re : Concaténer sur une ligne

Bonjour jihem, le forum,

te serait il possible de m'expliquer ton code ? histoire que j'essaie de comprendre.

Le code consiste à partir d'une feuille 2 vierge.
Puis l'on compare les cellules B et E de feuille1 et de feuille2 :
- si différentes l'on copie la ligne sur la feuille 2
- si égales l'on copie les colonnes R à fin qui n'étaient pas renseignées
- si rupture de critère sur feuille 1 (B E) l'on passe à la ligne suivante sur feuille 2
et tu retrouves toutes tes valeurs d'un critère sur la même ligne.
J'espère que ce sera plus clair.
Merci du retour et à bientôt peut-être.
 

Discussions similaires

Réponses
2
Affichages
140
Réponses
6
Affichages
170

Statistiques des forums

Discussions
312 500
Messages
2 089 010
Membres
104 004
dernier inscrit
mista