Stocker valeur de pls variables pour l'ensemble d'un projet

Pinetti

XLDnaute Nouveau
Bonjour à tous,

Me revoici pour de nouvelles questions :p

A.)
J'aimerais cette fois ci savoir s'il existe un mayen de stocker la valeur de plusieurs variables et de les utiliser dans ni'importe quelle procédure.

Dans mon fichier, une macro s'execute dès l'ouverture de ce fichier(elle se trouve dans ThisWorbook). Elle génère différentes variables.

Les variables en question sont intLigneBDD1 et intLigneBDD2. Je souhaiterai faire en sorte que ces variables soient conservées en permanence et réutilisées dès que c'est nécessaire.



B.)
J'ai également crée une Combobox mais je n'arrive pas à faire en sorte que la valeur sélectionner dans sa liste apparaisse dans la Combobox.

Quelqu'un peut m'aider ? :)


Le fichier est attaché,

Merci d'avance
 

Pièces jointes

  • 222.xlsm
    47.3 KB · Affichages: 80
  • 222.xlsm
    47.3 KB · Affichages: 97
  • 222.xlsm
    47.3 KB · Affichages: 88

Paf

XLDnaute Barbatruc
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

bonjour,
pour le A)
il faut déclarer les variables en public dans un module afin d'être accessibles de partout

pour le B)
pas compris le soucis

A+
 

Dranreb

XLDnaute Barbatruc
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

Bonjour.

Information: vos variables Public dans ThisWorkbook sont conservées et utilisables dans tout le projet, à condition de les faire précéder de ThisWorkbook suivi d'un point.
Le mot clé Public dans les modules de Feuille, d'Userform, du document et de classes y définissent en effet:
- Les variables comme des propriétés en lecture/écriture,
- Les procédures comme des méthodes.
Elle leurs sont propres, leur nom n'a pas besoin d'être unique dans tous le projet comme c'est le cas dans un module ordinaire.
 

Pinetti

XLDnaute Nouveau
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

Hey, merci pour vos réponses et désolé pour le retard... beaucoup de choses a faire ces temps ci

Alors intLigneBDD1 et intLigneBDD2 sont déclarées Public dans ThisWorkbook (tout au début) elles prennent une valeur dans cette même feuille.

J'ai fait un test en faisant afficher une MsgBox qui affiche la valeur de intLigneBDD1 dans la feuille "Recherche"
Cela signifie que dans la feuille Recherche j'appelle les variables générée dans ThisWorkbook

Cependant, aucune valeur ne s'affiche dans ma MsgBox. Je ne comprend pas pourquoi. ya -til une facon de faire spéciale pour récupérer la valeur d'une variable dans une autre feuille ?


Pour le 2eme soucis,

En fait c'est très simple, j'ai une Combobox, mais lorsque je sélectionne une valeur du menu déroulant, la Combobox reste vide, cela fait comme si je n'avais rien sélectionné...

Comment faire en sorte que ma valeur choisie s'affiche?


Merci d'avance
 

Dranreb

XLDnaute Barbatruc
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

Bonjour.
Alors intLigneBDD1 et intLigneBDD2 sont déclarées Public dans ThisWorkbook
Donc ce sont des propriétés de ThisWorkbook puisque celui ci appartient à la rubrique "Microsft Excel Objets" et est donc autre chose qu'un module ordinaire. MsgBox ThisWorkbook.intLigneBDD1 devrait marcher, pareil pour l'autre.

Jamais vu de ComboBox qui n'affiche pas ce qu'on y sélectionne. À moins qu'un bout de code l'efface aussitôt dans une ComboBoxX_Change
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

Bonsoir Pinetti
Bonsoir le Fil
Bonsoir le forum

Pour le problème de Combobox , ne se peut il que le ComboBox ait deux Colonnes et que celle qui est afficher soit la vide.
Pas testé car pas de Fichier (pour appuyer Dranred !!!!!) lol
Joindre un classeur, support potentiel de la solution à votre problème concernant des modèles de données et résultats souhaités y figurant, n'est pas une obligation: Ça ne fait qu'entre ouvrir la possibilité d'obtenir une réponse de ma part !
(voire de la vôtre: un problème bien posé étant à moitié résolu)
Bonne fin de Soirée
Amicalement
Jean Marie
 

Pinetti

XLDnaute Nouveau
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

@Dramreb

Merci, le problème de variable est résolu :)

Mais encore une petite question:
Si je veux enregistrer la valeur d'une variable dans une cellule, y a t-il un code adéquat ?


Pour le soucis de Combobox,

il y a un fichier joint dans le tout premier post,
mais ci-dessous est le code associé à ma Combobox

Private Sub ComboBox1_DropButtonClick()




Me.ComboBox1.Clear
For Each c In Worksheets("BD_GEN").Range("C1:C150")
If c.Value <> "" Then
ComboBox1.Text = c.Value
If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem c.Value
End If
Next c
ComboBox1.ListIndex = -1



Dim i As Byte, j As Byte
Dim temp As String

With ComboBox1
For i = 0 To .ListCount - 1
For j = 0 To .ListCount - 1
If .List(i) < .List(j) Then
temp = .List(i)
.List(i) = .List(j)
.List(j) = temp
End If
Next j
Next i
End With


