XL 2010 Plusieurs menu déroulants ayant une interaction sur l'affichage de colonnes

  • Initiateur de la discussion Initiateur de la discussion sebbbbb
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sebbbbb

XLDnaute Impliqué
Bonjour

dans le cadre de mon travail, je dois gérer des relèves d'équipages de navire soit lorsque le navire est a quai ('shore side') ou lorsque le navire est sur rade, par vedette ('launch boat' ou 'pilot boat')

j'ai un fichier que je suis en train de monter pour que lorsqu'au minimum une ligne (menu déroulant) de la sélection (G15:G26) & (G32:43) affiche le choix 'Pilot boat' ou 'Launch boat' alors apparaisse les colonnes H à J (qui me servent à gérer cette relève sur rade).

J'ai réussi en ce sens, même si celà fonctionne plutôt a chaque changement dans une des lignes.

Je souhaiterai que ce changement ne se fasse que lorsque l'on sélectionne réellement 'Pilot boat' ou 'Launch boat' car actuellement il suffit que je resélectionne 'Shore side' pour que les colonnes apparaissent également.

Je voudrais que l'effet inverse fonctionne également, cad que si les colonnes sont affichés et que l'utilisateur décide d'annuler son choix et que TOUTES les cellules de la sélection (G15:G26) & (G32:43) affiche seulement le choix 'Shore side', alors les colonnes H à J soient de nouveau cachés.

a noter que le fichier est protégé sans mot de passe

Pensez vous que celà soit réalisable ? j'ai avancé ce que je pouvais mais j'atteins mes limites

un grand merci par avance

je vous mets en PJ mon fichier

Seb
 

Pièces jointes

Bonjour Sebbbbb,
Pas tout compris mais en modifiant tbl_raw[#A11] par tbl_raw simplement, ça à l'air de marcher.
Même si ça n'a rien à voir avec l'insertion de la colonne N°Dossier. 🙄
VB:
      'Use advance filter ( avant tbl_raw[#A11] )
170   sh_raw.Range("tbl_raw").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=critRange, _
          copyToRange:=copyToRng, Unique:=False
Au fait que vouliez vous faire avec tbl_raw[#A11] ? Ca pointait quelle matrice ?
 

Pièces jointes

celà me semble parfait
merci infiniment !

puis je abuser de tes connaissances et te demander un autre petit service ?
si je lance le scrip pour ajouter les colonnes et qu'ensuite je fais marche arrière, mon tableau ne reprend pas sa taille d'origine (zoom 80 )
y a t il moyen de corriger celà stp ?

merci encore
tu es juste en face de l'estuaire de la Loire ?

seb
 
Bonsoir,
Affiche toutes les colonnes que tu veux voir à l'écran donc compris H, I, J.
En "jouant" avec le zoom personnalisé que tu règles de façon à tout avoir ( 120 ,130 140% ?) tu auras ton affichage maxi.
Quand les colonnes seront cachées, il y a aura moins de surface utilisée, mais à l'inverse ça reprendra la place initiale. Ca le fait bien sur mon PC
Claude

Et oui, je suis sud Loire (St-Brévin) de Mars à Octobre et nord Seine (95) le reste du temps.
 
Je ne comprends pas tout !
Que ce soit avec les colonnes cachées ou pas, le zoom est toujours le même. Il ne change pas entre 2 affichages ??? Les dimensions des lignes et colonnes sont les mêmes ! C'est la surface occupée par les données qui semble donner cet effet ?
 
En fait je ne parle pas du zoom mais de la mise a l'échelle

si tu regardes bien au départ la mise a l'échelle est de 80 ; lorsque les colonnes sont affichés alors par code vba la mise a l'échelle diminue a 72 (pour que tout rentre dans une page).
si l'on cache de nouveau les colonnes , la mise a l'echelle reste a 72 donc le tableau est plus petit et donc moins bien visible

vois tu ce que je veux dire ?
 
en fait le hic c'est que des que je fais une modif (simplement une lettre a joutée dans une cellule) celà me réduit mon fichier (mise a l'échelle passe de 80 a 72).
je voudrais que la mise a l'echelle passe donc seulement lorsque les colonnes sont affichées et que le mise a l'echelle revienne a 80 lorsque les colonnes sont cachées
merci par avance

en PJ le fichier correct a l'ouverture
 

Pièces jointes

Bonjour Sebbbbbbb
On est plus dans une problématique de taille d'écran et de résolution, je pense.
J'utilise un PC de bureau avec un écran de 23.8 " et la résolution est de 1920 x 1080.

Quand j'ouvre ton fichier et que je regarde le taux du zoom, il est à 115%.
Après affichage des colonnes, il es toujours à 115% et mon écran n'est pas plein !!

A voir si ce problème a déjà été traité donc par recherche sur le ouaib
A plus
Claude
 
Re,
Remplace le code dans l'évènement Worksheet_Change de la feuille par celui ci-dessous, et, éventuellement, celui du module1 par le code suivant.
Les valeurs 80 et 72 dépendent de la résolution en largeur et pourraient éventuellement être appliquées en fonction de l'écran utilisé.

Dis-moi si ça lz fait
Claude
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim nbOccur As Integer
    
    On Error Resume Next 'Pour passer outre l'erreur en cas d'effacement
    'Le terme Shore side ou le terme Piloat Boat est présent une fois ?
    If Range("nbboarding") = 0 And Range("nbleaving") = 0 Then
        'cacher les colonnes
        ColsHideShow False
        ActiveWindow.Zoom = 80
    Else
        'aficher les colonnes
        ColsHideShow True
        ActiveWindow.Zoom = 72
    End If
    ActiveSheet.Protect
End Sub

[/CODE]

'*******************************************************************
' Module1
Code:
Option Explicit

Sub ColsHideShow(Voir As Boolean)
    ActiveSheet.Unprotect
    If Voir = True Then
        Range("H:J").Columns.Hidden = False
    Else
        Range("H:J").Columns.Hidden = True
    End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour