Macro excel 2007 trouver des colonnes contenant des data

Vdpt Messages postés 26 Statut Membre -  
Vdpt Messages postés 26 Statut Membre -
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. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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. Frenchie83 Messages postés 2254 Statut Membre 339
       
      J'ai oublié, il faut lancer la macro "TrouverColonne"
      Vous pouvez ajouter des lignes, des colonnes
      0
    2. Vdpt Messages postés 26 Statut Membre
       
      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. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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. Vdpt Messages postés 26 Statut Membre
       
      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. Frenchie83 Messages postés 2254 Statut Membre 339
       
      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. Vdpt Messages postés 26 Statut Membre
     
    Ok, je ferai ça dès que possible!merci beaucoup en tout cas!!
    0
  4. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour
    Essayez
    https://www.cjoint.com/c/CHunhV4w9gg
    bonne journée
    cdlt
    0
    1. Vdpt Messages postés 26 Statut Membre
       
      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. Frenchie83 Messages postés 2254 Statut Membre 339
       
      je regarde
      0
    3. Frenchie83 Messages postés 2254 Statut Membre 339
       
      je ne comprends pas, ça marche très bien chez moi.
      puis-je avoir de nouveau le fichier pour vérifier
      merci
      0
    4. Vdpt Messages postés 26 Statut Membre
       
      voilà le file. En gros la macro ne s'applique pas sur l'ensemble des data on dirait...

      https://www.cjoint.com/c/CHunWg7lMm2

      merci!
      0
    5. Frenchie83 Messages postés 2254 Statut Membre 339
       
      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