Supprimer les colonnes de Week End - (aléatoires)

Bonjour,

je travaille sur un planning de saisie d'activités. Il est basé sur un planning perpétuel (Excelabo) qui génère des onglets du mois à saisir. Avec des mises en forme conditionnel, j'ai grisé les colonnes concernat les Week End et Jr fériés , mais je préfèrerai que les colonnes WE soient carrément supprimés.

Je suis complètement débutante et je n'ai rien trouvé sur le net. Je ne sais même pas par quel bout commencer...

A la rigueur, on pourrait se contenter de masquer les collonnes ou de les réduires ?

Je vous joins un fichier .

NB : Apartir de la feuille menu, on détermine l'onglet/mois à créer, qui met à jour la feuille Planning qui sert de modèle à la création des onglets.

Merci pour votre aide et svp, merci de détailler le code, afin que je le comprenne (je suis en auto formation)

Bonjour

Modifies cette macro (dans le code de l'userform)

Private Sub CommandButton25_Click()
'Mise à jour du planning avant affichage
    Call CopyDuModele
End Sub

Modifies cette macro (Module1)

Tu remettras le code qui teste si la feuille existe

'CREATION DES NOUVEAUX ONGLETS
Sub CopyDuModele()
Dim I As Integer

  Application.ScreenUpdating = False

  'Copie de la feuille modèle 'Planning' avant elle-même
  Worksheets("Planning").Copy Before:=Worksheets("Planning")

  With ActiveSheet
    'attribuer à la feuille active, le nom de la cellule A2
    .Name = Format([a2].Value, "mm-yy")
    ' Suppression de la formule
    .Range("B3:B4").Value = .Range("B3:B4").Value
    ' Masquer les colonnes
    For I = 3 To 33
      If Weekday(.Cells(3, I), vbMonday) > 5 Then .Columns(I).Hidden = True
    Next I
  End With
End Sub

Merci Banzai,

Je maîtrise pas bien encore les conditions, mais je ne désespère pas, le pb c'est prendre le temps d'apprendre tout ou d'apprendre par l'exemple...

tu as écrits :

    ' Masquer les colonnes
        For I = 3 To 33
            If Weekday(.Cells(3, I), vbMonday) > 5 Then .Columns(I).Hidden = True
        Next I

en regardant sur l'aide la fonction Weekday, il est dit qu'elle renvoie les valeurs 1 pour dimanche et 7 pour samedi or, toi, tu dis vbMonday)>5 ; là je ne comprends pas, si tu peux m'expliquer la logique, ce serait sympa.

Je te copie le code de la procédure des onglets, car j'ai un bug. Avant la modif des colonnes, quand j'essayais de créer un onglet déjà existant, il ne se passait rien, maintenant j'ai une erreur d'exécution '1004' qui renvoie sur

        .Name = Format([a2].Value, "mm-yy")

Je sais que j'ai gardé un de tes bouts de code quand j'ai supprimé le tri des onglets et je ne sais pas où / comment renvoyer une msgbox "Mois déjà existant".

Si tu peux m'aider encore ,

'//////////////////////////////
'CREATION DES NOUVEAUX ONGLETS
Sub CopyDuModele()
Dim I As Integer

'Se positionner en haut du tableau
    Range("A1").Select
' Vérification si la feuille que l'on doit créer n'existe pas
    If FeuilleExiste(Format(Sheets("Modèle").Range("MoisCourant"), "mm-yy")) = False Then
        Application.ScreenUpdating = False ' Bloque le raffraichissement écran
    End If

'Copie de la feuille modèle 'Modèle' avant elle-même
Worksheets("Modèle").Copy Before:=Worksheets("Modèle")
    With ActiveSheet
    'attribuer à la feuille active, le nom de la cellule A2
        .Name = Format([a2].Value, "mm-yy")
    ' Suppression de la formule =DATE(ChoixAn;ChoixMois;1)) contre sa valeur
        .Range("B3:B4").Value = .Range("B3:B4").Value
    ' Masquer les colonnes
        For I = 3 To 33
            If Weekday(.Cells(3, I), vbMonday) > 5 Then .Columns(I).Hidden = True
        Next I
    'Colorer l'onglet en bleu
        .Tab.ColorIndex = 33
    End With
End Sub

à toute fins utiles, je renvoie un fichier avec toutes les modifs.

Merci

Bonjour

If Weekday(.Cells(3, I), vbMonday) > 5 Then .Columns(I).Hidden = True

vbMonday est le code retour

Lundi aura le chiffre 1, Mardi le 2 etc ....

Donc Samedi = 6 et Dimanche = 7

Dans le fichier un extrait de l'aide sur JOURSEM

A vérifier

Bonsoir Banzai,

Merci pour toutes ses explications ; j'ai un peu honte pour la msgbox... .

Tout est ok, merci

Rechercher des sujets similaires à "supprimer colonnes week end aleatoires"