Bonjour.
Je voudrai savoir si d'une part, des personnes ont déjà rencontré ce problème, et si d'autre part, il y a une solution. J'ai besoin d'une variable globale (un tableau) qui doit vivre pendant que l'utilisateur est sur une feuille excel.
A chaque fois que je rentre dans une procédure, ma variable globale est bien présente, mais dès que j'en sors, elle est remise à zéro. Si je mets une variable static dans la fonction pour compter le nombre de passages dans ma fonction, elle aussi se met à zéro.
Le plus bizarre, c'est qu'au bout de deux lancement consécutifs de la procédure, la variable globale et la variables static semble bien rester en mémoire. Suis-je fou?
Voici le code
Private Sub CreateChkbox_v2(strNomFeuille As String, _
iLigStartCell As Integer, iColStartCell As Integer, iNbOffset As Integer)
Dim ws As Worksheet
Dim rngLinkedCell As Range
Dim oleChkBox As oleObject
Dim i As Integer
Static iTest As Integer
Set ws = ThisWorkbook.Worksheets("" )
ws.Activate
' Must deactivate clicked control for code to run.
ws.Range("a1" ).Activate
For i = 0 To iNbOffset
Set rngLinkedCell = ws.Cells(iLigStartCell, iColStartCell + i)
' The next line adds the control and sizes and
' positions the control over a cell
Set oleChkBox = ws.OLEObjects.Add(ClassType:="Forms.CheckBox.1", _
Left:=rngLinkedCell.Left + rngLinkedCell.Width \ 2 - 4, _
Top:=rngLinkedCell.Top + rngLinkedCell.Height \ 2 - 4, _
Width:=10, _
Height:=11)
With oleChkBox
'This lets each check box stay with its row during sorts.
.Placement = xlMove
.LinkedCell = rngLinkedCell.Address
With .Object
.BackStyle = fmBackStyleTransparent
.Caption = ""
.Value = False
.BackColor = &HC0FFC0
'.GroupName = oleChkBox.Name
End With
End With
iTest = iTest + 1
Next
MsgBox "Var Statique : " & CStr(iTest), vbInformation, "Test statique"
Set ws = Nothing
Set rngLinkedCell = Nothing
Set oleChkBox = Nothing
End Sub