PPN83
Messages postés24Date d'inscriptiondimanche 8 octobre 2006StatutMembreDernière intervention15 septembre 2010
-
31 janv. 2007 à 21:23
PPN83
Messages postés24Date d'inscriptiondimanche 8 octobre 2006StatutMembreDernière intervention15 septembre 2010
-
4 févr. 2007 à 17:24
Bonjour,
Je m'explique toutes mes macros sont déclarées en Public, mais mes variables créees dans le module X ne sont pas reconnues dans le module Y. Comment faire ?
Merci d'avance
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 3 févr. 2007 à 02:45
Je ne suis pas certain, mais je pense que tu mélanges les modules.
Il y a les classes - Forms ou modules de classe (module.cls)
Il y a les UserForms (module.frm)
et il y a les modules "standards" (module.bas)
C'est dans ce dernier que tu dois déclarer tes variables Public pour qu'elles soient reconnues dans tout le programme, sans devoir spécifier son origine.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 1 févr. 2007 à 09:18
Global est un mot clé qui n'existe plus en VB6. S'il est encore reconnu c'est pour des raison de compatibilité avec les anciens basic
mais il est automatiquement traduit en Public
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
PPN83
Messages postés24Date d'inscriptiondimanche 8 octobre 2006StatutMembreDernière intervention15 septembre 2010 2 févr. 2007 à 22:25
explication
à partir d'un formulaire 1er userform(Contrat) (Module X)je remplis des données dans un tableau(base). la première colonne du tableau correspond à un matricule. je recherche un matricule RecMat et je colle les données de la ligne correspondante dans une feuille (Recherche)sur la ligne A2:AB2. Chaque cellule est la source des valeurs qui s'affichent dans les différent champs d'un deuxième Userform(Visio) (Module Y). le but est que quand je modifie une valeur dans Visio je veux que la cellule modifiée le soit également dans le tableau. Mon idée était de comparer la ligne du tableau avec a2:ab2 et si différent faire un copier coller dans le tableau .
Ai-je été clair!!!
voici donc la partie tronquée de mon progrmme
MODULE X
Public RecMat As Integer 'cest le matricule rechercher
Public Recherche
Public c As Range
Public clé
Public Sub CmdRech_Click()' rechercher un matricule
RecMat = InputBox("Entrer le N° Matricule")
Set Recherche = Worksheets("Base").Columns(1).Find(RecMat)
If Not Recherche Is Nothing Then
MsgBox Recherche.Address()'me sert à identifier le N° de la ligne pour l'instant
Recherche.Select
ActiveCell.EntireRow.Select
Else
MsgBox "Le matricule n'existe pas", vbCritical, "Erreur de saisie"
Exit Sub
End If
VisioCAE.Show 'affichage des données dans le formulaire 2
End Sub
Module Y 'module du 2ème userform
Public Sub CmdRet_Click()' retour sur formulaire 1 (contrat)
MsgBox Recherche.Address()' a ce niveau il ne reconnaît pas Recherche
Recherche.Select
ActiveCell.EntireRow.Select