Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les
barres
outils affichées, tout en gardant la trace de celles qui étaient affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans
sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les variables.
ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les
barres
outils affichées, tout en gardant la trace de celles qui étaient affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans
sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les variables.
ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les
barres
outils affichées, tout en gardant la trace de celles qui étaient affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans
sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les variables.
ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonsor Philou,
J'ai parti l'enregistreur macro, j'ai supprimé toutes les barres d'outils
... ça marche !
Peux-tu me dire comment les faire réapparaître ? je n'ai plus de menu !
J'attends impatiemment que quelqu'un trouve une solution !
ça m'apprendra à tenter de trouver des réponses ....
Salutations!
"Philou" a écrit dans le message de news:
Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les
barres
outils affichées, tout en gardant la trace de celles qui étaient affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans
sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les variables.
ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonsor Philou,
J'ai parti l'enregistreur macro, j'ai supprimé toutes les barres d'outils
... ça marche !
Peux-tu me dire comment les faire réapparaître ? je n'ai plus de menu !
J'attends impatiemment que quelqu'un trouve une solution !
ça m'apprendra à tenter de trouver des réponses ....
Salutations!
"Philou" <philippe.blancon@free.fr> a écrit dans le message de news:
eedJttNzEHA.3976@TK2MSFTNGP09.phx.gbl...
Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les
barres
outils affichées, tout en gardant la trace de celles qui étaient affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans
sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les variables.
ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonsor Philou,
J'ai parti l'enregistreur macro, j'ai supprimé toutes les barres d'outils
... ça marche !
Peux-tu me dire comment les faire réapparaître ? je n'ai plus de menu !
J'attends impatiemment que quelqu'un trouve une solution !
ça m'apprendra à tenter de trouver des réponses ....
Salutations!
"Philou" a écrit dans le message de news:
Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les
barres
outils affichées, tout en gardant la trace de celles qui étaient affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans
sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les variables.
ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonsoir :
Voici le code complet utilisé pour une de mes applications : (telle
quelle,
donc à adapter en fonction de ton environnement, je n'ai pas pris le temps
de faire le ménage....)
Auto_Open à l'ouverture du classeur, plus bas, tu trouvera la macro de
restitution....
Option Explicit
Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLongA Lib "User32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "User32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
'Variables globales
Global fQuitter As Boolean
Global SourceModif As String
Global oSheet As Worksheet
'Constantes globales
Global Const APP_HOTLINE = "0 810 174 174"
Global Const APP_MAX_MEMBERS = 5000
Global Const APP_HOTLINEemail ""
Global Const APP_NAME = "PNP Offre Personnalisée V5.16"
Global Const APP_Version = "G5R0C13"
Global Const APP_PASSWORD = "H79bqZs3"
Global Const APP_TEMPLATE = "PNP Offre personnalisée V2.0.dot"
Global Const APP_MAX_SITES = 500
Public NvlleHeure As Integer
Public NvlleMinute As Integer
Public NvlleSeconde As Integer
Public waitTime As Variant
Public Sub Auto_Open()
ActiveWorkbook.Unprotect (APP_PASSWORD)
Worksheets("Donnees").Range("Sortie").Value = ""
With Application
'Demande de patienter
.StatusBar = "Ouverture en cours... Patientez SVP " &
ActiveSheet.Name
'Désactive la mise à jour de l'écran
.ScreenUpdating = False
'Met le nom de l'application dans la barre de titre
.Caption = APP_NAME
'Barre de formule
.DisplayFormulaBar = False
End With
'Masque l'environnement standard
'Variables de la procédure
Dim i As Integer
Dim j As Integer
'---------------------------------------------------------------------------
'Cette procédure permet de désactiver les raccourcis clavier les plus
souvent
'utilisés par l'utilisateur averti ou... maladroit !
With Application
.OnKey "^{F4}", "" 'Fermer
.OnKey "%{F4}", "" 'Quitter
.OnKey "%{F8}", "" 'Macros
.OnKey "%{F11}", "" 'Visual Basic Editor
.OnKey "%{F12}", "" 'Enregistrer sous...
.OnKey "^p", "" 'Imprimer
.OnKey "^s", "" 'Sauvegarder
.OnKey "^x", "" 'Couper
.OnKey "^c", "" 'Copier
.OnKey "^v", "" 'Coller
.OnKey "+{DEL}", "" 'Couper
.OnKey "+{INSERT}", "" 'Coller
ActiverBouton 21, False 'Couper
ActiverBouton 19, False 'Copier
ActiverBouton 22, False 'Coller
'ActiverBouton 755, False 'Collage spécial
.CellDragAndDrop = False
End With
'---------------------------------------------------------------------------
'Cette procédure permet de masquer toutes les barres d'outils visibles
dans
'l'interface d'Excel active. Les barres masquées sont déclarées dans une
'colonne de la feuille "Groupe" et seront affichées en sortant de
l'application.
'Active la feuille "Groupe"
ActiveWorkbook.Worksheets("Donnees").Visible = True
ActiveWorkbook.Worksheets("Donnees").Activate
Range("Barres").Select
ActiveSheet.Unprotect (APP_PASSWORD)
Range("PBarres").ClearContents
Range("Modif").Value = "SansModif"
'Masque les barres visibles et inscrit leur nom en colonne "M"
j = 0
For i = 1 To Application.CommandBars.Count
If Application.CommandBars(i).Visible And _
Application.CommandBars(i).Name <> APP_NAME And _
Left(Application.CommandBars(i).Name, 15) <> "PNP Offre Perso" Then
Application.CommandBars(i).Enabled = False
ActiveCell.Offset(i, 0).Value = Application.CommandBars(i).Name
ActiveCell.Offset(i, 1).Value = ActiveCell.Offset(i, 0).Value
'Backup
End If
Next i
Range("A1").Select
'Déclare les variables de la procédure
On Error Resume Next
Dim oBar As CommandBar
Dim oPop As CommandBarPopup
Dim oBtn As CommandBarButton
'Définit la barre de menus
Set oBar = Application.CommandBars.Add(APP_NAME, 1) 'msoBarTop
'Menu "Fichier"
Set oPop = oBar.Controls.Add(msoControlPopup)
With oPop
.Caption = "&Fichier"
'-- Sous-menu "Enregistrer"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Enregistrer"
oBtn.OnAction = "MnuFileSave"
'-- Sous-menu "Enregistrer sous"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "En®istrer sous..."
oBtn.OnAction = "MnuFileSaveAs"
'-- Sous-menu "Contrôler la saisie"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Contrôler la saisie"
oBtn.OnAction = "ControlFinal"
oBtn.BeginGroup = True 'Séparateur
'-- Sous-menu "Imprimer tout"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Imprimer le bon de commande"
oBtn.OnAction = "MnuFilePrintAll"
oBtn.BeginGroup = True 'Séparateur
'-- Sous-menu "Imprimer tout"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Imprimer un onglet"
oBtn.OnAction = "MnuFilePrintTAB"
'-- Sous-menu "Imprimer Annuaire"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Imprimer l'&annuaire entreprise"
oBtn.OnAction = "ImprimeAnnuaire"
'-- Sous-menu "Com Perso"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Bon de Commande Com Perso"
oBtn.OnAction = "RecupListeComPerso"
oBtn.BeginGroup = True 'Séparateur
'-- Sous-menu "Importer"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "Im&porter des données"
oBtn.OnAction = "Consolider"
oBtn.BeginGroup = True 'Séparateur
'-- Sous-menu "Quitter"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Quitter"
oBtn.OnAction = "MnuFileQuit"
oBtn.BeginGroup = True 'Séparateur
End With
'Menu "?"
Set oPop = oBar.Controls.Add(msoControlPopup)
With oPop
.Caption = "&?"
'-- Sous-menu "A propos de"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&A propos de " & APP_NAME
oBtn.OnAction = "MnuHelpAbout"
End With
'Affiche la barre de menus
With oBar
.Visible = True
.Protection = _
msoBarNoChangeDock + msoBarNoChangeVisible + msoBarNoCustomize + _
msoBarNoMove + msoBarNoResize
End With
' ActiveWindow.DisplayWorkbookTabs = False 'Uniquement pour l'offre
classique
ActiveWindow.DisplayWorkbookTabs = True
Worksheets("Groupe").Select
ActiveSheet.Unprotect (APP_PASSWORD)
ActiveWindow.DisplayHeadings = False
ActiveWindow.WindowState = xlMaximized
Application.CommandBars("Toolbar List").Enabled = False
Call AjusterSelection("A:O", "RaisonSoc")
Application.ScreenUpdating = True
Worksheets("Groupe").Select
ActiveSheet.Unprotect (APP_PASSWORD)
Range("IREIMF").Select
Range("RaisonSoc").Select
ProtectionTotale
ActiveSheet.Protect (APP_PASSWORD)
ActiveSheet.EnableSelection = 1
'============ > Dim hwnd As Long
hwnd = FindWindowA(vbNullString, Application.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
'========== >
Application.EnableEvents = True
'Réactive affichage standard de la barre d'état
Application.StatusBar = False
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet de quitter l'application. L'utilisateur est inform
é
au
'préalable.
Public Sub QuitterAppli()
Dim MonClasseur As String
MonClasseur = ActiveWorkbook.Name
'Variables de la procédure
Dim iRep As Integer
Dim sFile As String
Dim MaReponse As Boolean
Dim MyRep As Integer
'Variables utilisées pour planifier une temporisation
sFile = ActiveWorkbook.Path & _
IIf(Right(ActiveWorkbook.Path, 1) = "", "", "") & ActiveWorkbook.Name
'Demande confirmation
iRep = MsgBox( _
"Voulez-vous vraiment quitter l'application '" & APP_NAME & "' ?", _
vbQuestion + vbYesNo, APP_NAME)
If iRep = vbYes Then
If Worksheets("Donnees").Range("Controles").Value <> "Vrai" Then
MyRep = MsgBox( _
"Les contrôles n'ont pas été effectués !!!" & Chr(10) & Chr(10) &
_
"Vous ne pourrez pas enregistrer votre travail !!!" & Chr(10) &
Chr(10) & _
"Voulez-vous lancer le contrôle maintenant ?", _
vbQuestion + vbYesNo, APP_NAME)
If MyRep = vbYes Then
ControlFinal
Exit Sub
Else
MyRep = MsgBox( _
"Voulez-vous vraiment quitter l'application '" & APP_NAME & "'
?"
& _
Chr(10) & "Sans enregistrer votre travail ???", _
vbQuestion + vbYesNo, APP_NAME)
If MyRep = vbYes Then
RestitutionEnvironnement
Worksheets("Donnees").Range("Sortie").Value = "Sortie"
ActiveWorkbook.Close False
Else
Exit Sub
End If
End If
Else
End If
RestitutionEnvironnement
Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now())
+
3)
Worksheets("Donnees").Range("Sortie").Value = "Sortie"
'Les cases fermetures
If ActiveWorkbook.Saved Or Worksheets("Donnees").Range("Modif") > "SansModif" Then
'-- Pas de sauvegarde
ActiveWorkbook.Close False
Else
'-- Propose de sauvegarder ou non
Dim i As Integer
i = 0
Do
MonClasseur = ActiveWorkbook.Name
MaReponse = True
Worksheets("Donnees").Range("Sortie").Value = "Sortie"
i = i + 1
On Error GoTo PasAnnuler
'======================================== > Application.ScreenUpdating = True
Worksheets("Groupe").Select
Range("RaisonSoc").Select
Application.Wait TimeSerial(Hour(Now()), Minute(Now()),
Second(Now()) + 3)
MyRep = MsgBox("Voulez-vous enregistrer les modifications
apportées
à '" & _
sFile & "' ?", vbQuestion + vbYesNo, APP_NAME)
If MyRep = vbYes Then
Call MnuFileSave
ActiveWorkbook.Close False
Else
ActiveWorkbook.Close False
End If
'======================= > Loop Until MaReponse
End If
End If
Exit Sub
PasAnnuler:
MonClasseur = InputBox("Saisissez un nouveau nom pour cette offre", _
APP_NAME, Range("RaisonSoc").Value & ".xls")
MaReponse = False
Resume
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet de réactiver les raccourcis clavier les plus
souvent
'utilisés par l'utilisateur averti ou... maladroit !
Sub ActiverClavier()
Application.ScreenUpdating = False
With Application
.OnKey "^{F4}" 'Fermer
.OnKey "%{F4}" 'Quitter
.OnKey "%{F8}" 'Macros
.OnKey "%{F11}" 'Visual Basic Editor
.OnKey "%{F12}" 'Enregistrer sous...
.OnKey "^p" 'Imprimer
.OnKey "^s" 'Sauvegarder
.OnKey "^x" 'Couper
.OnKey "^c" 'Copier
.OnKey "^v" 'Coller
.OnKey "+{DEL}" 'Couper
.OnKey "+{INSERT}" 'Coller
ActiverBouton 21, True 'Couper
ActiverBouton 19, True 'Copier
ActiverBouton 22, True 'Coller
ActiverBouton 755, True 'Collage spécial
.CellDragAndDrop = True
End With
End Sub
'---------------------------------------------------------------------------
Public Sub SupprimerMenu()
Application.ScreenUpdating = False
On Error Resume Next
Application.CommandBars(APP_NAME).Delete
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet d'afficher toutes les barres d'outils qui étaient
'visibles dans l'interface d'Excel active. Les barres masquées ont été
'déclarées dans une colonne de la feuille "Groupe".
Public Sub AfficherBarres()
Application.ScreenUpdating = False
'Variables de la procédure
Dim i As Integer
Dim oSheet As Worksheet
Dim oCell As Excel.Range
Set oSheet = ActiveWorkbook.Worksheets("Donnees")
If oSheet.Range("Barres").Value <> "" Then
Set oCell = oSheet.Range("Barres")
Else
Set oCell = oSheet.Range("Barres").Offset(0, 1) 'Colonne backup
End If
Dim MaCellule As Range
'Affiche les barres dont le nom est inscrit en colonne "M" ou "N"
For Each MaCellule In Range("PBarres")
If MaCellule.Value <> "" Then
On Error Resume Next
Application.CommandBars(oCell.Offset(i, 0).Value).Enabled = True
Application.CommandBars(oCell.Offset(i, 0).Value).Visible = True
i = i + 1
On Error GoTo 0
End If
Next
Range("C13").Select
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet d'afficher les barres d'outils standards.
Public Sub AfficherBarres2()
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To 4
If i <> 2 Then 'BO Graphique
Application.CommandBars(i).Enabled = True
Application.CommandBars(i).Visible = True
End If
Next i
Range("C13").Select
End Sub
'---------------------------------------------------------------------------
'Cette fonction renvoie VRAI si l'uitilisateur répond OUI à la question
'"Voulez-vous sauvegarder le fichier ?"
Public Function SauvegarderClasseur(ByVal sFile As String) As Boolean
Application.StatusBar = "Sauvegarder classeur"
Dim iRep As Integer
iRep = MsgBox("Voulez-vous enregistrer les modifications apportées à '"
&
_
sFile & "' ?", vbQuestion + vbYesNo, APP_NAME)
If iRep = vbYes Then
SauvegarderClasseur = True
Else
SauvegarderClasseur = False
End If
End Function
'---------------------------------------------------------------------------
'Cette procédure associée aux routines "ActiverClavier" et
"DesactiverClavier",
'permet de désactiver les fonctions Copier/Coller au niveau des barres de
menus
'et des menus contextuels.
Sub ActiverBouton(ByVal iId As Integer, ByVal fActif As Boolean)
Application.ScreenUpdating = False
Dim oBar As CommandBar
Dim oCtrl As CommandBarControl
For Each oBar In Application.CommandBars
Set oCtrl = oBar.FindControl(Id:=iId, Recursive:=True)
On Error Resume Next
If Not oCtrl Is Nothing Then
oCtrl.Enabled = fActif
End If
Next
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet d'ajuster la plage de cellules passée en paramètre
de
'sorte qu'elle occupe toute la fenêtre.
'
'sPlage1: Plage de colonnes pour le zoom (Exemple: "A:E")
'sPlage2: Cellule à atteindre en fin de traitement (Exemple: "E5")
Public Sub AjusterSelection(ByVal sPlage1 As String, ByVal sPlage2 As
String)
Application.EnableEvents = False
Application.ScreenUpdating = True
ActiveSheet.Unprotect (APP_PASSWORD)
Columns(sPlage1).Select
ActiveWindow.Zoom = True
Range(sPlage2).Select
Range(sPlage2).Select
ActiveSheet.Protect (APP_PASSWORD)
ActiveSheet.EnableSelection = 1
Application.EnableEvents = True
End Sub
Sub RestitutionEnvironnement()
Application.ScreenUpdating = True
Dim hwnd As Long
Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now())
+
1)
hwnd = FindWindowA(vbNullString, Application.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000
Application.ScreenUpdating = False
Application.WindowState = xlMinimized
Application.WindowState = xlMaximized
'Ne rétablir l'environnement général que si d'autres offres ne sont
pas
ouvertes
Dim OffreOuverte As Boolean
OffreOuverte = False
Dim MonClasseur As Workbook
Dim MaFeuille As Worksheet
Dim EstErreur As Boolean
EstErreur = False
'Recherche, parmi les autres classeurs ouverts,
's'il y en a au moins 1 qui correspond à une offre classique ou
personnalisée
If Workbooks.Count = 0 Then
GoTo Restitution
Else
For Each MonClasseur In Workbooks
If MonClasseur.Name <> ActiveWorkbook.Name Then
MonClasseur.Protect (APP_PASSWORD)
'Ce peut être une offre personnalisé ou classique, ou Mobimalin
'Test si offre classique V3
On Error GoTo PasUneOffre
OffreOuverte = True
If MonClasseur.Worksheets(1).Name = "Groupe" And _
MonClasseur.Worksheets(2).Name = "Modèle_impression" And _
Left(MonClasseur.Worksheets(3).Name, 17) = "Flotte Orange VPN"
And _
MonClasseur.Worksheets(4).Name = "Intermédiaire" Then
'Une offre est encore ouverte,
'On ne remet pas l'environnement à jour
If OffreOuverte = True Then
OffreOuverte = False
Exit Sub
End If
End If
'Test si offre personnalisée V3 ou V4
If MonClasseur.Worksheets(1).Name = "Groupe" And _
MonClasseur.Worksheets(2).Name = "Externe" And _
MonClasseur.Worksheets(3).Name = "Fixe" And _
MonClasseur.Worksheets(4).Name = "Mobile" Then
'Une offre est encore ouverte,
'On ne remet pas l'environnement à jour
If OffreOuverte = True Then
OffreOuverte = False
Exit Sub
End If
End If
'Test si Perso V5
If MonClasseur.Worksheets(1).Name = "Donnees" And _
MonClasseur.Worksheets(2).Name = "Site" Then
'Une offre est encore ouverte,
'On ne remet pas l'environnement à jour
If OffreOuverte = True Then
OffreOuverte = False
Exit Sub
End If
End If
End If
Next
End If
Restitution:
With Application
'Désactive la mise à jour de l'écran
.ScreenUpdating = False
'Rétablit le nom de l'application dans la barre de titre
.Caption = ""
.DisplayFormulaBar = True
End With
'Affiche l'environnement standard
'Réactive les raccourcis clavier
Call ActiverClavier
'Supprime le menu de l'application
Call SupprimerMenu
'Affiche les barres d'outils
Call AfficherBarres
Call AfficherBarres2
Application.CommandBars("Toolbar List").Enabled = True
'Ferme le classeur en demandant s'il faut le sauvegarder
fQuitter = True
Exit Sub
PasUneOffre:
OffreOuverte = False
Resume Next
End Sub
Sub ProtectionTotale()
Application.EnableEvents = False
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect (APP_PASSWORD)
For Each oSheet In Worksheets
If oSheet.Name <> "Groupe" And Left(oSheet.Name, 2) <> "G_" _
And Left(oSheet.Name, 2) <> "N_" And Left(oSheet.Name, 2) <> "E_"
Then
oSheet.Visible = False
End If
oSheet.Protect (APP_PASSWORD)
oSheet.EnableSelection = 1
Next
ActiveWorkbook.Protect (APP_PASSWORD)
Application.ScreenUpdating = True
Application.SendKeys "{Down}"
Application.EnableEvents = True
End Sub
Sub DeprotegerTout()
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect (APP_PASSWORD)
For Each oSheet In Worksheets
oSheet.Visible = xlSheetVisible
oSheet.Unprotect (APP_PASSWORD)
Next
Application.EnableEvents = False
End Sub
Sub AfficheBarreDessin()
Application.CommandBars("Drawing").Enabled = True
Application.CommandBars("Drawing").Visible = True
End Sub
Sub Nom()
'ActiveCell.Name = "Nomade!InfoGeneSM"
Dim iNbCol As Integer
iNbCol = 3
Dim DecalRow(1 To 4) As Integer
ReDim decarow(1 To 5) As Integer
DecalRow(1) = 2
End Sub
Sub NommerCelllule()
i = 8
ActiveSheet.Unprotect (APP_PASSWORD)
Dim j As Integer
For j = 1 To 8
Cells(ActiveCell.Row, Range("LBl" & j).Column).Name = ActiveSheet.Name &
"!ListeN" & j + i
Next
End Sub
Sub SpecialEvent()
Application.EnableEvents = True
ActiveSheet.Protect (APP_PASSWORD)
ActiveSheet.EnableSelection = 1
End Sub
Sub jojo()
'Application.EnableEvents = True
Application.CommandBars(1).Enabled = True
Application.CommandBars(1).Visible = True
End Sub
Bon courage ;-)
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
"Philou" a écrit dans le message de news:Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les
barres
outils affichées, tout en gardant la trace de celles qui étaient
affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans
sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les
variables.
ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonsoir :
Voici le code complet utilisé pour une de mes applications : (telle
quelle,
donc à adapter en fonction de ton environnement, je n'ai pas pris le temps
de faire le ménage....)
Auto_Open à l'ouverture du classeur, plus bas, tu trouvera la macro de
restitution....
Option Explicit
Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLongA Lib "User32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "User32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
'Variables globales
Global fQuitter As Boolean
Global SourceModif As String
Global oSheet As Worksheet
'Constantes globales
Global Const APP_HOTLINE = "0 810 174 174"
Global Const APP_MAX_MEMBERS = 5000
Global Const APP_HOTLINEemail "of-dme.bondecommande-vpn@orangefrance.com"
Global Const APP_NAME = "PNP Offre Personnalisée V5.16"
Global Const APP_Version = "G5R0C13"
Global Const APP_PASSWORD = "H79bqZs3"
Global Const APP_TEMPLATE = "PNP Offre personnalisée V2.0.dot"
Global Const APP_MAX_SITES = 500
Public NvlleHeure As Integer
Public NvlleMinute As Integer
Public NvlleSeconde As Integer
Public waitTime As Variant
Public Sub Auto_Open()
ActiveWorkbook.Unprotect (APP_PASSWORD)
Worksheets("Donnees").Range("Sortie").Value = ""
With Application
'Demande de patienter
.StatusBar = "Ouverture en cours... Patientez SVP " &
ActiveSheet.Name
'Désactive la mise à jour de l'écran
.ScreenUpdating = False
'Met le nom de l'application dans la barre de titre
.Caption = APP_NAME
'Barre de formule
.DisplayFormulaBar = False
End With
'Masque l'environnement standard
'Variables de la procédure
Dim i As Integer
Dim j As Integer
'---------------------------------------------------------------------------
'Cette procédure permet de désactiver les raccourcis clavier les plus
souvent
'utilisés par l'utilisateur averti ou... maladroit !
With Application
.OnKey "^{F4}", "" 'Fermer
.OnKey "%{F4}", "" 'Quitter
.OnKey "%{F8}", "" 'Macros
.OnKey "%{F11}", "" 'Visual Basic Editor
.OnKey "%{F12}", "" 'Enregistrer sous...
.OnKey "^p", "" 'Imprimer
.OnKey "^s", "" 'Sauvegarder
.OnKey "^x", "" 'Couper
.OnKey "^c", "" 'Copier
.OnKey "^v", "" 'Coller
.OnKey "+{DEL}", "" 'Couper
.OnKey "+{INSERT}", "" 'Coller
ActiverBouton 21, False 'Couper
ActiverBouton 19, False 'Copier
ActiverBouton 22, False 'Coller
'ActiverBouton 755, False 'Collage spécial
.CellDragAndDrop = False
End With
'---------------------------------------------------------------------------
'Cette procédure permet de masquer toutes les barres d'outils visibles
dans
'l'interface d'Excel active. Les barres masquées sont déclarées dans une
'colonne de la feuille "Groupe" et seront affichées en sortant de
l'application.
'Active la feuille "Groupe"
ActiveWorkbook.Worksheets("Donnees").Visible = True
ActiveWorkbook.Worksheets("Donnees").Activate
Range("Barres").Select
ActiveSheet.Unprotect (APP_PASSWORD)
Range("PBarres").ClearContents
Range("Modif").Value = "SansModif"
'Masque les barres visibles et inscrit leur nom en colonne "M"
j = 0
For i = 1 To Application.CommandBars.Count
If Application.CommandBars(i).Visible And _
Application.CommandBars(i).Name <> APP_NAME And _
Left(Application.CommandBars(i).Name, 15) <> "PNP Offre Perso" Then
Application.CommandBars(i).Enabled = False
ActiveCell.Offset(i, 0).Value = Application.CommandBars(i).Name
ActiveCell.Offset(i, 1).Value = ActiveCell.Offset(i, 0).Value
'Backup
End If
Next i
Range("A1").Select
'Déclare les variables de la procédure
On Error Resume Next
Dim oBar As CommandBar
Dim oPop As CommandBarPopup
Dim oBtn As CommandBarButton
'Définit la barre de menus
Set oBar = Application.CommandBars.Add(APP_NAME, 1) 'msoBarTop
'Menu "Fichier"
Set oPop = oBar.Controls.Add(msoControlPopup)
With oPop
.Caption = "&Fichier"
'-- Sous-menu "Enregistrer"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Enregistrer"
oBtn.OnAction = "MnuFileSave"
'-- Sous-menu "Enregistrer sous"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "En®istrer sous..."
oBtn.OnAction = "MnuFileSaveAs"
'-- Sous-menu "Contrôler la saisie"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Contrôler la saisie"
oBtn.OnAction = "ControlFinal"
oBtn.BeginGroup = True 'Séparateur
'-- Sous-menu "Imprimer tout"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Imprimer le bon de commande"
oBtn.OnAction = "MnuFilePrintAll"
oBtn.BeginGroup = True 'Séparateur
'-- Sous-menu "Imprimer tout"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Imprimer un onglet"
oBtn.OnAction = "MnuFilePrintTAB"
'-- Sous-menu "Imprimer Annuaire"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Imprimer l'&annuaire entreprise"
oBtn.OnAction = "ImprimeAnnuaire"
'-- Sous-menu "Com Perso"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Bon de Commande Com Perso"
oBtn.OnAction = "RecupListeComPerso"
oBtn.BeginGroup = True 'Séparateur
'-- Sous-menu "Importer"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "Im&porter des données"
oBtn.OnAction = "Consolider"
oBtn.BeginGroup = True 'Séparateur
'-- Sous-menu "Quitter"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Quitter"
oBtn.OnAction = "MnuFileQuit"
oBtn.BeginGroup = True 'Séparateur
End With
'Menu "?"
Set oPop = oBar.Controls.Add(msoControlPopup)
With oPop
.Caption = "&?"
'-- Sous-menu "A propos de"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&A propos de " & APP_NAME
oBtn.OnAction = "MnuHelpAbout"
End With
'Affiche la barre de menus
With oBar
.Visible = True
.Protection = _
msoBarNoChangeDock + msoBarNoChangeVisible + msoBarNoCustomize + _
msoBarNoMove + msoBarNoResize
End With
' ActiveWindow.DisplayWorkbookTabs = False 'Uniquement pour l'offre
classique
ActiveWindow.DisplayWorkbookTabs = True
Worksheets("Groupe").Select
ActiveSheet.Unprotect (APP_PASSWORD)
ActiveWindow.DisplayHeadings = False
ActiveWindow.WindowState = xlMaximized
Application.CommandBars("Toolbar List").Enabled = False
Call AjusterSelection("A:O", "RaisonSoc")
Application.ScreenUpdating = True
Worksheets("Groupe").Select
ActiveSheet.Unprotect (APP_PASSWORD)
Range("IREIMF").Select
Range("RaisonSoc").Select
ProtectionTotale
ActiveSheet.Protect (APP_PASSWORD)
ActiveSheet.EnableSelection = 1
'============ > Dim hwnd As Long
hwnd = FindWindowA(vbNullString, Application.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
'========== >
Application.EnableEvents = True
'Réactive affichage standard de la barre d'état
Application.StatusBar = False
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet de quitter l'application. L'utilisateur est inform
é
au
'préalable.
Public Sub QuitterAppli()
Dim MonClasseur As String
MonClasseur = ActiveWorkbook.Name
'Variables de la procédure
Dim iRep As Integer
Dim sFile As String
Dim MaReponse As Boolean
Dim MyRep As Integer
'Variables utilisées pour planifier une temporisation
sFile = ActiveWorkbook.Path & _
IIf(Right(ActiveWorkbook.Path, 1) = "", "", "") & ActiveWorkbook.Name
'Demande confirmation
iRep = MsgBox( _
"Voulez-vous vraiment quitter l'application '" & APP_NAME & "' ?", _
vbQuestion + vbYesNo, APP_NAME)
If iRep = vbYes Then
If Worksheets("Donnees").Range("Controles").Value <> "Vrai" Then
MyRep = MsgBox( _
"Les contrôles n'ont pas été effectués !!!" & Chr(10) & Chr(10) &
_
"Vous ne pourrez pas enregistrer votre travail !!!" & Chr(10) &
Chr(10) & _
"Voulez-vous lancer le contrôle maintenant ?", _
vbQuestion + vbYesNo, APP_NAME)
If MyRep = vbYes Then
ControlFinal
Exit Sub
Else
MyRep = MsgBox( _
"Voulez-vous vraiment quitter l'application '" & APP_NAME & "'
?"
& _
Chr(10) & "Sans enregistrer votre travail ???", _
vbQuestion + vbYesNo, APP_NAME)
If MyRep = vbYes Then
RestitutionEnvironnement
Worksheets("Donnees").Range("Sortie").Value = "Sortie"
ActiveWorkbook.Close False
Else
Exit Sub
End If
End If
Else
End If
RestitutionEnvironnement
Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now())
+
3)
Worksheets("Donnees").Range("Sortie").Value = "Sortie"
'Les cases fermetures
If ActiveWorkbook.Saved Or Worksheets("Donnees").Range("Modif") > "SansModif" Then
'-- Pas de sauvegarde
ActiveWorkbook.Close False
Else
'-- Propose de sauvegarder ou non
Dim i As Integer
i = 0
Do
MonClasseur = ActiveWorkbook.Name
MaReponse = True
Worksheets("Donnees").Range("Sortie").Value = "Sortie"
i = i + 1
On Error GoTo PasAnnuler
'======================================== > Application.ScreenUpdating = True
Worksheets("Groupe").Select
Range("RaisonSoc").Select
Application.Wait TimeSerial(Hour(Now()), Minute(Now()),
Second(Now()) + 3)
MyRep = MsgBox("Voulez-vous enregistrer les modifications
apportées
à '" & _
sFile & "' ?", vbQuestion + vbYesNo, APP_NAME)
If MyRep = vbYes Then
Call MnuFileSave
ActiveWorkbook.Close False
Else
ActiveWorkbook.Close False
End If
'======================= > Loop Until MaReponse
End If
End If
Exit Sub
PasAnnuler:
MonClasseur = InputBox("Saisissez un nouveau nom pour cette offre", _
APP_NAME, Range("RaisonSoc").Value & ".xls")
MaReponse = False
Resume
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet de réactiver les raccourcis clavier les plus
souvent
'utilisés par l'utilisateur averti ou... maladroit !
Sub ActiverClavier()
Application.ScreenUpdating = False
With Application
.OnKey "^{F4}" 'Fermer
.OnKey "%{F4}" 'Quitter
.OnKey "%{F8}" 'Macros
.OnKey "%{F11}" 'Visual Basic Editor
.OnKey "%{F12}" 'Enregistrer sous...
.OnKey "^p" 'Imprimer
.OnKey "^s" 'Sauvegarder
.OnKey "^x" 'Couper
.OnKey "^c" 'Copier
.OnKey "^v" 'Coller
.OnKey "+{DEL}" 'Couper
.OnKey "+{INSERT}" 'Coller
ActiverBouton 21, True 'Couper
ActiverBouton 19, True 'Copier
ActiverBouton 22, True 'Coller
ActiverBouton 755, True 'Collage spécial
.CellDragAndDrop = True
End With
End Sub
'---------------------------------------------------------------------------
Public Sub SupprimerMenu()
Application.ScreenUpdating = False
On Error Resume Next
Application.CommandBars(APP_NAME).Delete
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet d'afficher toutes les barres d'outils qui étaient
'visibles dans l'interface d'Excel active. Les barres masquées ont été
'déclarées dans une colonne de la feuille "Groupe".
Public Sub AfficherBarres()
Application.ScreenUpdating = False
'Variables de la procédure
Dim i As Integer
Dim oSheet As Worksheet
Dim oCell As Excel.Range
Set oSheet = ActiveWorkbook.Worksheets("Donnees")
If oSheet.Range("Barres").Value <> "" Then
Set oCell = oSheet.Range("Barres")
Else
Set oCell = oSheet.Range("Barres").Offset(0, 1) 'Colonne backup
End If
Dim MaCellule As Range
'Affiche les barres dont le nom est inscrit en colonne "M" ou "N"
For Each MaCellule In Range("PBarres")
If MaCellule.Value <> "" Then
On Error Resume Next
Application.CommandBars(oCell.Offset(i, 0).Value).Enabled = True
Application.CommandBars(oCell.Offset(i, 0).Value).Visible = True
i = i + 1
On Error GoTo 0
End If
Next
Range("C13").Select
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet d'afficher les barres d'outils standards.
Public Sub AfficherBarres2()
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To 4
If i <> 2 Then 'BO Graphique
Application.CommandBars(i).Enabled = True
Application.CommandBars(i).Visible = True
End If
Next i
Range("C13").Select
End Sub
'---------------------------------------------------------------------------
'Cette fonction renvoie VRAI si l'uitilisateur répond OUI à la question
'"Voulez-vous sauvegarder le fichier ?"
Public Function SauvegarderClasseur(ByVal sFile As String) As Boolean
Application.StatusBar = "Sauvegarder classeur"
Dim iRep As Integer
iRep = MsgBox("Voulez-vous enregistrer les modifications apportées à '"
&
_
sFile & "' ?", vbQuestion + vbYesNo, APP_NAME)
If iRep = vbYes Then
SauvegarderClasseur = True
Else
SauvegarderClasseur = False
End If
End Function
'---------------------------------------------------------------------------
'Cette procédure associée aux routines "ActiverClavier" et
"DesactiverClavier",
'permet de désactiver les fonctions Copier/Coller au niveau des barres de
menus
'et des menus contextuels.
Sub ActiverBouton(ByVal iId As Integer, ByVal fActif As Boolean)
Application.ScreenUpdating = False
Dim oBar As CommandBar
Dim oCtrl As CommandBarControl
For Each oBar In Application.CommandBars
Set oCtrl = oBar.FindControl(Id:=iId, Recursive:=True)
On Error Resume Next
If Not oCtrl Is Nothing Then
oCtrl.Enabled = fActif
End If
Next
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet d'ajuster la plage de cellules passée en paramètre
de
'sorte qu'elle occupe toute la fenêtre.
'
'sPlage1: Plage de colonnes pour le zoom (Exemple: "A:E")
'sPlage2: Cellule à atteindre en fin de traitement (Exemple: "E5")
Public Sub AjusterSelection(ByVal sPlage1 As String, ByVal sPlage2 As
String)
Application.EnableEvents = False
Application.ScreenUpdating = True
ActiveSheet.Unprotect (APP_PASSWORD)
Columns(sPlage1).Select
ActiveWindow.Zoom = True
Range(sPlage2).Select
Range(sPlage2).Select
ActiveSheet.Protect (APP_PASSWORD)
ActiveSheet.EnableSelection = 1
Application.EnableEvents = True
End Sub
Sub RestitutionEnvironnement()
Application.ScreenUpdating = True
Dim hwnd As Long
Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now())
+
1)
hwnd = FindWindowA(vbNullString, Application.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000
Application.ScreenUpdating = False
Application.WindowState = xlMinimized
Application.WindowState = xlMaximized
'Ne rétablir l'environnement général que si d'autres offres ne sont
pas
ouvertes
Dim OffreOuverte As Boolean
OffreOuverte = False
Dim MonClasseur As Workbook
Dim MaFeuille As Worksheet
Dim EstErreur As Boolean
EstErreur = False
'Recherche, parmi les autres classeurs ouverts,
's'il y en a au moins 1 qui correspond à une offre classique ou
personnalisée
If Workbooks.Count = 0 Then
GoTo Restitution
Else
For Each MonClasseur In Workbooks
If MonClasseur.Name <> ActiveWorkbook.Name Then
MonClasseur.Protect (APP_PASSWORD)
'Ce peut être une offre personnalisé ou classique, ou Mobimalin
'Test si offre classique V3
On Error GoTo PasUneOffre
OffreOuverte = True
If MonClasseur.Worksheets(1).Name = "Groupe" And _
MonClasseur.Worksheets(2).Name = "Modèle_impression" And _
Left(MonClasseur.Worksheets(3).Name, 17) = "Flotte Orange VPN"
And _
MonClasseur.Worksheets(4).Name = "Intermédiaire" Then
'Une offre est encore ouverte,
'On ne remet pas l'environnement à jour
If OffreOuverte = True Then
OffreOuverte = False
Exit Sub
End If
End If
'Test si offre personnalisée V3 ou V4
If MonClasseur.Worksheets(1).Name = "Groupe" And _
MonClasseur.Worksheets(2).Name = "Externe" And _
MonClasseur.Worksheets(3).Name = "Fixe" And _
MonClasseur.Worksheets(4).Name = "Mobile" Then
'Une offre est encore ouverte,
'On ne remet pas l'environnement à jour
If OffreOuverte = True Then
OffreOuverte = False
Exit Sub
End If
End If
'Test si Perso V5
If MonClasseur.Worksheets(1).Name = "Donnees" And _
MonClasseur.Worksheets(2).Name = "Site" Then
'Une offre est encore ouverte,
'On ne remet pas l'environnement à jour
If OffreOuverte = True Then
OffreOuverte = False
Exit Sub
End If
End If
End If
Next
End If
Restitution:
With Application
'Désactive la mise à jour de l'écran
.ScreenUpdating = False
'Rétablit le nom de l'application dans la barre de titre
.Caption = ""
.DisplayFormulaBar = True
End With
'Affiche l'environnement standard
'Réactive les raccourcis clavier
Call ActiverClavier
'Supprime le menu de l'application
Call SupprimerMenu
'Affiche les barres d'outils
Call AfficherBarres
Call AfficherBarres2
Application.CommandBars("Toolbar List").Enabled = True
'Ferme le classeur en demandant s'il faut le sauvegarder
fQuitter = True
Exit Sub
PasUneOffre:
OffreOuverte = False
Resume Next
End Sub
Sub ProtectionTotale()
Application.EnableEvents = False
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect (APP_PASSWORD)
For Each oSheet In Worksheets
If oSheet.Name <> "Groupe" And Left(oSheet.Name, 2) <> "G_" _
And Left(oSheet.Name, 2) <> "N_" And Left(oSheet.Name, 2) <> "E_"
Then
oSheet.Visible = False
End If
oSheet.Protect (APP_PASSWORD)
oSheet.EnableSelection = 1
Next
ActiveWorkbook.Protect (APP_PASSWORD)
Application.ScreenUpdating = True
Application.SendKeys "{Down}"
Application.EnableEvents = True
End Sub
Sub DeprotegerTout()
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect (APP_PASSWORD)
For Each oSheet In Worksheets
oSheet.Visible = xlSheetVisible
oSheet.Unprotect (APP_PASSWORD)
Next
Application.EnableEvents = False
End Sub
Sub AfficheBarreDessin()
Application.CommandBars("Drawing").Enabled = True
Application.CommandBars("Drawing").Visible = True
End Sub
Sub Nom()
'ActiveCell.Name = "Nomade!InfoGeneSM"
Dim iNbCol As Integer
iNbCol = 3
Dim DecalRow(1 To 4) As Integer
ReDim decarow(1 To 5) As Integer
DecalRow(1) = 2
End Sub
Sub NommerCelllule()
i = 8
ActiveSheet.Unprotect (APP_PASSWORD)
Dim j As Integer
For j = 1 To 8
Cells(ActiveCell.Row, Range("LBl" & j).Column).Name = ActiveSheet.Name &
"!ListeN" & j + i
Next
End Sub
Sub SpecialEvent()
Application.EnableEvents = True
ActiveSheet.Protect (APP_PASSWORD)
ActiveSheet.EnableSelection = 1
End Sub
Sub jojo()
'Application.EnableEvents = True
Application.CommandBars(1).Enabled = True
Application.CommandBars(1).Visible = True
End Sub
Bon courage ;-)
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
"Philou" <philippe.blancon@free.fr> a écrit dans le message de news:
eedJttNzEHA.3976@TK2MSFTNGP09.phx.gbl...
Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les
barres
outils affichées, tout en gardant la trace de celles qui étaient
affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans
sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les
variables.
ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonsoir :
Voici le code complet utilisé pour une de mes applications : (telle
quelle,
donc à adapter en fonction de ton environnement, je n'ai pas pris le temps
de faire le ménage....)
Auto_Open à l'ouverture du classeur, plus bas, tu trouvera la macro de
restitution....
Option Explicit
Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLongA Lib "User32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "User32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
'Variables globales
Global fQuitter As Boolean
Global SourceModif As String
Global oSheet As Worksheet
'Constantes globales
Global Const APP_HOTLINE = "0 810 174 174"
Global Const APP_MAX_MEMBERS = 5000
Global Const APP_HOTLINEemail ""
Global Const APP_NAME = "PNP Offre Personnalisée V5.16"
Global Const APP_Version = "G5R0C13"
Global Const APP_PASSWORD = "H79bqZs3"
Global Const APP_TEMPLATE = "PNP Offre personnalisée V2.0.dot"
Global Const APP_MAX_SITES = 500
Public NvlleHeure As Integer
Public NvlleMinute As Integer
Public NvlleSeconde As Integer
Public waitTime As Variant
Public Sub Auto_Open()
ActiveWorkbook.Unprotect (APP_PASSWORD)
Worksheets("Donnees").Range("Sortie").Value = ""
With Application
'Demande de patienter
.StatusBar = "Ouverture en cours... Patientez SVP " &
ActiveSheet.Name
'Désactive la mise à jour de l'écran
.ScreenUpdating = False
'Met le nom de l'application dans la barre de titre
.Caption = APP_NAME
'Barre de formule
.DisplayFormulaBar = False
End With
'Masque l'environnement standard
'Variables de la procédure
Dim i As Integer
Dim j As Integer
'---------------------------------------------------------------------------
'Cette procédure permet de désactiver les raccourcis clavier les plus
souvent
'utilisés par l'utilisateur averti ou... maladroit !
With Application
.OnKey "^{F4}", "" 'Fermer
.OnKey "%{F4}", "" 'Quitter
.OnKey "%{F8}", "" 'Macros
.OnKey "%{F11}", "" 'Visual Basic Editor
.OnKey "%{F12}", "" 'Enregistrer sous...
.OnKey "^p", "" 'Imprimer
.OnKey "^s", "" 'Sauvegarder
.OnKey "^x", "" 'Couper
.OnKey "^c", "" 'Copier
.OnKey "^v", "" 'Coller
.OnKey "+{DEL}", "" 'Couper
.OnKey "+{INSERT}", "" 'Coller
ActiverBouton 21, False 'Couper
ActiverBouton 19, False 'Copier
ActiverBouton 22, False 'Coller
'ActiverBouton 755, False 'Collage spécial
.CellDragAndDrop = False
End With
'---------------------------------------------------------------------------
'Cette procédure permet de masquer toutes les barres d'outils visibles
dans
'l'interface d'Excel active. Les barres masquées sont déclarées dans une
'colonne de la feuille "Groupe" et seront affichées en sortant de
l'application.
'Active la feuille "Groupe"
ActiveWorkbook.Worksheets("Donnees").Visible = True
ActiveWorkbook.Worksheets("Donnees").Activate
Range("Barres").Select
ActiveSheet.Unprotect (APP_PASSWORD)
Range("PBarres").ClearContents
Range("Modif").Value = "SansModif"
'Masque les barres visibles et inscrit leur nom en colonne "M"
j = 0
For i = 1 To Application.CommandBars.Count
If Application.CommandBars(i).Visible And _
Application.CommandBars(i).Name <> APP_NAME And _
Left(Application.CommandBars(i).Name, 15) <> "PNP Offre Perso" Then
Application.CommandBars(i).Enabled = False
ActiveCell.Offset(i, 0).Value = Application.CommandBars(i).Name
ActiveCell.Offset(i, 1).Value = ActiveCell.Offset(i, 0).Value
'Backup
End If
Next i
Range("A1").Select
'Déclare les variables de la procédure
On Error Resume Next
Dim oBar As CommandBar
Dim oPop As CommandBarPopup
Dim oBtn As CommandBarButton
'Définit la barre de menus
Set oBar = Application.CommandBars.Add(APP_NAME, 1) 'msoBarTop
'Menu "Fichier"
Set oPop = oBar.Controls.Add(msoControlPopup)
With oPop
.Caption = "&Fichier"
'-- Sous-menu "Enregistrer"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Enregistrer"
oBtn.OnAction = "MnuFileSave"
'-- Sous-menu "Enregistrer sous"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "En®istrer sous..."
oBtn.OnAction = "MnuFileSaveAs"
'-- Sous-menu "Contrôler la saisie"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Contrôler la saisie"
oBtn.OnAction = "ControlFinal"
oBtn.BeginGroup = True 'Séparateur
'-- Sous-menu "Imprimer tout"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Imprimer le bon de commande"
oBtn.OnAction = "MnuFilePrintAll"
oBtn.BeginGroup = True 'Séparateur
'-- Sous-menu "Imprimer tout"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Imprimer un onglet"
oBtn.OnAction = "MnuFilePrintTAB"
'-- Sous-menu "Imprimer Annuaire"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Imprimer l'&annuaire entreprise"
oBtn.OnAction = "ImprimeAnnuaire"
'-- Sous-menu "Com Perso"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Bon de Commande Com Perso"
oBtn.OnAction = "RecupListeComPerso"
oBtn.BeginGroup = True 'Séparateur
'-- Sous-menu "Importer"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "Im&porter des données"
oBtn.OnAction = "Consolider"
oBtn.BeginGroup = True 'Séparateur
'-- Sous-menu "Quitter"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&Quitter"
oBtn.OnAction = "MnuFileQuit"
oBtn.BeginGroup = True 'Séparateur
End With
'Menu "?"
Set oPop = oBar.Controls.Add(msoControlPopup)
With oPop
.Caption = "&?"
'-- Sous-menu "A propos de"
Set oBtn = oPop.Controls.Add(msoControlButton)
oBtn.Caption = "&A propos de " & APP_NAME
oBtn.OnAction = "MnuHelpAbout"
End With
'Affiche la barre de menus
With oBar
.Visible = True
.Protection = _
msoBarNoChangeDock + msoBarNoChangeVisible + msoBarNoCustomize + _
msoBarNoMove + msoBarNoResize
End With
' ActiveWindow.DisplayWorkbookTabs = False 'Uniquement pour l'offre
classique
ActiveWindow.DisplayWorkbookTabs = True
Worksheets("Groupe").Select
ActiveSheet.Unprotect (APP_PASSWORD)
ActiveWindow.DisplayHeadings = False
ActiveWindow.WindowState = xlMaximized
Application.CommandBars("Toolbar List").Enabled = False
Call AjusterSelection("A:O", "RaisonSoc")
Application.ScreenUpdating = True
Worksheets("Groupe").Select
ActiveSheet.Unprotect (APP_PASSWORD)
Range("IREIMF").Select
Range("RaisonSoc").Select
ProtectionTotale
ActiveSheet.Protect (APP_PASSWORD)
ActiveSheet.EnableSelection = 1
'============ > Dim hwnd As Long
hwnd = FindWindowA(vbNullString, Application.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
'========== >
Application.EnableEvents = True
'Réactive affichage standard de la barre d'état
Application.StatusBar = False
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet de quitter l'application. L'utilisateur est inform
é
au
'préalable.
Public Sub QuitterAppli()
Dim MonClasseur As String
MonClasseur = ActiveWorkbook.Name
'Variables de la procédure
Dim iRep As Integer
Dim sFile As String
Dim MaReponse As Boolean
Dim MyRep As Integer
'Variables utilisées pour planifier une temporisation
sFile = ActiveWorkbook.Path & _
IIf(Right(ActiveWorkbook.Path, 1) = "", "", "") & ActiveWorkbook.Name
'Demande confirmation
iRep = MsgBox( _
"Voulez-vous vraiment quitter l'application '" & APP_NAME & "' ?", _
vbQuestion + vbYesNo, APP_NAME)
If iRep = vbYes Then
If Worksheets("Donnees").Range("Controles").Value <> "Vrai" Then
MyRep = MsgBox( _
"Les contrôles n'ont pas été effectués !!!" & Chr(10) & Chr(10) &
_
"Vous ne pourrez pas enregistrer votre travail !!!" & Chr(10) &
Chr(10) & _
"Voulez-vous lancer le contrôle maintenant ?", _
vbQuestion + vbYesNo, APP_NAME)
If MyRep = vbYes Then
ControlFinal
Exit Sub
Else
MyRep = MsgBox( _
"Voulez-vous vraiment quitter l'application '" & APP_NAME & "'
?"
& _
Chr(10) & "Sans enregistrer votre travail ???", _
vbQuestion + vbYesNo, APP_NAME)
If MyRep = vbYes Then
RestitutionEnvironnement
Worksheets("Donnees").Range("Sortie").Value = "Sortie"
ActiveWorkbook.Close False
Else
Exit Sub
End If
End If
Else
End If
RestitutionEnvironnement
Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now())
+
3)
Worksheets("Donnees").Range("Sortie").Value = "Sortie"
'Les cases fermetures
If ActiveWorkbook.Saved Or Worksheets("Donnees").Range("Modif") > "SansModif" Then
'-- Pas de sauvegarde
ActiveWorkbook.Close False
Else
'-- Propose de sauvegarder ou non
Dim i As Integer
i = 0
Do
MonClasseur = ActiveWorkbook.Name
MaReponse = True
Worksheets("Donnees").Range("Sortie").Value = "Sortie"
i = i + 1
On Error GoTo PasAnnuler
'======================================== > Application.ScreenUpdating = True
Worksheets("Groupe").Select
Range("RaisonSoc").Select
Application.Wait TimeSerial(Hour(Now()), Minute(Now()),
Second(Now()) + 3)
MyRep = MsgBox("Voulez-vous enregistrer les modifications
apportées
à '" & _
sFile & "' ?", vbQuestion + vbYesNo, APP_NAME)
If MyRep = vbYes Then
Call MnuFileSave
ActiveWorkbook.Close False
Else
ActiveWorkbook.Close False
End If
'======================= > Loop Until MaReponse
End If
End If
Exit Sub
PasAnnuler:
MonClasseur = InputBox("Saisissez un nouveau nom pour cette offre", _
APP_NAME, Range("RaisonSoc").Value & ".xls")
MaReponse = False
Resume
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet de réactiver les raccourcis clavier les plus
souvent
'utilisés par l'utilisateur averti ou... maladroit !
Sub ActiverClavier()
Application.ScreenUpdating = False
With Application
.OnKey "^{F4}" 'Fermer
.OnKey "%{F4}" 'Quitter
.OnKey "%{F8}" 'Macros
.OnKey "%{F11}" 'Visual Basic Editor
.OnKey "%{F12}" 'Enregistrer sous...
.OnKey "^p" 'Imprimer
.OnKey "^s" 'Sauvegarder
.OnKey "^x" 'Couper
.OnKey "^c" 'Copier
.OnKey "^v" 'Coller
.OnKey "+{DEL}" 'Couper
.OnKey "+{INSERT}" 'Coller
ActiverBouton 21, True 'Couper
ActiverBouton 19, True 'Copier
ActiverBouton 22, True 'Coller
ActiverBouton 755, True 'Collage spécial
.CellDragAndDrop = True
End With
End Sub
'---------------------------------------------------------------------------
Public Sub SupprimerMenu()
Application.ScreenUpdating = False
On Error Resume Next
Application.CommandBars(APP_NAME).Delete
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet d'afficher toutes les barres d'outils qui étaient
'visibles dans l'interface d'Excel active. Les barres masquées ont été
'déclarées dans une colonne de la feuille "Groupe".
Public Sub AfficherBarres()
Application.ScreenUpdating = False
'Variables de la procédure
Dim i As Integer
Dim oSheet As Worksheet
Dim oCell As Excel.Range
Set oSheet = ActiveWorkbook.Worksheets("Donnees")
If oSheet.Range("Barres").Value <> "" Then
Set oCell = oSheet.Range("Barres")
Else
Set oCell = oSheet.Range("Barres").Offset(0, 1) 'Colonne backup
End If
Dim MaCellule As Range
'Affiche les barres dont le nom est inscrit en colonne "M" ou "N"
For Each MaCellule In Range("PBarres")
If MaCellule.Value <> "" Then
On Error Resume Next
Application.CommandBars(oCell.Offset(i, 0).Value).Enabled = True
Application.CommandBars(oCell.Offset(i, 0).Value).Visible = True
i = i + 1
On Error GoTo 0
End If
Next
Range("C13").Select
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet d'afficher les barres d'outils standards.
Public Sub AfficherBarres2()
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To 4
If i <> 2 Then 'BO Graphique
Application.CommandBars(i).Enabled = True
Application.CommandBars(i).Visible = True
End If
Next i
Range("C13").Select
End Sub
'---------------------------------------------------------------------------
'Cette fonction renvoie VRAI si l'uitilisateur répond OUI à la question
'"Voulez-vous sauvegarder le fichier ?"
Public Function SauvegarderClasseur(ByVal sFile As String) As Boolean
Application.StatusBar = "Sauvegarder classeur"
Dim iRep As Integer
iRep = MsgBox("Voulez-vous enregistrer les modifications apportées à '"
&
_
sFile & "' ?", vbQuestion + vbYesNo, APP_NAME)
If iRep = vbYes Then
SauvegarderClasseur = True
Else
SauvegarderClasseur = False
End If
End Function
'---------------------------------------------------------------------------
'Cette procédure associée aux routines "ActiverClavier" et
"DesactiverClavier",
'permet de désactiver les fonctions Copier/Coller au niveau des barres de
menus
'et des menus contextuels.
Sub ActiverBouton(ByVal iId As Integer, ByVal fActif As Boolean)
Application.ScreenUpdating = False
Dim oBar As CommandBar
Dim oCtrl As CommandBarControl
For Each oBar In Application.CommandBars
Set oCtrl = oBar.FindControl(Id:=iId, Recursive:=True)
On Error Resume Next
If Not oCtrl Is Nothing Then
oCtrl.Enabled = fActif
End If
Next
End Sub
'---------------------------------------------------------------------------
'Cette procédure permet d'ajuster la plage de cellules passée en paramètre
de
'sorte qu'elle occupe toute la fenêtre.
'
'sPlage1: Plage de colonnes pour le zoom (Exemple: "A:E")
'sPlage2: Cellule à atteindre en fin de traitement (Exemple: "E5")
Public Sub AjusterSelection(ByVal sPlage1 As String, ByVal sPlage2 As
String)
Application.EnableEvents = False
Application.ScreenUpdating = True
ActiveSheet.Unprotect (APP_PASSWORD)
Columns(sPlage1).Select
ActiveWindow.Zoom = True
Range(sPlage2).Select
Range(sPlage2).Select
ActiveSheet.Protect (APP_PASSWORD)
ActiveSheet.EnableSelection = 1
Application.EnableEvents = True
End Sub
Sub RestitutionEnvironnement()
Application.ScreenUpdating = True
Dim hwnd As Long
Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now())
+
1)
hwnd = FindWindowA(vbNullString, Application.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000
Application.ScreenUpdating = False
Application.WindowState = xlMinimized
Application.WindowState = xlMaximized
'Ne rétablir l'environnement général que si d'autres offres ne sont
pas
ouvertes
Dim OffreOuverte As Boolean
OffreOuverte = False
Dim MonClasseur As Workbook
Dim MaFeuille As Worksheet
Dim EstErreur As Boolean
EstErreur = False
'Recherche, parmi les autres classeurs ouverts,
's'il y en a au moins 1 qui correspond à une offre classique ou
personnalisée
If Workbooks.Count = 0 Then
GoTo Restitution
Else
For Each MonClasseur In Workbooks
If MonClasseur.Name <> ActiveWorkbook.Name Then
MonClasseur.Protect (APP_PASSWORD)
'Ce peut être une offre personnalisé ou classique, ou Mobimalin
'Test si offre classique V3
On Error GoTo PasUneOffre
OffreOuverte = True
If MonClasseur.Worksheets(1).Name = "Groupe" And _
MonClasseur.Worksheets(2).Name = "Modèle_impression" And _
Left(MonClasseur.Worksheets(3).Name, 17) = "Flotte Orange VPN"
And _
MonClasseur.Worksheets(4).Name = "Intermédiaire" Then
'Une offre est encore ouverte,
'On ne remet pas l'environnement à jour
If OffreOuverte = True Then
OffreOuverte = False
Exit Sub
End If
End If
'Test si offre personnalisée V3 ou V4
If MonClasseur.Worksheets(1).Name = "Groupe" And _
MonClasseur.Worksheets(2).Name = "Externe" And _
MonClasseur.Worksheets(3).Name = "Fixe" And _
MonClasseur.Worksheets(4).Name = "Mobile" Then
'Une offre est encore ouverte,
'On ne remet pas l'environnement à jour
If OffreOuverte = True Then
OffreOuverte = False
Exit Sub
End If
End If
'Test si Perso V5
If MonClasseur.Worksheets(1).Name = "Donnees" And _
MonClasseur.Worksheets(2).Name = "Site" Then
'Une offre est encore ouverte,
'On ne remet pas l'environnement à jour
If OffreOuverte = True Then
OffreOuverte = False
Exit Sub
End If
End If
End If
Next
End If
Restitution:
With Application
'Désactive la mise à jour de l'écran
.ScreenUpdating = False
'Rétablit le nom de l'application dans la barre de titre
.Caption = ""
.DisplayFormulaBar = True
End With
'Affiche l'environnement standard
'Réactive les raccourcis clavier
Call ActiverClavier
'Supprime le menu de l'application
Call SupprimerMenu
'Affiche les barres d'outils
Call AfficherBarres
Call AfficherBarres2
Application.CommandBars("Toolbar List").Enabled = True
'Ferme le classeur en demandant s'il faut le sauvegarder
fQuitter = True
Exit Sub
PasUneOffre:
OffreOuverte = False
Resume Next
End Sub
Sub ProtectionTotale()
Application.EnableEvents = False
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect (APP_PASSWORD)
For Each oSheet In Worksheets
If oSheet.Name <> "Groupe" And Left(oSheet.Name, 2) <> "G_" _
And Left(oSheet.Name, 2) <> "N_" And Left(oSheet.Name, 2) <> "E_"
Then
oSheet.Visible = False
End If
oSheet.Protect (APP_PASSWORD)
oSheet.EnableSelection = 1
Next
ActiveWorkbook.Protect (APP_PASSWORD)
Application.ScreenUpdating = True
Application.SendKeys "{Down}"
Application.EnableEvents = True
End Sub
Sub DeprotegerTout()
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect (APP_PASSWORD)
For Each oSheet In Worksheets
oSheet.Visible = xlSheetVisible
oSheet.Unprotect (APP_PASSWORD)
Next
Application.EnableEvents = False
End Sub
Sub AfficheBarreDessin()
Application.CommandBars("Drawing").Enabled = True
Application.CommandBars("Drawing").Visible = True
End Sub
Sub Nom()
'ActiveCell.Name = "Nomade!InfoGeneSM"
Dim iNbCol As Integer
iNbCol = 3
Dim DecalRow(1 To 4) As Integer
ReDim decarow(1 To 5) As Integer
DecalRow(1) = 2
End Sub
Sub NommerCelllule()
i = 8
ActiveSheet.Unprotect (APP_PASSWORD)
Dim j As Integer
For j = 1 To 8
Cells(ActiveCell.Row, Range("LBl" & j).Column).Name = ActiveSheet.Name &
"!ListeN" & j + i
Next
End Sub
Sub SpecialEvent()
Application.EnableEvents = True
ActiveSheet.Protect (APP_PASSWORD)
ActiveSheet.EnableSelection = 1
End Sub
Sub jojo()
'Application.EnableEvents = True
Application.CommandBars(1).Enabled = True
Application.CommandBars(1).Visible = True
End Sub
Bon courage ;-)
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
"Philou" a écrit dans le message de news:Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les
barres
outils affichées, tout en gardant la trace de celles qui étaient
affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans
sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les
variables.
ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les barres
outils affichées, tout en gardant la trace de celles qui étaient affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les variables. ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les barres
outils affichées, tout en gardant la trace de celles qui étaient affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les variables. ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les barres
outils affichées, tout en gardant la trace de celles qui étaient affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les variables. ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonjour
tu as un exemple de Frédéric S sur excelabo pour supprimer toutes les
barres à l'ouverture et les remettre à la fermeture.
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
on 17/11/2004 20:27:Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les
barres
outils affichées, tout en gardant la trace de celles qui étaient
affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans
sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les
variables. ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonjour
tu as un exemple de Frédéric S sur excelabo pour supprimer toutes les
barres à l'ouverture et les remettre à la fermeture.
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
on 17/11/2004 20:27:
Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les
barres
outils affichées, tout en gardant la trace de celles qui étaient
affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans
sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les
variables. ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe
Bonjour
tu as un exemple de Frédéric S sur excelabo pour supprimer toutes les
barres à l'ouverture et les remettre à la fermeture.
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
on 17/11/2004 20:27:Bonsoir,
je souhaite à l'ouverture d'un classeur, faire disparaitre toutes les
barres
outils affichées, tout en gardant la trace de celles qui étaient
affichées
pour pouvoir à la fermeture du classeur, restaurer l'environnement dans
sont
état premier.
je me mélange un peu les pinceaux (même beaucoup.. ;) dans les
variables. ça
s'éfface pas trop mal mais ça ne raffiche pas les bonnes :(
merci pour les conseils !
Philippe