[VBA] Evénement BeforeDoublieClick pour toutes les pages

Bonjour le forum,

J'espère que vous allez bien.

J'aurai voulu savoir si la demande ci-dessous était réalisable et si oui me donner simplement l’événement qui permettrait de le faire

Mon but est simple : J'ai un fichier Excel 2013 avec une page que je nomme "Modèle".

Chaque semaine l'utilisateur devra dupliquer cette page via la fonction Excel "Déplacer ou copier...".

Actuellement j'ai codé avec l'événement "BeforeDoubleClick" directement dans la page "Modèle" le code suivant (Je l'ai simplifié au max. Nul besoin d'avoir la totalité du code...)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

AS_DerLig_A = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row

If Not Application.Intersect(Target, Range("C4:AO" & AS_DerLig_A)) Is Nothing Then
    If ActiveCell.Value <> "" Then
        ActiveCell.Value = ""
        Cancel = True
    Else
        ActiveCell.Value = "x"
        Cancel = True
    End If
End If

End Sub

Le problème c'est que ce code n'est pas dupliqué lorsque l'utilisateur créer une copie de la page modèle. Existe-t-il ici un moyen pour que le code fonctionne pour toutes les pages du fichier Excel et pour toutes les futures pages qui seront créées ?

D'avance je vous remercie beaucoup

Bonne journée !

si tu manipule bien le VBA, créer un bouton est le plus simple, il te suffit de sauvegarder un "Blank" et de t'en servir de référence en mettant une fonction qui change le nom est sauvegarde automatiquement.

Bonjour Louis,

Effectivement votre idée m'avait déjà traversée l'esprit :

=> On créé un modèle avec un bouton du type "Enregistrer feuille". Le bouton au clic il ouvre un Userform où l'utilisateur peut préciser le nom de la feuille. Après avoir cliqué sur "OK" un code VBA va effectuer lui même le "Déplacer ou copier" et va remettre à 0 le modèle. Ainsi l'utilisateur travaille toujours sur le modèle et le code événementiel va toujours rester sur la même page.

Néanmoins petit hic pour cette technique :

Supposons que l'utilisateur avait oublié de préciser une donnée. Il est donc obligé de revenir dans une des feuilles sauvegardées. On se retrouve donc au point de départ avec une feuille qui ne détient pas l'événement "BeforeDoubleClick"...

D'où ma question : n'existe-t-il pas un code qui fonctionne pour toutes les feuilles et toutes les futures feuilles...

Bonjour,

j'ai un programme qui crée des onglets de feuilles selon une feuille modèle et affecte une liste déroulante aux nouvelles feuilles pour les retrouver

Un exemple de la feuille modèle serait utile même anonyme

Amicalement

Pierrot

bonjour

Le problème c'est que ce code n'est pas dupliqué lorsque l'utilisateur créer une copie de la page modèle.

Je pense que c est le contraire le code est dupliqué lorsque l'utilisateur créer une copie de la page modèle.

Hum Re-bonjour tout le monde,

Je vais peut être passé pour un abruti mais je suis parti dès le départ du principe que si on duplique une feuille le code VBA initialement intégré dans un événement de cette feuille ne sera pas dupliqué.

En réalité après test le code événementiel est dupliqué aussi.

Donc sans le savoir j'ai moi même répondu à la question.

Bon ça peut toujours servir aux personnes qui avaient rencontrées le même "problème" que moi...

EDIT : Mr AMIR vous avez tout juste.

Bonjour à tous,

Si je comprends bien, personnes ne veut de mon programme automatique

Bonne journée néanmoins à vous tous.

Pierrot

Bonjour,

Utilise cette procédure dans le module ThisWorkbook de ton classeur.

Mais ton code devra être adapté avec le nom des feuilles.

Sinon, que veux tu faire avec cette procédure ? Pas très clair...

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, _
                                            ByVal Target As Range, _
                                            Cancel As Boolean)
'
'
End Sub

Bonjour Jean-Eric,

Merci de ta proposition.

C'est très simple c'est une fiche de présence qui devra être mis à jour régulièrement par semaine.

De ce fait l'utilisateur part d'une feuille modèle pour remplir les absences ou les retards puis clique, en fin de semaine, sur un bouton "Dupliquer modèle" qui ouvrira un userform où il pourra nommer la nouvelle feuille.

Suite à cela le code réaliser un "Déplacer Copié" de la feuille modèle, renomme la nouvelle feuille en fonction de la valeur du Textbox du Userform et remet à zéro le modèle pour une nouvelle semaine

Rechercher des sujets similaires à "vba evenement beforedoublieclick toutes pages"