MsgBox (ThisWorkbook.intLigneBDD1)


End Sub


Dans un premier temps je crée la liste déroulante de ma Combobox,
puis j'élimine les doublons

C'est fait à partir de code trouvé sur des forum, étant novice je ne pouvais pas tout faire moi même.


Merci d'avance
 

Dranreb

XLDnaute Barbatruc
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

Bonjour.
Personnellement je classe d'abord et j'élimine les doublons ensuite. C'est plus facile car ils sont ensemble après le classement.
Et je confie tout ça à tout ou partie des modules de services joints, qui ne bougent pas.
 

Pièces jointes

  • ComboBoxCasc.zip
    18.5 KB · Affichages: 39
  • ComboBoxCasc.zip
    18.5 KB · Affichages: 40
  • ComboBoxCasc.zip
    18.5 KB · Affichages: 30

Pinetti

XLDnaute Nouveau
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

Merci pour la réponse mais c'est trop complexe pour moi, j'ai besoin de plus de recule pour me plonger dans les fichiers :)

Pourriez vous cependant arranger mon code pour qu'il soit mieux optimiser ?

Je ne comprends toujours pas pourquoi il m'est impossible de sélectionner une valeur dans cette foutu combobox.
J'ai essayé plusieurs code et le résultats est toujours le même

Est ce lié au fait que mon code se trouve dans cette procédure ?

Private Sub ComboBox1_DropButtonClick()

End Sub

Merci,
 

Dranreb

XLDnaute Barbatruc
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

Attention, si je commence à "l'arranger", le peu que j'en ai vu m'a tout de suite convaincu que je le réécrirait entièrement !
Mais il faudrait que je sache ce que vous voulez faire. Pouvez vous le joindre en .xls que je puisse le lire directement, il y a un problème systématique, à la conversion chez moi, pour les contrôles incorporés aux feuilles de calcul.

Trouvé ça dans l'aide sur cet évènement :
Chacune des actions précédentes, dans le code ou dans l'interface, fait apparaître la liste déroulante du contrôle. Le système déclenche l'événement DropButtonClick lorsque la zone de défilement disparaît.
or elle disparait quand on y sélectionne un élément, et ComboBox1.ListIndex = -1 l'efface effectivement !
 

Pinetti

XLDnaute Nouveau
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

Merci cela fonctionne :)

@Dranreb,
je vais le laisser tel quel il vaut mieux. Au moins je m'en sort. mais merci quand même

Par contre j'ai de nouveau un soucis.
Dans le nouveau fichier joint (333.xlsm) vous pouvez voir dans la feuille "Recherche" une sorte de formulaire .
En fait, j'effectue un filtrage instantané des données au fur et à mesure que l'on renseigne les différentes cases.

Le problème qui se pose est le suivant.

La Combobox associée à "Responsible person" doit être alimenter par la colonne "C" de l'onglet "BD_GEN"
Or je n'arrive pas à faire en sorte que cela fonctionne.
La Combobox s'alimente avec la colonne "C" de la feuille "Recherche".
J'ai essayé de préciser la source dans le code (avec Worksheets("BD_GEN"), mais j'obtiens une erreur.

Comment corriger cela ? parce que franchement je ne vois pas du tout pourquoi il m'est impossible de changer la source..

Le fichier combine l'anglais le français, et l'allemand. C'est un peu brouillon, veuillez m'en excuser...

Merci d'avance
 

Pièces jointes

  • 333.xlsm
    88.5 KB · Affichages: 51
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

Bonjour.
Je ne peut pas intervenir. Les contrôles dans les feuilles s'implantent mal chez moi à le conversion des .xlsm en .xls
Juste vu qu'il manque des Feuil2 (c'est ce que vous avez laissé dans la fenêtre de propriété comme nom VBA de l'objet Worksheet correspondant à la feuille connue d'Excel sous le nom de "BD_GEN", moi je les renomme toujours) suivis d'un point devant des Range de sorte qu'il assume peut être une autre feuille que celle ci.
Il est complètement absurdissime de comparer des variable ou des propriétés Boolean à True ou False :
True = True c'est True, et
False = True c'est False, donc
CheckBox1.value = True c'est CheckBox1.value et
CheckBox1.value = False c'est Not CheckBox1.value
Pour comparer deux expressions variables Boolean c'est différent, mais même là ce ne sont pas les opérateurs de comparaisons qu'il faut utiliser mais Eqv à la place de = et Xor à la place de <>
 
Dernière édition:

Pinetti

XLDnaute Nouveau
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

Merci pour votre réponse et vos explications concernant les variables.
Maintenant que vous le dites, oui c'est plutôt stupide comme démarche :p


Concernant mon soucis de "source"

J'ai essayé avec Feuil2 devant les "Range" mais pas plus de succès.
J'obtiens l'erreur suivante:

Object variable or With block variable not set
 

Dranreb

XLDnaute Barbatruc
Re : Stocker valeur de pls variables pour l'ensemble d'un projet

Joignez ça au format .xls
Faites donc un vrai userform, ce sera plus simple.
Et dites moi ce que vous voulez faire exactement parce que je n'y comprend rien.
Vous auriez bien des recherches instantanées avec mes modules et avec beaucoup moins de difficulté
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16