[VBA][XL]Variable constante

Résolu/Fermé
Signaler
Messages postés
10
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
30 octobre 2013
-
Messages postés
10
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
30 octobre 2013
-
Bonjour,

Désolée de vous déranger, mais je m'arrache un peu les cheveux pour trouver une solution à mon problème. J'ai essayé de trouver une piste sur les sites d'aide vba avec différents mots clefs, mais en vain, alors je me lance directement.
Mon problème est le suivant:
Dans le but de faciliter la gestion des "papiers" pour la petite pme dans laquelle je travaille, j'ai fait un tableau excel programmé en vb. Sauf que mon chef n'y connait pas grand chose en prog et me demande de faire évoluer le fichier de temps en temps. Un exemple flagrant est de rajouter une colonne dans le tableau. De ce fait, j'ai pris l'initiative d'attribuer un nom à chaque colonne à la première ligne de mon tableau. Par exemple, la colonne qui regroupe les n° de commande a comme texte "No_Cde" dans la première case de la-dite colonne.
Du coup, je déclare une variable Co1 qui ira chercher cette colonne.

Jusque là, rien de bien compliqué. Mais pour ne pas réécrire les affectations de variable des différentes colonnes (j'en suis déjà à 16 colonnes) dans chaque sub, je bloque.

En gros, des infos que j'ai pu regrouper, j'ai fait la chose suivante:
Sur VBA, dans "ThisWorkbook":
______________________________
Option Explicit

'Affectation des variables

Public Co1 As Byte

Private Sub Workbook_Open()

'affectation de Co1
Co1 = 1
For i = 1 To 30
'Sotie de la boucle à la colonne Co1
If Cells(1, i) = "No_Cde" Then Exit For
'Passage à la colonne suivante
Co1 = Co1 + 1
Next

End Sub
___________________________________

"No_Cde" est dans la case "K1", donc Co1=11

Jusque là pas de souci.
Le problème c'est que je n'arrive pas à conserver la valeur de la variable pour l'utiliser dans une autre sub (qui peut être dans une feuille, un module ou une userform).

Ca me renvoie un message d'erreur "variable non définie".

J'ai appris à coder il y a quelques années durant ma formation continu, du coup je m'en sors un peu en allant récupérer des vieux souvenirs et les aides sur les forums, mais là je suis coincée.

Merci d'avance pour votre aide!



4 réponses

Messages postés
16198
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
23 janvier 2022
1 580
Bonjour,
Faite votre recherche dans le module ou feuille ou UF ou vous en avez besoin.
C'est plus simple.

A+
0
Messages postés
10
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
30 octobre 2013

Bonjour, c'est déjà ce que je fais. Mais je souhaite justement diminuer le nombre de ligne de code car j'ai plusieurs sub, dans plusieurs modules, plusieurs feuilles et plusieurs UF. Donc je dois répéter les lignes de code à chaque fois! Ca surcharge le code pour rien.
0
Messages postés
16198
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
23 janvier 2022
1 580
Re,

dans un module:

Global Co1 As Byte

ou

Public Co1 as byte

Bonne suite
0
Messages postés
10
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
30 octobre 2013

J'ai essayé dans un module. Je n'arrive pas non plus à ce que je veux. Il ne trouve pas les variables. Ni en public, ni en global.
0
Messages postés
16198
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
23 janvier 2022
1 580
Re,

regardez cette exemple:

https://www.cjoint.com/?BKjpWiFAUwA

A+
0
Messages postés
10
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
30 octobre 2013

l'exemple marche. une chose m'étonne pour la déclaration de la variable dans le module1: il n'est pas nécessaire de mettre "option explicit" avant?
0
Messages postés
10
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
30 octobre 2013

toujours en ne comprenant pas pourquoi, j'ai supprimé l' "option explicit" et mon programme marche.

MERCI
0
Messages postés
10
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
30 octobre 2013

Pour faire simple, je souhaite déclarer des variables à l'ouverture du fichier xl, leur attitrer une valeur (par une sub workbook_open) et ne plus y toucher. Je veux ensuite pouvoir utiliser ces variables comme des références. Mais pour ce faire, il faut que les variables gardent leur valeur.
0