XL 2016 Lancer une macro depuis une autre macro d'une feuille différentes

ArhutH

XLDnaute Nouveau
Bonjour à tous, je travaille en bureau d'études et pour me simplifier la vie sur les éléments standards j'ai créer un classeur avec différentes feuille pour le calcul, le chiffrage ect...

Pour les calculs j'ai utilisé des formules excel pour faire les calculs de dimensions aucun problème sur ça.
J'ai aussi mis des macros "reset" pour enlever toutes les valeurs que j'ai renseignées ( des macros toutes simples avec des range("A1").clearcontents).

Le truc étant que je voudrais que je voudrais faire un bouton reset général mais je ne veux pas faire de copier coller des macro reset existante parce que si je venais a modifier les macro reset de page sans màj le général ça pourrait supprimer des formules importantes.
Comment est je peux faire une macro qui lancerait une autre macro d'une autre feuille ?

Merci d'avance à vous

Ps: toute les macros sont sur le mêmes fichiers
 
Solution
Re

Avec cette nouvelle version la macro RAZ générale va lancer successivement la 1er macro qui se trouve dans la feuille "Calcul" puis la 2eme macro qui se trouve dans la feuille "Chiffrage"

Donc toute modif d'une macro de 2 macros est répercutée immédiatement.

Si tu veux autre chose explique quoi......

@Phil69970

VLMX

XLDnaute Nouveau
Alors on commence bien les macro de reset par page sont en public sub par contre la macro générale est en private sub.
Du coup tu peux faire l'inverse, en fait si tu as plusieurs macros qui sont lancé par une macro générique dans le meme classeur, tu peux mettre seulement la générique en public et appeller celle ci depuis un autre classeur

Architecture :

Classeur 1 :
(Public) Macro générique appellant :
- (Sub ou private Sub) Macro 1
- (Sub ou private Sub) Macro 2
- (Sub ou private Sub) Macro 3
etc ...

Classeur 2 :
Macro appellant la macro générique du classeur 1


Je sais pas si mon explication est tres clair ... ?
 

ArhutH

XLDnaute Nouveau
Du coup tu peux faire l'inverse, en fait si tu as plusieurs macros qui sont lancé par une macro générique dans le meme classeur, tu peux mettre seulement la générique en public et appeller celle ci depuis un autre classeur

Architecture :

Classeur 1 :
(Public) Macro générique appellant :
- (Sub ou private Sub) Macro 1
- (Sub ou private Sub) Macro 2
- (Sub ou private Sub) Macro 3
etc ...

Classeur 2 :
Macro appellant la macro générique du classeur 1


Je sais pas si mon explication est tres clair ... ?
Je n'ai pas forcément compris mais bon je me penche dessus.

Par contre aucune idée pourquoi mais mon nom de macro est bizarre j'avais jamais remarqué :
VB:
Public Sub RESET_Click()

Application.ScreenUpdating = False

Range("k6").ClearContents

...


Range("n34:n46").ClearContents
Range("n48:n99").ClearContents
Range("M27:M28, j1:l1, n1:o1").ClearContents


End Sub
 

VLMX

XLDnaute Nouveau
Je n'ai pas forcément compris mais bon je me penche dessus.

Par contre aucune idée pourquoi mais mon nom de macro est bizarre j'avais jamais remarqué :
VB:
Public Sub RESET_Click()

Application.ScreenUpdating = False

Range("k6").ClearContents

...


Range("n34:n46").ClearContents
Range("n48:n99").ClearContents
Range("M27:M28, j1:l1, n1:o1").ClearContents


End Sub
C’est une macro qui se déclenche au click sur un bouton nommé RESET ?
 

vgendron

XLDnaute Barbatruc
Re,
pourquoi mettre des macros en public?
on parle de quoi exactement.. on est sur plusieurs classeurs? ou un seul avec plusieurs feuilles?
les macros sont ou? dans un module standard??
bref... l'aveuglette c'est bien, mais il faudrait penser à poster un fichier en guise d'exemple sur lequel on pourrait travailler directement.
 

ArhutH

