Recopie base de donnée avec ordre colonne différent

Bonjour à tous,

je viens à vous afin de vous exposer ma requête qui ne doit pas être difficile à régler mais étant limité dans ma compréhension des fonctions, je fais appel à vos services.

Chaque mois je reçois un fichier image d'une base de données complètement indigeste et je dois m'appuyer sur cette base de donnée pour créer des feuilles Excel avec juste quelques colonnes utiles. Bien sur chaque feuille à un ordre particulier pour les colonnes.

Exemple: feuille 1 : base de donnée source

feuille 2: col A : "Nom" col B: "Prénom" col C: "Numéro" etc...

feuille 3 : col A : "Numéro" col B: "Prénom" col C: "Nom" etc...

Vous comprenez que les en-tête ne sont pas dans le même ordre. Donc j'aurais besoin d'une formule me permettant de rechercher le nom de l'en-tête et quand trouver reporter dans les différentes feuilles du même classeur les données de la colonne associée.

Je vous ai mis un exemple en pièce-jointe.

39exemple.xlsx (9.59 Ko)

J'ai volontairement mis un nom d'en-tête différent dans la feuille source mais qui est appelé différemment dans les autres feuilles ( numéro => num ) car cela arrive que l'en-tête n'a pas le même nom. Su ce point si cela est trop complexe à établir, ce n'est pas grave, je peux changer le nom dans le fichier source.

En vous remerciant par avance pour votre aide et espérant avoir été le plus clair possible.

A votre disposition pour tout complément d'information.

A bientôt.

Bonjour,

si j'ai bien compris les entetes peuvent être variables donc il faut une intervention manuelle au départ.

je te propose la démarche suivante :

  • insérer une ligne au dessus du tableau récupéré
  • numéroter dans l'ordre voulu uniquement les colonnes à récupérer dans les cellules au dessus du tableau
  • tout sélectionner ( CTRL a)
  • trier les colonnes et non les lignes en fonction de la ligne comportant ces numéros
  • les colonnes sont dans l'ordre, ont suprime les dernières

Cela, a part la numérotation peut être totalement automatisé, mais pour cela il faut disposer de 10 lignes brutes complètes d'un tableau, avec une ligne comportant le rang définitif de la colonne retenue

Cordialement

FINDRH

29tri-colonnes.xlsx (43.18 Ko)

Bonjour,

tout d'abord merci pour avoir pris le temps d'étudier mon soucis.

Il y a une nuance que je n'ai pas dû spécifier mais l'ordre sur les autres onglets doit être respecté donc pas possible de les remettre dans l'ordre.

En effet, ces autres onglets me permettront d'importer ces données dans différents logiciels qui requièrent un ordre dans les colonnes qui sont propre à chaque logiciel.

En espérant avoir été clair dans mes propos.

Cordialement.

Bonjour...Si vous avez moyen de travailler pour une similarité dans les entêtes cela me semble approcher de la cible non ?

27exemple.xlsx (9.11 Ko)

Bonjour

dans ce cas au lieu d 'insérer une ligne tu en insères 2 au début du tableau

  • la première tu numérotes de 1 à XX ( dernière colonne)
  • la deuxième tu numérotes les colonnes a récupérer dans l'ordre

un premier tri sur la deuxième ligne pour récupérer dans l'ordre voulu

un deuxième ensuite sur la première ligne pour remettre les colonnes dans l'ordre initial

puis tu supprimes les deux premières lignes

Sans fichier minimal impossible d'en faire plus

Cordialement

FINDRH

Bonsoir,

encore pour vos réponses, en effet l'approche de Offset est quasiment pile ce que je cherche, en l'état je peux l'utiliser. Un grand merci à vous.

Pour peaufiner, ya t-il possibilité pour la feuille 2 de ne pas dire où est la colonne recherché mais insérer dans la formule le nom de la colonne à rechercher et si trouver "décaler" les valeurs de la colonne.

Encore merci pour votre aide !

Bonjour Fissa,FINDRH

Fissa, l'élément en bleu c'est l'expression qui va être recherchée dans la ligne d'entête donc il vous faut déterminer par quel moyen amener cette expression dans la formule.

DECALER('donnée source'!$A$1;LIGNE()-1;EQUIV("num";'donnée source'!$1:$1;0)-1)

Bonjour,

j'ai bien compris cela. En fait, ce que je voulais c'est avoir une formule de ce type qui va récupérer les infos automatiquement et non moi à tirer la formule jusqu'à plus finir. Combiner peut-être la formule avec une fonction type qui verifie tant que la cellule n'est pas vide cela décale la donnée dans la bonne colonne avec l'intitulé recherché comme l'exemple "num".

Si la colonne Num dans le premier volet il y a 1250 lignes

La formule va rechercher la colonne Num et récupérer les 1250 lignes

En espérant avoir été clair cette fois-ci

MERCI!

Cordialement

Bonjour, avec ou sans vba ?

Bonjour à tous

Un essai à tester, puisque l'ordre sur les différents onglets est fixe.

Cela convient-il ?

Bye !

40exemple-v1.xlsm (20.13 Ko)

Bonjour,

MAGNIFIQUE ! c'est pile ce que je cherchais. Merci beaucoup.

J'ai regardé le code et même si je n'ai pas compris toutes les fonctions, j'arrive à l'adapter pour mon besoin ( nom, nombre de colonnes à prendre en charge )

Encore merci à tous pour avoir penché à mon problème qui va devenir un plaisir

A très bientôt j'espère et bonne continuation

Rechercher des sujets similaires à "recopie base donnee ordre colonne different"