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

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

  • Crew change bis.xlsm
    47.7 KB · Affichages: 30

sylvanu

XLDnaute Barbatruc
Supporter XLD
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. :rolleyes:
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

  • Copie de AdvancedFilterLE BONBON.xlsb
    33.8 KB · Affichages: 3

sebbbbb

XLDnaute Impliqué
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
 

Pounet95

XLDnaute Occasionnel
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.
 

Pounet95

XLDnaute Occasionnel
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 ?
 

sebbbbb

XLDnaute Impliqué
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 ?
 

sebbbbb

XLDnaute Impliqué
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

  • Crew change bis modifié Pounet95.xlsm
    53.9 KB · Affichages: 2

Pounet95

XLDnaute Occasionnel
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
 

Pounet95

XLDnaute Occasionnel
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
 

Pounet95

XLDnaute Occasionnel
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
 

Statistiques des forums

Discussions
311 711
Messages
2 081 786
Membres
101 817
dernier inscrit
carvajal