Code VBA pour un onglet sommaire 'mobile' mais bloquant les fonctions Excel

Fou75

XLDnaute Nouveau
Bonjour,

J'ai un fichier Excel volumineux dans lequel j'ai insérer un onglet 'sommaire dynamique' qui se déplace en même temps que la position dans le fichier ( ex: si je suis dans l'onglet 10 l'onglet somaire se met juste deriere en position 9 ect...) .
Toutefois le code qui génère ce mouvement bloque les fonctionnalités d'Excel (copier/coller, ...)
Je voudrais savoir si le code que j'utilise est bon ou s'il est possible de créer un bouton qui fige le mouvement sans aller dans la console VBA et passer le code en texte, une sorte de bouton « ON/OFF »
Ci-après le code que j'utilise:
"Sub Workbook_SheetActivate(ByVal Sh As Object)
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
If Sh.Name <> "sommaire" Then Sheets("sommaire").Move Sh
Sh.Select'Application.EnableEvents = True
End Sub"

Merci beaucoup de vos réponses et de votre aide, bonnes vacances à ceux qui y sont déjà !
 

Fou75

XLDnaute Nouveau
Re : Code VBA pour un onglet sommaire 'mobile' mais bloquant les fonctions Excel

Bonjour,

Enlève ou désactive la ligne .EnableEvents = False

Enregistre, ferme le classeur et rouvre-le.


Gelinotte

Merci pour ta réponse, la désactivation ou supression de .EnableEvents= Flase, ne libere pas les fonctionnalités.
Le copie/colle par exemple est possible sur une même feuille mais reste impossible entre onglets...
 

Fou75

XLDnaute Nouveau
Re : Code VBA pour un onglet sommaire 'mobile' mais bloquant les fonctions Excel

Bonsoir Pierrot93,

Je ne suis pas parvenu à lire ton code (je l'ai bien reçu en mail malgré sa supression du forum) mais inexploitable...

Merci à toi

Bonne soirée
 

Pierrot93

XLDnaute Barbatruc
Re : Code VBA pour un onglet sommaire 'mobile' mais bloquant les fonctions Excel

Re,

Je ne suis pas parvenu à lire ton code (je l'ai bien reçu en mail malgré sa supression du forum) mais inexploitable...

oui mais il ne pouvait pas répondre à ton problème, plutôt même en créer, c'est pourquoi je l'ai supprimé....

bonne soirée
@+
 

Gelinotte

XLDnaute Accro
Re : Code VBA pour un onglet sommaire 'mobile' mais bloquant les fonctions Excel

Bonjour,

Une façon de faire parmi tant d'autres ...

Pour faire du copier/coller d'une feuille à l'autre :
On copie
On active Fixe-majuscule (caplock)
On change de feuille et on colle

Parce que Fixe-majuscule est actif, la macro Sub Workbook_SheetActivate(ByVal Sh As Object) ne s'exécutera pas.

Ensuite, pour positionner la feuille Sommaire à la gauche, désactiver Fixe-majuscule, changer de feuille et revenir.

Cela peut-il convenir ????

Je te laisse regarder le code.


Gelinotte
 

Pièces jointes

  • SommaireDeplacement.xlsm
    20.8 KB · Affichages: 50

Fou75

XLDnaute Nouveau
Re : Code VBA pour un onglet sommaire 'mobile' mais bloquant les fonctions Excel

Bonjour Gelinotte,
Merci pour ton code , tu m'as donné pas mal d'idée en fait , toutefois en l'état il m'a planté Excel , je l'ai readapté au mien pour mieux fonctionner:
"Sub Workbook_SheetActivate(ByVal Sh As Object)
If Not Application.CutCopyMode = False Then Exit Sub
With Application
.EnableEvents = False
.ScreenUpdating = False
If Sh.Name <> "sommaire" Then
Sheets("sommaire").Move Sh
Sh.Select
End If
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub"
Je vais chercher une solution dans ce sens basée sur un bouton ou la saisi dans une cellule car le cap-lock a échelle d'utilisateur n'est pas tres evident à maitriser ( deja que je leur impose pas mal de manip dans mon pt outil...)
Merci !
 

Fou75

XLDnaute Nouveau
Re : Code VBA pour un onglet sommaire 'mobile' mais bloquant les fonctions Excel

Re bonjour,

On m'a proposé également cette rectification sur le code si cela peut interesser:
'Sub Workbook_SheetActivate(ByVal Sh As Object)
If Not Application.CutCopyMode = False Then Exit Sub
With Application
.EnableEvents = False
.ScreenUpdating = False
If Sh.Name <> "sommaire" Then
Sheets("sommaire").Move Sh
Sh.Select
End If
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub'
Toutefois avec ce code ci , je perd la mobilité de l'onglet sommaire une fois l'opération de copie/colle finie. A votre avis est ce qu'il est possible d'y inclure une fonction type "Echap" pour que une fois le copier/coller fini l'onglet sommaire redemarre automatiquement ?
Au plaisir de vous lire
Bonne journée à tous
 

Fou75

XLDnaute Nouveau
Re : Code VBA pour un onglet sommaire 'mobile' mais bloquant les fonctions Excel

Bonjour,

Je ne vois pas de différence entre le code du post #8 et celui du post #9 8- (((((


Gelinotte

Autant pour moi, j'ai copié deux fois le même celui du post #8 ci apres:

Sub Workbook_SheetActivate(ByVal Sh As Object)
If Not Verrouille_CapsLock Then

With Application
.EnableEvents = False
.ScreenUpdating = False
End With
If Sh.Name <> "sommaire" Then Sheets("sommaire").Move Sh

Sh.Select
If Not Verrouille_CapsLock Then
Application.EnableEvents = True
End If
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 334
Messages
2 087 382
Membres
103 530
dernier inscrit
dieubrice