XLDnaute Nouveau
Re,
On est sur un seul classeur mais plusieurs feuille:
-une feuille pour tout ce qui est calcul avec un bouton reset
-une feuille pour tout ce qui est chiffrage avec un bouton reset
-une feuille qui permet de preparer la mise en plans (avec une macro pour envoyer les données vers autocad mais qui n'est pas concerné pour le bouton reset)

-une feuille générale avec un recap des données et une mises en pages pour pouvoir imprimer un devis avec le bouton reset général

Si je pouvais poster un fichier je l'aurait déjà fait mais vu que il y a des données de calculs propre à l'entreprise avec toute la base de prix enregistrées dessus le fichier est un peux confidentiel...
 

Phil69970

XLDnaute Barbatruc
Bonjour @ArhutH , @VLMX , @vgendron

@ArhutH :

Si je pouvais poster un fichier je l'aurait déjà fait mais vu que il y a des données de calculs propre à l'entreprise avec toute la base de prix enregistrées dessus le fichier est un peux confidentiel...
Rien ne t’empêche de nous fournir un fichier représentatif et anonymisé hormis ta volonté donc si tu ne l'as pas, tu veux que nous nous l'ayons 🤔

C'est quoi représentatif ?
- représentatif, même organisation des lignes et des colonnes, mêmes libellés, mêmes noms de feuilles...
- anonymisé, pas de données personnelles réelles tels nom, n° sécu, adresse ...
- simplifié, une quinzaine de lignes reproduisant l'ensemble des différents cas envisageables

*Éventuellement préciser l'ordre de grandeur des lignes à traiter, exemple mon fichier comporte 1 000 lignes ou bien 200 000 lignes ==> la méthodologie peut être différents.

Une demande claire donne très souvent une réponse rapide et qui correspond au mieux à la demande.

PS: On peut effacer une feuille sans effacer les formules avec

SpecialCells(xlCellTypeConstants)

@Phil69970🤔
 

ArhutH

XLDnaute Nouveau
Bonjour @ArhutH , @VLMX , @vgendron

@ArhutH :


Rien ne t’empêche de nous fournir un fichier représentatif et anonymisé hormis ta volonté donc si tu ne l'as pas, tu veux que nous nous l'ayons 🤔

C'est quoi représentatif ?
- représentatif, même organisation des lignes et des colonnes, mêmes libellés, mêmes noms de feuilles...
- anonymisé, pas de données personnelles réelles tels nom, n° sécu, adresse ...
- simplifié, une quinzaine de lignes reproduisant l'ensemble des différents cas envisageables

*Éventuellement préciser l'ordre de grandeur des lignes à traiter, exemple mon fichier comporte 1 000 lignes ou bien 200 000 lignes ==> la méthodologie peut être différents.

Une demande claire donne très souvent une réponse rapide et qui correspond au mieux à la demande.

PS: On peut effacer une feuille sans effacer les formules avec



@Phil69970🤔
Je peut toujours vous donner ça.
Les formules font n'importe quoi vu que j'ai supprimer les valeurs de la base de données même si j'ai essayer de garder l'ensemble cohérent.

Ps: l'espace this worbook me sert de espace de travail pour la macro autocad ne pas y prêter attention
 

Pièces jointes

  • Feuille de chiffrage et calcul.xlsm
    350.7 KB · Affichages: 5

ArhutH

XLDnaute Nouveau
Plus compliqué que ça les prix sont déterminé par les longueurs et les sections ect...

J'ai 4 feuilles le calcul, le chiffrage, la mise en plans et la feuilles générale.
J'ai un bouton reset sur la feuille calcul et un sur la feuille chiffrage

Je voudrais faire un bouton réset générale sur la feuille générale qui "activerais" les boutons reset ou lancerais les macros associés des feuilles chiffrage et calculs.
 

Phil69970

XLDnaute Barbatruc
Re

Je te propose ce fichier :

J'ai revu le code de la feuille 1 et 2 (Calcul et chiffrage)
J'ai mis en place le module1 avec le code pour la RAZ générale

Je te laisse faire les tests et remettre la sauvegarde en place.

'***** ATTENTION ****************************
'***La sauvegarde est déactivée pour les tests
'********************************************

*Modifier le nom interne du bouton de commande ne me semble pas des plus pertinents avec le nom que tu lui as donné.
Perso, pour une meilleure compréhension du code quand (et si) on modifie le nom interne d'un bouton (ce n'est pas obligatoire bien sur) il est préférable de lui donner un nom parlant et en lien avec son nom d'origine.

Exemple qui n'ont rien avoir avec ton fichier :
CmdRaz pour bouton de commande de la RAZ
CmdAjout pour bouton de commande ajout
TxtPrixHT pour le textbox prix HT
LblNom pour un label du nom de personne
LblPrenom pour un label du prénom de personne etc .....

Ce n'est que des exemples tu peux bien sur adopter ta propre codification mais l'avantage n'importe qui relit ton code voit tout de suite à quoi il a affaire....

*Le renommage du nom interne est beaucoup plus pertinent lors d'un code assez compliqué et non d'un code simple comme le tien

*Merci de ton retour

@Phil69970
 

Pièces jointes

  • Feuille de chiffrage et calcul V1.xlsm
    359.5 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 175
Membres
112 677
dernier inscrit
Justine11