[Résolu][Calc] Copie de feuille avec des événements de feuille connectés
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
[Résolu][Calc] Copie de feuille avec des événements de feuille connectés
Bonjour
J'ai une feuille avec une macro qui met en majuscule le contenu de certaines colonnes. Par contre quand je rajoute une feuille en la copiant, la macro sur la feuille copiée ne fonctionne plus (en effet l'évènement de la feuille n'a pas été conservé).
Existe t il une solution pour conserver cette macro sur toutes les feuilles qui seraient copiées ?
Je joins le petit fichier test....
Merci d'avance
No
J'ai une feuille avec une macro qui met en majuscule le contenu de certaines colonnes. Par contre quand je rajoute une feuille en la copiant, la macro sur la feuille copiée ne fonctionne plus (en effet l'évènement de la feuille n'a pas été conservé).
Existe t il une solution pour conserver cette macro sur toutes les feuilles qui seraient copiées ?
Je joins le petit fichier test....
Merci d'avance
No
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Lynx le 15 mai 2023 23:45, modifié 1 fois.
7.3.6.2 libre Office Community Mac OS 12.6.5
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: [Calc]Copier une feuille de classeur
Bonjour,
Sujet déjà passé :[Résolu][Calc]Assigner une macro à un évènement de feuille
Après l'idéal dans ton cas serait de créer une macro pour copier la feuille modèle et dans la foulée lui demander de créer l'affectation. Les exemple de copie son nombreux dans cette section.
@+
Le titre de ton sujet ne reflète pas la demande exposée : Affecter une macro à un événement de feuille après copie d'une feuille modèle
Sujet déjà passé :[Résolu][Calc]Assigner une macro à un évènement de feuille
Après l'idéal dans ton cas serait de créer une macro pour copier la feuille modèle et dans la foulée lui demander de créer l'affectation. Les exemple de copie son nombreux dans cette section.
@+
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
Re: [Calc]Copier une feuille de classeur
Bonjour
Merci pour le retour ...
Donc si j'ai bien compris, lorsque que je copie une feuille d'un classeur, la macro de la feuille copiée n'est pas conservée et c'est normal.
La seule solution est de créer une autre macro ?
Cdlt
Merci pour le retour ...
Donc si j'ai bien compris, lorsque que je copie une feuille d'un classeur, la macro de la feuille copiée n'est pas conservée et c'est normal.
La seule solution est de créer une autre macro ?
Cdlt
7.3.6.2 libre Office Community Mac OS 12.6.5
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: [Calc]Copier une feuille de classeur
Bonjour,
Pour copier ta feuille, tu effectues un clic droit sur l'onglet puis dans le menu contextuel tu sélectionnes Déplacer/Copier la feuille. Dans ce même menu contextuel, une autre entrée nommée Événement de la feuille te permet de connecter ta macro à un événement particulier de ta feuille. Tu peux donc très bien te passer de macro pour faire ça sauf si tu dois copier ta feuille toutes les 30 secondes
@+
Alors non ! D'abord c'est ton fichier qui contient une macro dans un lieu de stockage dédié et non ta feuille. Ensuite ce que tu perds lors de la copie de ta feuille n'est pas la macro proprement dite mais son affectation à un événement de ta feuille nouvellement copiée/créée. La même macro peut servir plusieurs feuilles donc.
Pour copier ta feuille, tu effectues un clic droit sur l'onglet puis dans le menu contextuel tu sélectionnes Déplacer/Copier la feuille. Dans ce même menu contextuel, une autre entrée nommée Événement de la feuille te permet de connecter ta macro à un événement particulier de ta feuille. Tu peux donc très bien te passer de macro pour faire ça sauf si tu dois copier ta feuille toutes les 30 secondes
@+
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
Re: [Calc]Copier une feuille de classeur
Re Bonjour et à nouveau merci pour ce retour.
Pour être certain d'avoir tout compris ...
Après avoir fait une copie de la feuille... je vais sur événement de la feuille, puis contenu modifié puis Macro, module etc etc pour que le code soit affecté sur cette nouvelle feuille ?
Cdlt
Pour être certain d'avoir tout compris ...
Après avoir fait une copie de la feuille... je vais sur événement de la feuille, puis contenu modifié puis Macro, module etc etc pour que le code soit affecté sur cette nouvelle feuille ?
Cdlt
7.3.6.2 libre Office Community Mac OS 12.6.5
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: [Calc]Copier une feuille de classeur
Oui c'est exactement ça. Après, comme nous ignorons toujours l'objectif que tu souhaites atteindre avec ton fichier, c'est difficile de te proposer la solution la plus pertinente pour l'utilisation que tu en feras.
@+
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
Re: [Calc]Copier une feuille de classeur
Merci à nouveau pour ce retour
L'objectif était de copier une feuille par journée sur une quinzaine ou vingtaine de jours....pour moi pas de soucis pour affecter l'évènement .....par contre pour d'autres utilisateurs c'est un peu trop complexe......copier une feuille oui , lui affecter un évènement
A la création du fichier, je ne savais pas qu'en copiant la feuille elle perdait son évènement....j'étais persuadé que tout suivait
L'objectif était de copier une feuille par journée sur une quinzaine ou vingtaine de jours....pour moi pas de soucis pour affecter l'évènement .....par contre pour d'autres utilisateurs c'est un peu trop complexe......copier une feuille oui , lui affecter un évènement
A la création du fichier, je ne savais pas qu'en copiant la feuille elle perdait son évènement....j'étais persuadé que tout suivait
7.3.6.2 libre Office Community Mac OS 12.6.5
-
- IdOOle de la suite
- Messages : 25602
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc]Copier une feuille de classeur
Salut,
Si c'est pour cumuler avec ton autre question, tu vas te retrouver avec 15 ou 20 feuilles contenant des MFC qui se recopient suite à des déplacements.
Usine à gaz et plantage assuré.
Il te suffit d'ajouter la création de feuille et d'en faire un bouton pour l'exécution.
Rien de bien compliqué si on se donne la peine d'étudier...
Là encore, recopier des informations en plusieurs fois laisse entendre au fonctionnement d'une base de données relationnelles.
Si c'est pour cumuler avec ton autre question, tu vas te retrouver avec 15 ou 20 feuilles contenant des MFC qui se recopient suite à des déplacements.
Usine à gaz et plantage assuré.
zeguedon te donne un fil contenant justement une macro faisant cette opération. L'as-tu suivi ?
Il te suffit d'ajouter la création de feuille et d'en faire un bouton pour l'exécution.
Rien de bien compliqué si on se donne la peine d'étudier...
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
Re: [Calc]Copier une feuille de classeur
Bonjour
Oui en effet j'ai une base de données où je puise des informations que je renvoie sur des feuilles ....qui sont recopiées avec des MFC....mais je n 'ai pas trouvé d'autres solutions....raison pour laquelle je pensais intégrer des macros en pensant qu'elles se reporteraient en copiant les feuilles...
J'ai suivi le fil de Zeguedon....qui est certainement pas très compliqué à mettre en place ...mais tout cela dépend du niveau des connaissances.
J'étudie mais je galère
Oui en effet j'ai une base de données où je puise des informations que je renvoie sur des feuilles ....qui sont recopiées avec des MFC....mais je n 'ai pas trouvé d'autres solutions....raison pour laquelle je pensais intégrer des macros en pensant qu'elles se reporteraient en copiant les feuilles...
J'ai suivi le fil de Zeguedon....qui est certainement pas très compliqué à mettre en place ...mais tout cela dépend du niveau des connaissances.
J'étudie mais je galère
7.3.6.2 libre Office Community Mac OS 12.6.5
-
- SuppOOrter
- Messages : 1047
- Inscription : 19 août 2018 05:20
Re: [Calc]Copier une feuille de classeur
Bonsoir,
La solution serait d'utiliser... Base
Open Office 4.1.15 sous Windows 11
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: [Calc]Copier une feuille de classeur
Bonjour,
Writer = traitement de texte
Calc = tableur (synonyme de chiffrier)
Base = base de données ayant vocation à stocker et traiter de l'information. Doté de formulaires de saisie, il permet la gestion de stock, affectation de personnel approfondie et bien plus encore.
Manifestement tu t'obstines absolument à conserver secret l'objectif à atteindre. De fait tu cherches des solution à tâtons sans savoir ce que tu fais pensant pouvoir y parvenir = problème XY !
Sans plus de précisions ce sera sans moi désormais. Désolé.
@+
La suite bureautique que nous utilisons ici est composée de plusieurs modules, chacun ayant une vocation propre dont entre autres :
Writer = traitement de texte
Calc = tableur (synonyme de chiffrier)
Base = base de données ayant vocation à stocker et traiter de l'information. Doté de formulaires de saisie, il permet la gestion de stock, affectation de personnel approfondie et bien plus encore.
Manifestement tu t'obstines absolument à conserver secret l'objectif à atteindre. De fait tu cherches des solution à tâtons sans savoir ce que tu fais pensant pouvoir y parvenir = problème XY !
Sans plus de précisions ce sera sans moi désormais. Désolé.
@+
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
Re: [Calc]Copier une feuille de classeur
Bonjour
Je construis pas à pas un simple fichier, et en fonction des difficultés rencontrées je demande de l’aide….
Au départ une feuille de données avec des recherches de doublons, et un code VBA pour que les lettres soient toujours en majuscule.
Je ne savais qu’en copiant cette feuille…le code VBA ne suivait pas d’où ma demande avec mon fichier test
Il n’y a aucun secret et encore moins d’obstination…
Je construis pas à pas un simple fichier, et en fonction des difficultés rencontrées je demande de l’aide….
Au départ une feuille de données avec des recherches de doublons, et un code VBA pour que les lettres soient toujours en majuscule.
Je ne savais qu’en copiant cette feuille…le code VBA ne suivait pas d’où ma demande avec mon fichier test
Il n’y a aucun secret et encore moins d’obstination…
7.3.6.2 libre Office Community Mac OS 12.6.5
-
- SuppOOrter
- Messages : 1047
- Inscription : 19 août 2018 05:20
Re: [Calc]Copier une feuille de classeur
Re,
Donnez donc un document et précisez où se trouve le blocage ?
Je ne vois pas de difficulté à utiliser la macro de ThierryM
Donnez donc un document et précisez où se trouve le blocage ?
Open Office 4.1.15 sous Windows 11
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
Re: [Calc]Copier une feuille de classeur
Bonjour
J'ai mis la macro de ThierryM dans un module, mais je ne trouve pas l'évènement"OnChange".Je l'ai mis à l'évènement "la création de la copie du doc " mais ça ne fonctionne pas ....surement parce que ce n'est pas la copie de la feuille .....
Sur mon fichier lorsque je copie ma feuille "bonjour", je perds la mise en majuscule ....
J'ai mis la macro de ThierryM dans un module, mais je ne trouve pas l'évènement"OnChange".Je l'ai mis à l'évènement "la création de la copie du doc " mais ça ne fonctionne pas ....surement parce que ce n'est pas la copie de la feuille .....
Sur mon fichier lorsque je copie ma feuille "bonjour", je perds la mise en majuscule ....
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
7.3.6.2 libre Office Community Mac OS 12.6.5
-
- SuppOOrter
- Messages : 1047
- Inscription : 19 août 2018 05:20
Re: [Calc]Copier une feuille de classeur
A quoi sert de lancer la macro sur l'événement "Double clic".
Chaque fois qu'il y a double-clic, vous l'exécutez. Et votre macro ne branchera rien si vous ne déclarez pas la feuille.
Chaque fois qu'il y a double-clic, vous l'exécutez. Et votre macro ne branchera rien si vous ne déclarez pas la feuille.
Code : Tout sélectionner
Sub Main
'Affecte la macro "Mettre en majuscule" à l'évènement "Sélection modifiée" de la feuille nouvFeuille
oDoc = ThisComponent
oFeuil = oDoc.Sheets.getByName("bonjour_2")
Events = oFeuil.Events
Dim props(1) as new com.sun.star.beans.PropertyValue
props(0).Name = "EventType"
props(0).Value = "Script"
props(1).Name = "Script"
props(1).Value = "vnd.sun.star.script:Standard.Matieres.RetrouverMatiereContenuPrecedent?language=Basic&location=document"
Events.replaceByName("OnChange", props())
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office 4.1.15 sous Windows 11
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: [Calc]Copier une feuille de classeur
Bonjour,
En complément :
Pour exécuter la macro : Menu Outils>Macro>Exécuter la macro développer l’arborescence à gauche pour sélectionner le module GestionFeuille et sélectionner à droite CopierFeuilleModele. Appuyer sur le bouton [Exécuter]. Il est possible d'utiliser un raccourci clavier si c'est trop compliquer la tâches des futurs utilisateurs.
En complément :
Code : Tout sélectionner
Option Explicit
Global bool As Boolean
Const nomFeuilleModele = "Modele_A_Copier"
Const nomFeuilleCible = "Copie_"
Const bool = True
Sub CopierFeuilleModele
Dim sheetName As String
Dim oDoc As Object
Dim oSheets As Object
Dim oSheet As Object
Dim index As Integer
Dim feuilleCible As Object
oDoc = Thiscomponent
oSheets = oDoc.Sheets
index = oSheets.Count
sheetName = nomFeuilleModele
oSheet = oSheets.GetByName(sheetName)
'xray oSheets
'Méthode : copyByName(aName as string, aCopy as string, nDestination as short)
oSheets.copyByName(sheetName, nomFeuilleCible & index, index)
'écrire fonction pour incrémenter le nom de feuille
if AffectationEvents(oSheet,oSheets(index)) Then msgBox("Feuille copiée avec succès",,"Terminé")
oDoc.CurrentController.ActiveSheet = oSheets(index)
End Sub
Function AffectationEvents(oSheet,target)
Dim props(1) as new com.sun.star.beans.PropertyValue
Dim events As Object
Dim affectation() As variant
Dim eventsNames As Variant
Dim elem As String
Dim eventType As String
Dim script AS String
eventsNames = oSheet.Events.getElementNames
for each elem in eventsNames
affectation() = oSheet.Events.GetByName(elem)
if not isEmpty(affectation) then
'xray affectation()
'(0) | Structure : com.sun.star.beans.PropertyValue --> EventType | "Script"
'(1) | Structure : com.sun.star.beans.PropertyValue --> Script | "vnd.sun.star.script:Standard.Module1.Main?language=Basic&location=document"
eventType = affectation(0).Value
script = affectation(1).Value
events = target.Events
props(0).Name = "EventType"
props(0).Value = eventType
props(1).Name = "Script"
props(1).Value = script
events.replaceByName(elem, props())
end if
next
AffectationEvents = True
End Function
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
Re: [Calc]Copier une feuille de classeur
Tout d'abord , grand merci pour les retours
Concernant le raccourci ou un bouton je n'arrive pas à aller plus loin que "sélecteur de macro" et je dois poursuivre manuellement, est ce normal où ai je fait une erreur ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
7.3.6.2 libre Office Community Mac OS 12.6.5
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: [Calc]Copier une feuille de classeur
Il faut cliquer sur le petit + en regard du nom du fichier puis encore pour afficher les modules
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
Re: [Calc]Copier une feuille de classeur
Oui ,j 'avais bien compris ....mais ma question était de savoir si le raccourci ou le bouton que je pourrais créer s'arrêtait à cette étape et que la suite se faisait manuellement.... ou j'avais fait une erreur car la raccourci
ou le bouton copie la feuille ?
ou le bouton copie la feuille ?
7.3.6.2 libre Office Community Mac OS 12.6.5
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: [Calc]Copier une feuille de classeur
Un peu de lecture s'impose :
Assigner une macro à un bouton
Assigner une macro à un bouton
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
Re: [Calc]Copier une feuille de classeur
Bonjour
J'ai lu attentivement mais je n'ai pas trouvé réponse à ma question....
Créer un bouton je sais faire, lui affecter une macro aussi mais ce que je comprends pas c'est pourquoi quand je clique sur le bouton j'arrive à la page "sélecteur de macro" ce qui m'oblige à poursuivre des manipulations alors que lors de l'enregistrement de la la macro je suis arrivé jusqu'à la création de la feuille ...
Est ce donc impossible de cliquer et d'obtenir directement une copie avec les majuscules ?
J'ai lu attentivement mais je n'ai pas trouvé réponse à ma question....
Créer un bouton je sais faire, lui affecter une macro aussi mais ce que je comprends pas c'est pourquoi quand je clique sur le bouton j'arrive à la page "sélecteur de macro" ce qui m'oblige à poursuivre des manipulations alors que lors de l'enregistrement de la la macro je suis arrivé jusqu'à la création de la feuille ...
Est ce donc impossible de cliquer et d'obtenir directement une copie avec les majuscules ?
7.3.6.2 libre Office Community Mac OS 12.6.5
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: [Calc]Copier une feuille de classeur
Alors là franchement chapeau ! Joins ton fichier tel qu'il est afin d'obtenir la vrai raison. Merci
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
Re: [Calc] Copier une feuille avec des événements de feuille connectés
Bonjour
Voilà le fichier...avec le bouton pour lancer la copie de la feuille
Voilà le fichier...avec le bouton pour lancer la copie de la feuille
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
7.3.6.2 libre Office Community Mac OS 12.6.5
-
- IdOOle de la suite
- Messages : 25602
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] Copier une feuille avec des événements de feuille connectés
C'est sûr qu'en faisant n'importe quoi, ça ne fonctionnera pas.
Qu'est ce qu'exécute ton bouton, une macro COPIERMODELE qui contient :
Et la macro fait ce que tu lui demandes : exécuter une macro.
Donc utilise la bonne routine, celle que t'a fournie zeguedon.
Qu'est ce qu'exécute ton bouton, une macro COPIERMODELE qui contient :
Code : Tout sélectionner
sub COPIERMODELE
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:RunMacro", "", 0, Array())
end sub
Donc utilise la bonne routine, celle que t'a fournie zeguedon.
-
- Membre OOrganisé
- Messages : 72
- Inscription : 09 mai 2022 19:33
Re: [Calc] Copier une feuille avec des événements de feuille connectés
Désolé mais pour moi , je ne fais pas n'importe quoi !!!!
Je fais au départ les manoeuvres qu'il faut pour copier une feuille :
je déclenche "enregistrer une macro", exécuter, copier feuille modele, standard, gestion feuille , copier feuille modele...feuille copier avec succès OK et je termine l'enregistrement .....et j'ai une feuille supplémentaire
Je nomme la macro et la place sur le bouton....
Je fais au départ les manoeuvres qu'il faut pour copier une feuille :
je déclenche "enregistrer une macro", exécuter, copier feuille modele, standard, gestion feuille , copier feuille modele...feuille copier avec succès OK et je termine l'enregistrement .....et j'ai une feuille supplémentaire
Je nomme la macro et la place sur le bouton....
7.3.6.2 libre Office Community Mac OS 12.6.5
-
- ManitOOu
- Messages : 3031
- Inscription : 02 juil. 2014 17:25
Re: [Calc] Copier une feuille avec des événements de feuille connectés
Alors si ! tu fais n'importe quoi !
il faut que tu retires de ton fichier la macro que tu as faite avec l'enregistreur de macro car elle n'a absolument pas lieu d'être. Et j'insiste (même si tu persiste à croire que tu as raison et que tu fais bien).
Il faut connecter à ton bouton la macro CopierFeuilleModele et c'est tout. Et arrête avec ce p*t**n d'enregistreur de macro que tu n'utilises pas à bon escient. Merci.
il faut que tu retires de ton fichier la macro que tu as faite avec l'enregistreur de macro car elle n'a absolument pas lieu d'être. Et j'insiste (même si tu persiste à croire que tu as raison et que tu fais bien).
Il faut connecter à ton bouton la macro CopierFeuilleModele et c'est tout. Et arrête avec ce p*t**n d'enregistreur de macro que tu n'utilises pas à bon escient. Merci.
Ajout : En complément : la solution du bouton n'est pas la meilleure sauf si le bouton est sur une autre feuille que celle qui doit-être copiée car il sera copié lui aussi à chaque fois. L’idéal est le raccourci clavier. |
-
- PassiOOnné
- Messages : 692
- Inscription : 20 déc. 2017 14:45
Re: [Calc] Copier une feuille avec des événements de feuille connectés
Bonjour,
En attendant que BERNO revienne nous dire ce qu'il en est
Oui et avec le bouton placé dans une barre d'outils dédiée.
Lire viewtopic.php?t=40146
En attendant que BERNO revienne nous dire ce qu'il en est
+1
Oui et avec le bouton placé dans une barre d'outils dédiée.
Lire viewtopic.php?t=40146
OpenOffice 4.1.15 - Windows 10
-
- RespOOnsable forum
- Messages : 12457
- Inscription : 08 nov. 2005 16:23
- Localisation : Caen, France
Re: [Calc] Copier une feuille avec des événements de feuille connectés
Deux mois plus tard, plus aucune nouvelle.Dernière visite : 16 mai 2023 23:57
Je clôture à sa place.
Un remerciement fait aussi plaisir aux bénévoles qui vous ont consacré de leur temps.
La courtoisie fait également partie de la philosophie du logiciel libre.
En cas d'erreur, veuillez lire ce sujet pour une éventuelle réouverture de votre question :
ftopic52748-reouverture-de-question-fermee.html