Renvoyer nom d'une colonne fonction d'une ligne

Bonjour A toutes et à tous,

C'est mon premier post. Merci par avance de l’intérêt que vous voudrez bien porter à ma demande.

Je travail actuellement sur un carnet de santé des bâtiments.

L'idée générale est que l'on croisent plusieurs bases de données sur différents domaines (caractéristiques générale, effectifs, surfaces, énergie ...). Je l'ai met dans des feuillet séparés.

Ici le feuillet qui me pose problème (5.1 dans le fichier ci-joint) est une grille d'évaluation de bâtiments. Nous avons les différents bâtiments en ligne et les différents éléments du bâti classés par catégories (structure, clos, couvert, elec, ...) et sous catégorie (éléments porteurs, façades ...) en colonne avec des niveaux d'appréciation pour chaque catégorie (allant de TS : Trés satisfaisant à Ma : Mauvais ou SO : Sans objet). Pour chaque sous catégorie, je sélectionne l'appréciation avec une croix.

J'aimerai renvoyer ces informations dans le feuillet de synthèse du bâtiment (ici, "01" et "12"). Pour ce faire, je cherche à renvoyer le nom de la colonne correspondant à la fois au bâtiment concerné (identifié en B3 du feuillet "01" et du "12") et de la position de la croix dans le tableau correspondant.

J'ai trouver un sujet qui répond partiellement à ma question, mais je n'arrive pas à l'adapté à ma problématique.

https://forum.excel-pratique.com/excel/renvoyer-le-nom-de-la-colonne-d-un-nombre-dans-un-tableau-t18497.html

Petite question annexe. J'aimerai également faire une mise en forme conditionnelle des colonnes de façon à ce qu'elles se colorent fonction du résultat (TS : vert foncé, S : vert claire, PS : Orange, Ma : rouge, SO : gris moyen).

Merci d'avance.

Bonjour,

essayez le fichier que je vous joins, changez le numéro de la feuille 1 et dites moi si c'est le résultat attendu :s

edit1: changez le numéro de bâtiment bien sur ^^

Bonjour,

Ça marche très bien même, mais j'ai des vieilles bases en VBA et je n'arrive pas à coller cette macro sur mon fichier d'origine. De plus les modifications du code me dépassent. Je me permet de vous envoyer le fichier complet sachant qu'il contient des liens externes sur des fichiers de mon arborescence.

Merci beaucoup pour votre contribution.

Bonjour,

Je pense qu’essayer d'adapter ma macro prendra plus de temps qu'en créer une nouvelle vu la différence de complexité entre le fichier exemple et le réel (ce nombre de feuille !).

Avec les liens externes, ça devient plus compliqué de comprendre comment sont agencées les données.

Effectivement.

J'ai mise le feuillet source "5.1" au complet, ainsi que le feuillet "01" complet sans références externes.

SI vous pouvez faire quelque chose car j'ai essayer de modifier votre macro et j'arrive pas à grand chose avec mes maigres connaissances.

En vous remerciant

Tuctuc

Toujours le problème des références externes,

faites un copier/coller seulement des valeurs.

Oui désolé. voici le fichier modifié

à vérifier,

c'est de loin le code le moins élégant que j'ai pondu x)

edit: un petit problème avec la date du rapport il me semble, à voir

edit2: dans ma macro, je sélectionne les feuilles par rapport à leurs positions, une erreur de ma part, pour quelle puisse être insérée dans votre fichier il faudrais subsituer les sheets(1). et les sheets(2). par des sheets("01"). et sheets("5.1").

Il me semble qu'il y a une fonction pour substituer dans le code, je regarde ça cette aprem.

Ca fonctionne avec les bons résultats sauf la date effectivement. Par contre, je suis obliger de relancer la macros à chaque fois pour l'exécuter. Est-je oublier quelque chose ?

Je joins le code modifié.

24macro-excel.txt (6.46 Ko)

Ok !! J'ai compris ! J'ai intégrer une ligne de code dans la sheet (1). Ça revient petit à petit le VBA. Vraiment désolé pour ces messages confus.

Merci encore pour votre aide.

Vous êtes sur que les valeurs sont dans la bonne colonne, surtout vers les dernières données, avec la structure un peu moisi de mon code qui ne marchera plus si vous changez/ajoutez/enlevez ne serait-ce qu'une colonne, si il y a des problèmes de correspondances

(2 champs inversés) il faudra retoucher un peu le code :s

Et en effet, il faut appeler la procédure au changement de valeur d'une cellule de la feuille, en vérifiant que la target est bien B3 avant de lancer la procédure.

Oui tout à fait, j'avais vu qu'il y avait des petits bugs que j'ai corrigé. C'est claire que c'est pas très lisible mais c'est de la faute de ma structuration de données. Ca fonctionne en tout cas et j'en suis bien content. Pour la date ca marche. C'est tout simplement un problème de format de cellule. Par contre des fois il n'y a pas de donnée et la il donne une valeur au 01/01/1900.

hum, avec un test sur la valeur avant de la copier, on devrait s'en sortir je pense.

Je me suis aussi rendu compte que vous vouliez une mise en forme un peu différente de celle que j'ai mis en place,

si vous voulez mettre exactement ce que vous souhaitez :

J'avais vu cette partie également que j'ai inclus dans mon formulaire et que j'ai mis à ma sauce.

Dans la même veine mais un peu différent, je voudrais faire un tri des bâtiments par classe d'énergie. J'ai une valeur dans la B20 et B25 qui sont fonctions des infos en feuille "4.3".

Je cherche à faire apparaître la lettre de classe d'énergie en B19 et d'émission de gaz à effet de serre en B24 en fonction d'une par de ce nombre inscrit en B20 ou B25 et d'autre par du type de bâtiment en B18 (bureau, bâtiment d'enseignement, installation sportives, ....)

Rechercher des sujets similaires à "renvoyer nom colonne fonction ligne"