Recherche de formules sous Excel 2007

JVYG Messages postés 3 Statut Membre -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'ai besoin de comprendre comment on peut (et si cela est possible) sélectionner et faire apparaitre à l'écran uniquement des colonnes ayant la même entête ?
Partant du principe que le tableau me sert pour analyser des marchés, que j'ai environ 700 clients et pour chaque client on retrouve 1500 lignes et 6 colonnes différentes dont : date de marché, prix proposé, quantités, A/R, prix concurrent, nom concurrent.

Je voudrais par exemple uniquement sélectionner voir les 700 colonnes de "prix concurrent".
Comment faire ?

merci pour votre aide.

4 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Possible avec une macro de faire masquer toutes les colonnes n'ayant pas prix concurrent sur la 1ere ligne

    Sub masquedemasque()
    Dim DernCol As Integer
    DernCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    For n = 1 To DernCol
    If Cells(1, n).Value <> "prix concurrent" Then ' 1 pour 1ere ligne, si les titres sont sur une autre ligne changer le 1 par le bon n° de ligne
    Columns(n).Select
    If Selection.EntireColumn.Hidden = True Then Selection.EntireColumn.Hidden = False Else Selection.EntireColumn.Hidden = True
    End If
    Next
    End Sub

    Marco à mettre dans le worksheet de la feuille concernée en procédant ainsi :
    ALT F11 pour ouvrir l'éditeur VBA
    Selectionner par double-clic la feuille concernée dans l'arborescence
    Copier la macro et la coller dans la page blanche
    Fermer l'éditeur
    La macro est accessible depuis la page voulue à partir de l'onglet Developpeur Macros

    L'appel à la macro masque les colonnes si elles sont visibles ou les démasque si elles ont cachées

    Cdlmnt
    0
  2. JVYG Messages postés 3 Statut Membre
     
    Merci beaucoup pour cette aide rapide, mais cela ne marche pas.

    j'ai pour résultat après avoir suivi les conseils de voir disparaitre mes colonnes A, B et C, et les 6 items par client s'affichent sur la même ligne ....

    De plus, comment faire pour revenir en arrière quand on a exécuté la macro ?

    merci d'avance,

    JVYG
    0
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Re,
      la macro marche bien (j'ai essayé) à condition que les entêtes soient bien en ligne 1 sinon il faut changer le n° de ligne dans la macro comme je l'avais indiqué dans la macro

      Normalement en appliquant une deuxième fois la macro toutes les colonnes masquées devraient se démasquer

      Sinon pour le faire manuellement sélectionner la première colonne visible en débordant un peu à gauche puis clic droit et Afficher

      Si tu peux poster un exemple de ton fichier allégé (quelques colonnes et quelques lignes suffiront) et anonymé sur cjoint.com et indiquer ici le lien fourni ce sera plus évident pour y adapter la macro

      Cdlmnt
      0
    2. JVYG Messages postés 3 Statut Membre
       
      re, via55

      A priori, tu es largement plus au point que moi (et de loin). Au risque de passer pour un abruti, comment puis-je te faire passer une partie de mon tableau ?

      Cdt
      0
    3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Tu vas sur le site de cjoint :
      https://www.cjoint.com/
      Tu télécharges ton fichier tu valides les options privé 21 jour et tu vas en bas de page Créer le lien; une fois le lien crée tu copie ce lien (en bleu) et tu viens le copier dans ton prochain message
      0
  3. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Bonjour.

    Sans macro, on peut faire un tri personnalisé, option "de la gauche vers la droite".

    Cordialement.
    0
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Autre proposition.
    Sélectionner les titres de colonne. Ca peut être une sélection multiple, cellules séparées.
    Clic-droit sur la sélection filtre les colonnes.
    Un autre clic droit n'importe où les ré-affiche.
    La ligne de titre peut-être n'importe où.
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
        Static masqueOn As Boolean
        Dim titre As String
        Dim c As Range, col As Long, dercol As Long
        If masqueOn Then
            Columns.Hidden = False
            masqueOn = False
        Else
            titre = ";"
            dercol = Cells(Target.Row, Columns.Count).End(xlToLeft).Column
            For Each c In Selection
                titre = titre & c.Value & ";"
            Next c
            For col = 1 To dercol
                Columns(col).Hidden = InStr(titre, Cells(Target.Row, col)) = 0
            Next col
            masqueOn = True
        End If
        Cancel = True
    End Sub

    https://www.cjoint.com/?DHBtKtb6sXc

    eric
    0