[VBA] Masquer des colonnes identiques
Résolu
actaris51
Messages postés
93
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai besoin d'aide pour faire une macro.
J'ai un fichier excel de ce type :
http://www.cijoint.fr/cjlink.php?file=cj201103/cij1b5Q5Ml.xlsx
En gros une base de temps (la premiere ligne), et un certains nombre de variables qui prennent des valeurs au cours du temps. Par exemple dans ce fichier mes lignes 3 à 23 correspondent a 20 variables qui prennent des valeurs pendant le laps de temps entre 0,0 et 0,2.
J'aimerai faire une macro qui masque (ou qui supprime) automatiquement les colonnes ou l'ensemble des variables ne change pas de valeur. En gros si les colonnes cote a cote sont identiques, mis à part le temps qui évolue.
Par exemple dans le fichier joint, il ne faudrait garder que les colonnes A,C,F,G,I et J.
Pouvez vous m'aider ?
Merci !
J'ai besoin d'aide pour faire une macro.
J'ai un fichier excel de ce type :
http://www.cijoint.fr/cjlink.php?file=cj201103/cij1b5Q5Ml.xlsx
En gros une base de temps (la premiere ligne), et un certains nombre de variables qui prennent des valeurs au cours du temps. Par exemple dans ce fichier mes lignes 3 à 23 correspondent a 20 variables qui prennent des valeurs pendant le laps de temps entre 0,0 et 0,2.
J'aimerai faire une macro qui masque (ou qui supprime) automatiquement les colonnes ou l'ensemble des variables ne change pas de valeur. En gros si les colonnes cote a cote sont identiques, mis à part le temps qui évolue.
Par exemple dans le fichier joint, il ne faudrait garder que les colonnes A,C,F,G,I et J.
Pouvez vous m'aider ?
Merci !
A voir également:
- [VBA] Masquer des colonnes identiques
- Comment faire des colonnes sur word - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Masquer conversation whatsapp - Guide
- Comment masquer les amis sur facebook - Guide
- Comment appeler en masquer - Guide
3 réponses
Bonjour,
Tu peux faire un plan sur les colonnes par macro :
Ex : http://www.cijoint.fr/cjlink.php?file=cj201104/cijgL1i7Jd.xls
Pas le temps de donner plus d'explications mais je reviens dans 1h.
eric
edit : de retour, et remplacement par une version un peu plus élaborée.
Et je viens de voir qu'il faut contrôler les changements sur toutes les lignes, nouvelle version un peut plus tard
Tu peux faire un plan sur les colonnes par macro :
Sub groupeCol() Dim col As Long, lig As Long lig = 3 'ligne de base pour le regroupement des colonnes ' ActiveSheet.Outline.ShowLevels ColumnLevels:=2 On Error GoTo suite Columns.Ungroup suite: On Error GoTo 0 For col = 2 To Cells(lig, Rows(1).Cells.Count).End(xlToLeft).Column If Cells(lig, col) = Cells(lig, col - 1) Then Cells(lig, col).Columns.Group Next col ActiveSheet.Outline.ShowLevels ColumnLevels:=1 End Sub
Ex : http://www.cijoint.fr/cjlink.php?file=cj201104/cijgL1i7Jd.xls
Pas le temps de donner plus d'explications mais je reviens dans 1h.
eric
edit : de retour, et remplacement par une version un peu plus élaborée.
Et je viens de voir qu'il faut contrôler les changements sur toutes les lignes, nouvelle version un peut plus tard
Re,
La version définitive :
http://www.cijoint.fr/cjlink.php?file=cj201104/cijVkxPn3x.xls
eric
La version définitive :
Sub groupeCol() Dim col As Long, lig As Long, derlig As Long ' ActiveSheet.Outline.ShowLevels ColumnLevels:=2 On Error GoTo suite Columns.Ungroup suite: On Error GoTo 0 derlig = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row For col = 2 To Cells(3, Rows(1).Cells.Count).End(xlToLeft).Column For lig = 3 To derlig If Cells(lig, col) <> Cells(lig, col - 1) Then Exit For Next lig If lig > derlig Then Cells(lig, col).Columns.Group Next col ActiveSheet.Outline.ShowLevels ColumnLevels:=1 End Sub
http://www.cijoint.fr/cjlink.php?file=cj201104/cijVkxPn3x.xls
eric