Macro excel 2007 trouver des colonnes contenant des data

Bonjour à tous,

je vais essayer d'expliquer mon problème le plus clairement possible.

Je dois travailler sur un fichier contenant énormément de colonnes.
Je voudrais faire une macro qui aille chercher dans chaque ligne indépendamment, et me donne le nom des colonnes qui contiennent des datas.

Je voudrais coupler cette macro à une fonction IF. En effet, mes premières colonnes contiennent des sommes des colonnes suivantes, et m'indiquent donc si oui -ou non- les colonnes suivantes vont contenir des donnéess.

L'idée serait d'avoir une macro ou formule qui fasse si(ligne 1, les premieres colonnes contiennent des data;recherche de data dans colonnes suivantes de cette ligne) et qu'il me donne la liste des headings contenant des data (à croise avec un vlookup peut etre?)

Si je ne suis pas assez clair (c'est pas impossible!) merci de me le dire!

Merci d'avance pour votre aide!

4 réponses

  1. Bonjour
    Pas facile de vous aider, et difficile de tout comprendre. Cependant voici une approche en fonction de vos explications.
    dans le tableau, on teste la présence de cellules pleines par ligne de la colonne D à H.
    dans la colonne C, on affiche le nombre de cellules pleines de la ligne en question toujours de D à H, et en commentaires on affiche tous les entêtes de colonnes correspondantes.
    la colonne A contient vos datas.
    la colonne B fait la somme de chaque ligne si A ou C ne sont pas vides.
    En l'absence de plus de précisions, j'ai fait ce que j'ai cru comprendre

    https://www.cjoint.com/c/CHotlL0nFvy
    Cdlt
    0
    1. J'ai oublié, il faut lancer la macro "TrouverColonne"
      Vous pouvez ajouter des lignes, des colonnes
      0
    2. Bonjour,

      je testerai lundi!

      D'après ce que j'ai vu, c'est exactement ça!! C'est géant, merci beaucoup! ça va me faire vmt gagner du temps!

      Question : faut-il ajouter un niveau de détail supplémentaire dans la macro si je cherche dans un Tableau croisé dynamique ou j'ai des par exemple 0, 10 et 20 (mais pas de cellule vide), et que je ne veux que les data >0 ?

      Merci encore!!!!
      0
  2. Bonjour

    Pour ne chercher que les valeurs > 0 remplacer "" par 0 dans la ligne suivante
    If Cells(ligne, i + 3) <> "" Then
    ce qui devient
    If Cells(ligne, i + 3) <> 0 Then

    le problème avec le TCD, c'est que la structure est différente par rapport au fichier d'origine, donc il faudra créer une nouvelle macro.
    il vaut mieux disposer du fichier (même allégé) avec le TCD pour comprendre ce qu'il y a faire. (à déposer sur Cjoint.com)

    bonne journée
    cdlt
    0
    1. voilà la file en question. Ce n'est plus un pivot (pas besoin finalement, j'ai copier/coller les valeurs)

      Merci d'avance!!

      https://www.cjoint.com/c/CHtopUrWh9g
      0
    2. Bonjour

      Le tableau que vous fournissez ne présente rien de particulier par rapport à la demande initiale, si ce n'est que ça manque de commentaires, par exemple, dans qu'elle colonne doit-on afficher le résultat.
      Si vous pouviez donner plus de précisons directement dans le fichier, ce serait l'idéal
      A+
      0
  3. Ok, je ferai ça dès que possible!merci beaucoup en tout cas!!
    0
    1. Bonjour
      Essayez
      https://www.cjoint.com/c/CHunhV4w9gg
      bonne journée
      cdlt
      0
      1. Bonjour,

        merci pour le file. J'ai essayé d'incorporer la macro à mon fichier global (qui a le même format), mais ça plante quand il faut recopier les en tête.

        la ligne suivante (indiquée avec l'apostrophe à la fin ) bug :

        RecopieEntete:
        For i = 1 To NbColPleines '- 3
        If NbColPleinesMax = 0 Then GoTo Commentaires
        If Entete(i + 9) = "" Then GoTo Suivant 'ligne qui bug
        Entetes = Entetes & Chr(10) & Entete(i + 9)
        Entete(i + 9) = ""
        CptCellPleine = CptCellPleine + 1
        NbColPleinesMax = NbColPleinesMax - 1

        j'imagine que tous les (i+9) vont planter du coup. y'a t il une explication possible ou vous faut il le file?

        Merci!
        0
      2. je regarde
        0
      3. je ne comprends pas, ça marche très bien chez moi.
        puis-je avoir de nouveau le fichier pour vérifier
        merci
        0
      4. Voilà, c'est corrigé, tout simplement une annotation (changed) en dernière colonne venait perturbé le fonctionnement, or je ne vérifiait que les valeurs numériques.j'ai donc rajouté un contrôle supplémentaire.
        https://www.cjoint.com/c/CHuovVE7PwW
        bonne journée
        0