[VBA][XL]Variable constante

Résolu/Fermé
miko96 Messages postés 10 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013 - 9 nov. 2012 à 11:16
miko96 Messages postés 10 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013 - 9 nov. 2012 à 16:07
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

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
9 nov. 2012 à 11:25
Bonjour,
Faite votre recherche dans le module ou feuille ou UF ou vous en avez besoin.
C'est plus simple.

A+
0
miko96 Messages postés 10 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013
9 nov. 2012 à 11:35
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 9/11/2012 à 11:54
Re,

dans un module:

Global Co1 As Byte

ou

Public Co1 as byte

Bonne suite
0
miko96 Messages postés 10 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013
9 nov. 2012 à 13:50
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
9 nov. 2012 à 15:49
Re,

regardez cette exemple:

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

A+
0
miko96 Messages postés 10 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013
9 nov. 2012 à 15:58
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
miko96 Messages postés 10 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013
9 nov. 2012 à 16:07
toujours en ne comprenant pas pourquoi, j'ai supprimé l' "option explicit" et mon programme marche.

MERCI
0
miko96 Messages postés 10 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013
9 nov. 2012 à 14:11
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