Gestion largeur colonne via VBA

Bonjour à tous,

J'ai travaillé sur un planning automatique. Je souhaite réduire les colonnes correspondantes à un samedi ou un dimanche automatiquement lors de la sélection de l'année.

Quelqu'un serait-il en mesure de diminuer les colonnes en question au maximum via VBA ou autre solution ? Une explication serait la bienvenue pour pouvoir reproduire la manipulation

19test.xlsm (72.14 Ko)

Merci merci !

Bonsoir Raphael, le forum,

A tester......macro à affecter à ta combobox...

Sub Zonecombinée5_QuandChangement()
  Dim I%, col%
   With ActiveSheet
    col = .Cells(6, Columns.Count).End(xlToLeft).Column
     Application.ScreenUpdating = False

     '.Cells.HorizontalAlignment = xlCenter

      For I = 5 To col
       If IsDate(.Cells(6, I)) Then
        Select Case WorksheetFunction.Weekday(CDate(.Cells(6, I)), 2)
         Case 6, 7
          .Cells(6, I).ColumnWidth = 5
         Case Else
          .Cells(6, I).ColumnWidth = 15
        End Select
       End If
      Next I
    End With
End Sub

J'ai simplement adapté la proposition qui t'avait été proposée ici,

11raphael.xlsm (72.71 Ko)

Cordialement,

bonjour,

Moi je vois aucune raison de travailler avec ces contrôles qui datent de mes robes... Donc j'ai remplacé par un bon vieux combo.

Su le fond le code reste le même (sauf qu'il me semble plus rapide de faire un reset de toutes les colonnes d'un seul coup plutôt que une par une...) mais dans l'ensemble ça me semble plus ergonomique que ces contrôles d'un autre âge...

A+

30calplan-rc.xlsm (73.91 Ko)

Bonjour tout le monde

Je n'ai pas regardé ce qu'on fait les autres mais puisque je suis là j'y mets mon grain de sel

15test-yal-v3.xlsm (71.39 Ko)

C'est super j'ai réussi à faire plus compliqué que tout le monde

Un grand merci à tous comme d'habitude.

Excellente journée à vous Messieurs.

Re-bonjour,

Galopin01, comment fonctionne le bouton de sélection d'année?

Je souhaiterais le déplacer mais il est figé.

Merci.

Bonjour à tous,

Tout d'abord merci à Galopin01 pour sa remarque judicieuse et l'optimisation du code,

@ Raphael : il te faut passer par le mode création (développeur/création) pour déplacer la combobox,

image

Cordialement,

Bonjour xorsankukai

C'est cela même...

En plus ça te donnera accès à toutes ses propriétés (bouton à coté) ce qui rend ces contrôles autrement plus intéressants...

A+

Hello,

J'ai repris la macro pour l'adapter aux modifications de colonnes et de lignes réalisées sur mon planning.

Concernant le programme :

Private Sub ComboBox1_Change()
Dim iR%, iC%, iLC%
Range("C2") = ComboBox1.Value
Application.ScreenUpdating = False
With Worksheets("Planning")
iR = 4
iC = 4
iLC = .Cells(iR, 5).End(2).Column Comment interprète t-on cette ligne?
.Range(.Cells(iR, iC), .Cells(iR, iLC)).ColumnWidth = 15
For iC = 4 To iLC Nous sommes d'accord qu'il faut adapter la valeur iC = 1er date du calendrier soit 4 dans mon cas?
If Weekday(.Cells(iR, iC), 2) > 5 Then .Cells(iR, iC).ColumnWidth = 1
Next
End With
End Sub

Autre point où j'ai besoin de vos lumières, pour la liste déroulante de la combobox sur la page planning, comment la modifier si besoin (ajout d'année ou suppression) ?

Au plaisir

iR c'est le N° de la ligne (Row) des dates

iC c'est le N° de la première colonne de date

iLC c'est le N° de la dernière colonne

par suite .Cells(iR, iC) C'est la cellule "D4" avec tes nouveaux paramètres

Pour le Combo tu regardes dans la liste des propriétés du Combo c'est la propriété ListFillRange

pour l'instant :

property

EDIT :

iLC = .Cells(iR, 5).End(2).Column calcule la dernière colonne de date à partir de la colonne 5

En bonne logique si tu as mis iC = 4 on pourrait aussi écrire :

iLC = .Cells(iR, 4).End(2).Column 'mais il n'y a pas de différence vu que de toute façon la dernière colonne sera toujours la même...

A+

Bonjour Messieurs,

Je profite de ce post pour poser d'autres question qui concernent la réalisation de bouton.

Je souhaite améliorer mon planning afin de le rendre encore plus fonctionnel.

16nouvelle-version.xlsm (117.09 Ko)

Dans cette optique, trois modifications m'importent :

1 - Que le bouton Effacer cellule puisse fonctionner à l'identique de la flèche prévue à cet effet, à savoir, récupérer l'ancienne mise en forme et le texte précédent :

En effet, après l'utilisation d'une macro, il n'est pas possible d'utiliser :

image

Mon bouton actuel permet simplement de supprimer le contenu de la cellule et la mise en forme mais nécessite de retaper l'ancien contenu.

2 - Que le bouton Nuit applique au premier clic la couleur bleu et au second clic supprime la couleur bleu => retour à l'origine (fonctionnement jour / nuit).

3 - Créer un bouton Date du jour qui me permettrait à l'activation de masquer les colonnes qui précèdent le lundi de la semaine en cours.

Des idées d'application?

Je tente mais dur dur avec mon niveau de compétence.

Merci à vous, vous êtes au top!

Hello le forum,

J'ai beau chercher, rien ne fonctionne et les informations sur le net ne m'aide pas réellement.

Personne pour un coup de main? Je dois présenter mon planning ce soir

Merci merci !

Pour le point 1, ce n'est pas possible ça reviendrai à enregistrer le classeur avant de faire quoique ce soit puis fermer le classeur sans sauvegarde pour le réouvrir aussitôt...

Pour les autres questions c'est plus complexe : A partir de quel moment considères tu que c'est le premier clic ou le second si aujourd'hui c'est le premier clic qui joue demain ce sera le second ?

Pour le point 3 la macro Activate que j'ai mis te positionne sur la semaine en cours, mais ne diminue as la largeur des colonnes on joue simplement sur l'affichage...

A+

Je vais regarder, merci pour ton aide.

Bonjour à vous,

J'ai réalisé des modifications sur mon planning mais impossible de remettre en forme la partie VBA pour l'affichage/le masquage des colonnes.

16planning-2022-v2.xlsm (127.01 Ko)

J'aimerais masquer le planning jusqu'à la semaine en cours à l'aide du bouton orange et afficher le planning annuel à l'aide du bouton bleu. Les colonnes groupées B,C et D doivent rester masquées dans les 2 cas.

Pour rappel, les colonnes correspondant à un samedi ou un dimanche sont réduites automatiques.

Merci merci pour le coup de main.

Bonjour,

Une possibilité en pièce jointe

30planning-2022-vg.xlsm (120.01 Ko)

A+

Rechercher des sujets similaires à "gestion largeur colonne via vba"