OVH Cloud OVH Cloud

Comment repérer le nom de la vue active avec VBA

11 réponses
Avatar
Emile63
Bonjour a tous,
Je souhaite imprimer dans le pied de page de mon impression courante,
"la vue" qui =E9tait s=E9l=E9ctionn=E9e lors de l'impression.
Pour commencer, je n'arrive pas a la rep=E9rer..
Je suis en train de broder autour de ceci:

Sub ListeVue()
Dim MaVue As String
MaVue =3D ActiveSheet.CustomViews.Name
End Sub

Je vous remercie d'avance pour votre aide et conseils,
tr=E8s cordialement,

Emile

1 réponse

1 2
Avatar
michdenis
P.S - Répond en haut du fil... pour les lecteurs c'est très
fastidieux de devoir l'ascenseur continuellement.



"Emile63" a écrit dans le message de groupe de discussion :

On 16 ene, 13:52, "michdenis" wrote:
En supposant que le nom de tes vues et la caractéristique
que tu leur as associé est statique, ceci aurait été suffisant ...

Je te suggère de faire référence à une feuille particulière pour
tes conditions. CustomViews est une propriété du classeur
cependant, une vue est une caractéristique d'une feuille.

Que tes 7 vues appartiennent à une feuille ou à des feuilles
différentes, je te suggère fortement d'associer chacune des
caractéristiques de chaque vue à la feuille qui lui convient.

Au lieu d'utiliser Worksheets("NomDeLaFeuille", il est préférable
d'utiliser le nom de l'objet Feuille dans l'éditeur de code.

Si ta proc
'------------------------------------
Sub Aff_vues()

With Worksheets("NomDeTaFeuille")
If .Columns("IV:IV").EntireColumn.Hidden = True Then
MaVue = "SonNom1"
ElseIf .Columns("IU:IU").EntireColumn.Hidden = True Then
MaVue = "SonNom2"
ElseIf .Columns("IT:IT").EntireColumn.Hidden = True Then
MaVue = "SomNom3"
ElseIf .Columns("IS:IS").EntireColumn.Hidden = True Then
MaVue = "SomNom4"
ElseIf .Columns("IR:IR").EntireColumn.Hidden = True Then
MaVue = "SomNom5"
ElseIf .Columns("IQ:IQ").EntireColumn.Hidden = True Then
MaVue = "SomNom6"
ElseIf .Columns("IP:IP").EntireColumn.Hidden = True Then
MaVue = "SomNom7"
Else: MaVue = "Ceci n'est pas une vue personalisée"
End If
Call imprime_vue_avec_nom(MaVue)
End Sub
'------------------------------------

"Emile63" a écrit dans le message de groupe de discussion :

Bonjour a tous et merci pour vos idées et pour votre aide. ;-)
Grâce a vos idées j'ai résolu mon problème,
certes c'est pas joli-joli, et je pense que les puristes deraient
passer leurs chemin,
mais ça fonctionne comme je le souhaitais.. :-)
------------------
Sub Aff_vues()
Dim Vue As CustomView, MaVue As String
Dim tableau_Noms(1 To 10) As String
On Error Resume Next
With ActiveWorkbook
If .CustomViews.Count < 1 Then
MsgBox "Pas de vues personnalisées", _
vbExclamation, _
.Name
Exit Sub
Else
For Each Vue In .CustomViews
x = x + 1
tableau_Noms(x) = Vue.Name
Next
End If
End With
If Columns("IV:IV").EntireColumn.Hidden = True Then MaVue > tableau_Noms(1) ' Ma vue 1
If Columns("IU:IU").EntireColumn.Hidden = True Then MaVue > tableau_Noms(2) ' Ma vue 2
If Columns("IT:IT").EntireColumn.Hidden = True Then MaVue > tableau_Noms(3) ' Ma vue 3
If Columns("IS:IS").EntireColumn.Hidden = True Then MaVue > tableau_Noms(4) ' Ma vue 4
If Columns("IR:IR").EntireColumn.Hidden = True Then MaVue > tableau_Noms(5) ' Ma vue 5
If Columns("IQ:IQ").EntireColumn.Hidden = True Then MaVue > tableau_Noms(6) ' Ma vue 6
If Columns("IP:IP").EntireColumn.Hidden = True Then
MaVue = tableau_Noms
(7)
' Ma vue 7
Else: MaVue = "Ceci n'est pas une vue personalisée"
End If
Call imprime_vue_avec_nom(MaVue)
End Sub
Sub imprime_vue_avec_nom(MaVue As String)
Application.ScreenUpdating = False
ActiveSheet.PageSetup.CenterHeader = "&""Verdana""&16" & "Vue
parsonalisée: " & MaVue ' Nom de la vue
ActiveWindow.SelectedSheets.PrintPreview
Application.ScreenUpdating = True
End Sub

Cordialement,
Emile



Merci Michel pour cette précision, je vais en tenir compte et
l'appliquer. ;-)

Tres cordialement,

Emile
1 2