VBA : Tableau créé à l'ouverture du fichier mas non-reconnu par la suite

Bonjour,

J'ai créé un tableau à l'ouverture de mon fichier Excel de la manière suivante :

Public Static Sub Workbook_Open()

    Dim TabDonnees(0 To 9063, 0 To 28) As Variant

    ActiveWorkbook.Sheets("Données").Activate
        For j = 0 To 9063
            For i = 0 To 28
                TabDonnees(j, i) = Cells(j + 1, i + 1)
            Next
        Next

    ActiveWorkbook.Sheets("Expression de besoins").Activate
    Range("B6").Select

'Ligne de test
MsgBox (TabDonnees(0, 1))

End Sub

La commande MsgBox fonctionne parfaitement.

Dans ma feuille "Expression de besoins", je souhaite déclencher des actions de manière automatique en fonction de modifications de certaines cases. Malheureusement, mon tableau "TabDonnees" n'est pas reconnu. Le code suivant renvoie : "Erreur de compilation: Sub ou Function non définie" en surlignant TabDonnees

Public Sub Worksheet_Change(ByVal Target As Range)

    Application.ScreenUpdating = False

    Dim i As Integer
    Dim Str1 As String
    Str1 = Cells(Target.Row, Target.Column)

    'Ligne de test
    MsgBox (TabDonnees(0, 1))

    If Target.Column = 2 Then
    ...

    

Quelqu'un saurait-il m'expliquer pourquoi mon code ne fonctionne pas ?

En vous remerciant par avance.

Cordialement,

Eric

Bonsoir,

pour moi c'est une question de "portée des variables".

Lorsque vous déclarez une variable dans une "Sub", alors celle-ci n'existe que dans cette Sub et uniquement tant que le "End Sub" n'est pas "joué"

Dans votre cas, il vous faut créer un module standard, puis de déclarer dedans votre tableau en Public et ce en dehors d'une quelconque procédure, il sera alors accessible depuis "n'importe où" dans les différents codes:

Public TabDonnees() as Varaint

Ensuite dans la Sub d'ouverture :

ReDim TabDonnees(0 To 9063, 0 To 28)

A savoir que le "Variant" est le type par défaut de VBA :

Dim MaVAriable As Variant = Dim MaVariable

@ bientôt

LouReeD

Merci beaucoup LouReed !

Tu viens de me débloquer

Je sais, je sais ...

Je plaisante !

Je suis ravis que cela vous permette d'avancer dans votre projet.

@ bientôt

LouReeD

Rechercher des sujets similaires à "vba tableau cree ouverture fichier mas reconnu suite"