Variable Globale

Bonjour,

J'ai besoin pour un projet qu'une variable prenne une valeur dans une userform puis je compte réutiliser cette valeur (du texte) au changement de ma feuille 1.

J'ai déclaré la variable comme ceci, tout au début de la feuille 1:

Public w as variant

Dans ma userform j'utilise ceci:

Private Sub OK_Click()
If Me.ComboBoxRetard.Text = "" Then
Call MsgBox("Vous n'avez rien selectionné", , "Erreur")
Else
w = Me.ComboBoxRetard.Text
Unload Me
End If
End Sub

Et enfin au changement de ma feuille 1 je déclanche ceci:

If Sheets("Demande").Range("T" & y).Value = "Retard" Then
                        Retard.Show
                        Sheets("Demande").Range("W" & y) = w
          End If

Tout me parait correcte mais cependant, peu importe ce que je sélectionne dans la userform, la case W reste vide

Je pense que cela vient de la variable, je l'ai bien déclaré?

Bonjour,

Tu devrais placer ta déclaration dans un module.

Super ça marche! Merci!

J'en profite pour te poser une autre question , connais tu le code qui permet de tracer une ligne en dessous de la plage A&i : I&i

Pour l'instant j'ai cela:

With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With

Mais j'aimerais faire cela sans sélection car je ne veux pas ralentir mon programme

Si tu connais la ligne i courante,

par exemple en A1 :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[A1] = Target.Row
End Sub

alors

With Range("A" & CStr([A1]) & ":I" & CStr([A1])).Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
End With

Non malheureusement la ligne i est variable, je l'utilise dans une boucle, de la ligne 4 à 100 par exemple, je veux que selon certaines condition, cela trace un trait de la colone A a la colone I.

Salut oxydum, YannisB

la réponse de " oxydum " était un simple exemple pour que tu l adapte :

alors essayer ça :

Sub test()
For i = 4 To 5
With Range("A" & i & ":I" & i).Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
End With
Next

End Sub

Dans ce cas,

With Range("A" & CStr(i) & ":I" & CStr(i)).Borders(xlEdgeBottom)

Merci a vous!

Désolé j'avais pas compris

Quand les cellules du tableau se vident les traits doivent partir aussi, j'ai donc mis ce code:

 With Range("A" & i & ":I" & i).Borders(xlEdgeBottom).LineStyle = xlNone
             End With

Mais il ne fonctionne pas

EDIT: C'est bon j'ai réussi, les With étaient superflux pour retirer les traits

Rechercher des sujets similaires à "variable globale"