Erreur de variable

Bonjour,

j'ai déclaré des variables

'
'**********************  Déclaration des variables **********************
'

Dim Journ, Book, Poeme, News, Conte, Blog As String
'Journ = ""
Book = "Logiciel_Ecriture\Blog\Ouvrir_Blog.onetoc2"

mais un message d'erreur apparaît dès l'ouverture de l'UserForm

capture

Merci

Bonsoir

Le message est assez explicite : On n’initialise pas de variable en dehors d'une procédure (macro)

A part les constantes

Ton code pourrait se présenter comme ceci

Option Explicit
Dim Journ, Book, Poeme, News, Conte, Blog As String

Const Truc As String = "Bonjour"            ' Ceci est un exemple

Sub test()
  Journ = 100
  Book = "Logiciel_Ecriture\Blog\Ouvrir_Blog.onetoc2"
  ' Attention toutes tes variables, sauf Blog, sont de type Variant
End Sub

Bonsoir,

C'est écrit !

Tu formules une instruction qui ne être formulée qu'à l'intérieur d'une procédure, soit à un endroit quelconque entre 2 instructions de type : Sub.... End Sub, Function... End Function, etc.

Note aussi que tu as déclaré une variable de type String, et toutes les autres de type Variant. Je ne suis pas sûr que ce soit volontaire.

Cordialement

Ferrand

Bonjour Banzai64, MFerrand,

Ok j'ai compris.

Pour les variables de type variante, je ne connaissais pas et je ne l'ai pas fait volontairement.

Mais ce que je voulais faire c'est déclarer avant mes codes les variables, car si le chemin du fichier change cela m'évite de parcourir tout le code pour changer les chemins.

Merci à vous deux pour votre aide.

7tableau-bord.xlsm (136.29 Ko)

Salut !

Ton idée est logique, mais comme te l'a dit Banzai c'est des constantes et non des variables qu'il faut déclarer.

Là tu affectes la valeur dans la déclaration même : Const Book As String = "tonchemin"

Et effectivement, si tu as les chemins à modifier tu les auras rassemblés au même endroit.

Tu avais entrepris de les déclarer dans un module de feuille (Userform), module privé, ce n'est peut être pas le meilleur endroit car ça limite l'accès. Tu as intérêt à les déclarer dans un module standard et en déclarant en constantes publiques (Public Const Book....) tu étends leur portée au-delà du module et tu peux les appeler directement de partout dans ton projet dans avoir à spécifier d'emplacement.

Cordialement

Ferrand

Bonjour MFerrand,

C'est vrai mon erreur est de toujours laisser le mode privé.

Merci pour tes cours.

Je vais essayer de suite.

Très sincèrement

Serenodo

Bonjour,

J'ai fait les changements

Plus de private

les variables

Const Fichier As String = "Deroulement.one"

Const Blog As String = "Logiciel_Ecriture\Blog\& Fichier"

le code qui est joint à un bouton

Sub CmdBtnBlogDoc_Click()
Dim a
a = Shell("c:\windows\explorer.exe C:\Users\Serenodo\Documents\OneDrive\Server\Serenodo\& Blog", vbNormalFocus)
End Sub

Cela ouvre bien l'explorer,mais pas au bonne endroit.

Merci

Bonjour

Déplaces les guillemets

Sub CmdBtnBlogDoc_Click()
Dim a
a = Shell("c:\windows\explorer.exe C:\Users\Serenodo\Documents\OneDrive\Server\Serenodo\"& Blog, vbNormalFocus)
End Sub

Je viens de voir aussi

Dans une constante tu ne peux pas utiliser une variable (je pense que c'est ce que tu veux faire)

Const Blog As String = "Logiciel_Ecriture\Blog\& Fichier"

Il faut passer dans ta procédure Userform_Initialize par la réunion de ces 2 constantes

exemple

Const Fichier As String = "Deroulement.one"
Const PathBlog As String = "Logiciel_Ecriture\Blog\"
Dim Blog As String
Private Sub UserForm_Initialize()
  Blog = PathBlog & Fichier
End Sub

Bonjour Banzai64,

Franchement si j'arrive à trouver du travail dans excel , je vous dois à tois et au site, une reconnaissance infinie.

Mais pas besoin que je trouve du travail pour vous octroyer tout mon respect et ma reconnaissance infinie.

Merci très sincèrement

Rechercher des sujets similaires à "erreur variable"