Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 masquer ou afficher des colonnes avec un bouton et macro

DIDPROJ

XLDnaute Nouveau
Bonjour à tous,

J'aurais besoin d'une aide car il y a une chose que je n'arrive pas à faire.
J'ai joins mon fichier excel qui correspond à mon planning.
Son principe de fonctionnement est le suivant :
- je renseigne une date de début et une date de fin
- il s'affiche l'ensemble des jours et des dates compris entre les 2 dates renseignées précédemment
- Tous les jours d'une semaine sont représentés y compris les samedi et dimanche.
Voici ce dont j'aurais besoin
Je voudrais donc que lorsque j'appuis sur un bouton agissant par l'intermédiaire d'une macro, que je puisse masquer ou afficher les colonnes correspondant aux samedi et dimanche afin d'avoir une vue en jours ouvrés.

J'ai pas mal cherché sur internet des tutos et autres explications mais je m'y perd complétement.

J'espère que j'ai été assez clair si besoin n'hésité pas me recontacter

Si vous avez déjà fait une chose de ce genre ou des astuces, je suis preneur.

D'avance merci
 

Pièces jointes

  • 25.xlsm
    117.8 KB · Affichages: 14
Solution
Bonjour,
Ah trop tard, je le passe quand même... A mettre sur un bouton par exemple.
VB:
Option Explicit

Private ColonnesWeekEndMasquées As Boolean

'-----------------------------------------
'Masque ou affiche les colonnes "S" et "D"
'-----------------------------------------
Sub MasquerColonnesWeekEnd()
    Dim Colonne As Range
   
    'Inverse le masquage
    ColonnesWeekEndMasquées = Not ColonnesWeekEndMasquées
   
    'Colonne sur le 1er jour du planning
    Set Colonne = ActiveSheet.Range("O:O")
   
    'Pour chaque colonne masquer ou afficher si "S" ou "D"
    Do While Not IsEmpty(Colonne.Cells(5))
        If UCase(Colonne.Cells(5).Value) = "S" _
        Or UCase(Colonne.Cells(5).Value) = "D" _
        Then...

Ikito

XLDnaute Occasionnel
Bonjour,

VB:
Sub masquer()

i = 14

While Cells(5, i).Value <> ""
 If Cells(5, i).Value = "S" Or Cells(5, i).Value = "D" Then
    Columns(i).Hidden = True
 End If
 i = i + 1
Wend

End Sub

Sub Afficher()

Columns("P:ZZ").Hidden = False

End Sub
 

Dudu2

XLDnaute Barbatruc
Bonjour,
Ah trop tard, je le passe quand même... A mettre sur un bouton par exemple.
VB:
Option Explicit

Private ColonnesWeekEndMasquées As Boolean

'-----------------------------------------
'Masque ou affiche les colonnes "S" et "D"
'-----------------------------------------
Sub MasquerColonnesWeekEnd()
    Dim Colonne As Range
   
    'Inverse le masquage
    ColonnesWeekEndMasquées = Not ColonnesWeekEndMasquées
   
    'Colonne sur le 1er jour du planning
    Set Colonne = ActiveSheet.Range("O:O")
   
    'Pour chaque colonne masquer ou afficher si "S" ou "D"
    Do While Not IsEmpty(Colonne.Cells(5))
        If UCase(Colonne.Cells(5).Value) = "S" _
        Or UCase(Colonne.Cells(5).Value) = "D" _
        Then
            Colonne.EntireColumn.Hidden = ColonnesWeekEndMasquées
        End If
       
        Set Colonne = Colonne.Offset(0, 1)
    Loop
End Sub
 

DIDPROJ

XLDnaute Nouveau
C'est encore moi,
Je m'excuse de vous solliciter de nouveau mais j'aurais encore besoin de vous.

Sur ce même fichier je voudrais essayer de faire 2 choses.

Dans un premier temps, je voudrais que la ligne A8 (voir mon fichier joint en début de discussion) se répète en dessous les une des autres grâce à un bouton.

et dans un deuxième temps, je voudrais que l'ensemble des lignes A7 et A8 se répète les une en dessous des autres en conservant la fonction de la ligna A8 décrite juste avant.

Toujours en macro bien sur car je voudrais mettre des boutons.

D'avance merci.
 

Dudu2

XLDnaute Barbatruc
Du fil à retordre si j'en juge par la question !
DIDPROJ, que veut dire "se répète en dessous les une des autres" ? On ne peut rien faire avec ça.
Pareil pour "se répète les une en dessous des autres en conservant la fonction de la ligna A8 décrite juste avant".
Et ça se répète combien de fois ?
Donne un exemple final pour clarifier.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…