Public Const

Bonjour,

j'ai un problème avec cette macro. Si je déclare ma valeurs "Parcours" comme ci-dessous "Const Parcours = 6", mon script ne fonctionne pas alors que si je déclare "Dim Parcours as integer", Parcours =6" aprés le Sub, cela fonctionne. Ma constante est mal déclarée ?

Merci de votre aide.

Option Explicit

Const Parcours = 6

Sub Données_Parcours()
'remplit les lignes dont le champs Parcours est rempli
Dim premiereligne, derniereligne, Parcours As Integer
Dim i, j As Integer

    premiereligne = Application.InputBox("premiere ligne")
    derniereligne = Application.InputBox("derniere ligne")

    For i = premiereligne To derniereligne
        If Cells(i, Parcours).Value = "Oursinieres" Then
            Cells(i, Parcours - 4).Value = "course à pieds"
            Cells(i, Parcours - 3).Value = 14.27
            Cells(i, Parcours - 2).Value = 360
        ElseIf Cells(i, Parcours).Value = "A/Boulot" Then
            Cells(i, Parcours - 4).Value = "vélo"
            Cells(i, Parcours - 3).Value = 6
            Cells(i, Parcours - 2).Value = 0
        ElseIf Cells(i, Parcours).Value = "R/Boulot" Then
            Cells(i, Parcours - 4).Value = "vélo"
            Cells(i, Parcours - 3).Value = 6
            Cells(i, Parcours - 2).Value = 0
        ElseIf Cells(i, Parcours).Value = "R/Corniche" Then
            Cells(i, Parcours - 4).Value = "course à pieds"
            Cells(i, Parcours - 3).Value = 8.68
            Cells(i, Parcours - 2).Value = 279
        ElseIf Cells(i, Parcours).Value = "Piste_Cyclable" Then
            Cells(i, Parcours - 4).Value = "course à pieds"
            Cells(i, Parcours - 2).Value = 0
        ElseIf Cells(i, Parcours).Value = "boulotA" Then
            Cells(i, Parcours - 4).Value = "course à pieds"
            Cells(i, Parcours - 3).Value = 5.97
            Cells(i, Parcours - 2).Value = 0
        ElseIf Cells(i, Parcours).Value = "boulotR" Then
            Cells(i, Parcours - 4).Value = "course à pieds"
            Cells(i, Parcours - 2).Value = 0
        ElseIf Cells(i, Parcours).Value = "BoulotV" Then
            Cells(i, Parcours - 4).Value = "vélo"
            Cells(i, Parcours - 2).Value = 0
        ElseIf Cells(i, Parcours).Value = "boulotA/R" Then
            Cells(i, Parcours - 4).Value = "vélo"
            Cells(i, Parcours - 3).Value = 12
            Cells(i, Parcours - 2).Value = 0

        End If
    Next i

End Sub

Re

Gag ?

je viens de te répondre (à-côté peut-être ?)

https://forum.excel-pratique.com/post126719.html#p126719

Merci, c'est moi qui suis un peu à côté...

Pourquoi ai je du déclare Const et non pas Public Const ?

Bonsoir

En la déclarant Public ta variable est accessible de partout

Sinon elle n'est accessible qu'au niveau de l'endroit où elle est déclarée

A voir

https://www.excel-pratique.com/fr/vba/variables_suite.php?a=vba&b=variables

Merci j'ai fait un peu de VBE, j'ai à peu prés compris "Public Const", ce que je voulais savoir, c'est pourquoi le compilateur l'a refusée et a accepté "Const".

Bonsoir

Je n'ai aucun soucis avec

Public Const Ma_Variable1 = 156
Const Ma_Variable2 = 500

Bonne soirée

Moi,

j'ai le message

Erreur de compilation :

Des constantes, chaînes de longueur fixe, tableaux, types définis par l'utilisateur et instructions Declare ne sont pas autorisés comme membres Public de modules d'objet

Bonsoir

Pour moi tu déclarais tes variables en public dans un Module standard pas dans le code d'un objet (Feuille, Userform ou module de classe)

Pour cela que le compilateur ne le veut pas

Mais ce n'est pas gênant d'avoir un module standard juste pour la déclarations des variables publiques

Bonne soirée

Merci, c'est compris.

Bonne journée.

Rechercher des sujets similaires à "public const"