Utiliser une Sub d'un module dans d'autres modules

Bonjour,

J'ai une Sub avec des variables qui est utilisée dans plusieurs modules.

Est-il possible de mettre cette sub avec les variables dans un module et de faire appel de cette Sub à partir d'autres modules qui ont les mêmes variables ?

Je n'ai pas trouvé de solutions sur le net et le livre de VBA que je possède

Bonjour,

Alors oui c'est possible, il suffit de déclarer dans un module à part (le Module 1 par exemple) les variables qui doivent être communes à tous le classeur.

Ces variables pourront être utilisée par tous les modules et conserveront leur valeur jusqu'à ce que un des VBA la change.

Exemple :

Module 1

Public Flag As Integer

Public Flag2 As Integer

Public Flag3 As Integer

J'espère que cela t'aidera

A+

Chris

Bonsoir et merci de la réponse,

Pour l'instant, je n'ai pas réussi en déclarant les variables "Public" et la "Sub" en "Public" dans le 1ier module

Je ne sais pas si le problème vient que dans les autres module mes variables sont déclarées en "Dim".

J'ai aussi essayer de déclarer ma "Sub" en "Public" dans son module avec les variables déclarées en "Public" dans le 1ier module mais ça n'a pas fonctionné !!!

Je ne sais pas si le problème vient que j'ai Office Pro Plus 2019 !!!!

J'essaierai de refaire des exemples avec un fichier vierge et non déjà réalisé

Bonsoir,

Il ne faut pas refaire les dim avec une variable public sinon on repart de 0 avec la variable. Tu déclares la variable u e fois comme public et tu l’utilises dans tous les vba du classeur

A+

Chris

Bonjour et merci de la réponse,

J'ai supprimé les "Dim" des variables déclarées "Public" et ça fonctionne.

Par contre, si je veux utiliser une "Sub" dans plusieurs Module, je la déclare "Public" dans un Module et la supprime des autres modules ?

Re,

Pour une "Sub" identique dans plusieurs mobiles, j'ai créé une "Public Sub" dans un module et j'ai pu l'utiliser dans d'autres modules

Par contre, je ne pense pas que l'on puisse déclarer une variable avec sa valeur constante en "Public" dans le cas où de plusieurs module j'appelle l'ouverture du même fichier excel pour lui documenter plusieurs informations

Bonjour JeanF44

Un VBA ne doit pas être déclaré Public il est par essence Public s'il se trouve dans un Module ou dans l'onglet THISWORKBOOK.

Seuls les VBA développé dans les onglets Feuille sont spécifiques à la Feuille et non au classeur.

Tous les VBA se trouvant dans les modules ou dans THISWORKBOOK peuvent être utilisés dans le classeur à n'importe quel moment à partir d'un autre VBA se trouvant dans le classeur.

C'est ce que l'on appelle un sous-programme.

Quand on désire utiliser un sous programme, il suffit de l'appeler par son nom dans un autre VBA.

Par exemple tu développes un VBA de TRI d'une plage. Le nom du VBA est Sub TRI()

Dans un autre VBA tu développes une série d'opérations et tu désires que le tri se refasse car tu as changé les données, il suffit de mettre l'instruction TRI et le VBA en cours va déclencher le VBA TRI et quand celui-ci aura terminé, excel reviendra automatiquement dans le VBA de départ et continuera les opérations que tu désires faire.

Il faudrait pour mieux te guider que tu envoies ton classeur afin que je puisse me rendre compte de ce que tu désires faire car il y a de nombreuses façons de gérer les VBA et je ne peux pas te faire un manuel complet dans ce forum...

Pour ce qui est est des variables constantes, cela existe effectivement.

Ce sont des variables qui servent, comme leur nom l'indique, à mettre des valeurs constantes càd immuables.

On ne change une variable constante qu'en changeant la programmation du VBA et en modifiant sa déclaration.

Une variable constante se déclare de la manière suivante :

Const NbreTrim As Integer = 4

La constante s'appelle NbreTrim et sa valeur est 4

Si la constante doit être utilisée par tous les VBA du classeur, il faut également la déclarée comme Public dans un module :

Public Const Nom As String = "Charles"

Ceci n'est pas exhaustif : pour être plus précis envoies ton projet et notamment expliques pourquoi tu veux répéter un même SUB dans plusieurs modules

A+

Chris

Bonsoir et merci de tes réponses,

J'ai suivi tes instructions pour les VBA dans les modules pouvant servir dans différents modules et c'est OK

Idem pour la variable constante, j'ai suivi tes explications et c'est OK

Encore merci pour tes bonnes informations

De rien et bonne continuation

Chris

Rechercher des sujets similaires à "utiliser sub module modules"