déclaration type Public

  • Initiateur de la discussion Initiateur de la discussion gaël92
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gaël92

XLDnaute Nouveau
Bonjour,
1604591390191.png
je souhaite déclarer une variable de type Tableau As String comme étant une variable Public pour pouvoir l'utiliser dans plusieurs procédure.
Or un message d'erreur apparait disant : "Des constantes, chaines de longueur fixe, tableaux, types définis par l'utilisateur et instructions Declare ne sont pas autorisés comme membres Public de module d'objet."

Quelqun aurait une solution ?

Merci d'avance

1604591390191.png
 
Bonsoir Gael,
Essayez cette PJ avec :
VB:
Public Tableau_Equipement(0 To 6, 0 To 10)
Sub Essai()
On Error GoTo Fin
Dim i As Integer, j As Integer
For i = 0 To 6
    For j = 0 To 9
        Tableau_Equipement(i, j) = 10 * i + j
    Next j
Next i
[B5] = " Pas d' Erreur rencontrée"
Exit Sub
Fin:
[B5] = " Erreur rencontrée"
End Sub
Chez moi ( PC XL2007 ) ça marche.
MS dit qu'un tableau peut être déclaré en Public :

Addon : J'ai testé en mettant la macro dans une feuille. C'est interdit.
Vous devez déclarer votre array public dans un module standard.
Par contre une fois déclaré dans un module standard, vous pouvez l'utiliser dans une feuille. 🙂
 

Pièces jointes

Dernière édition:
Bonsoir.
Information: Dans un module objet (Worksheet, ThisWorkbook, UserForm, ou module de Classe) une variable Public en devient une Propriété. Elle ne peut être utilisée à l'extérieur du module sans préciser devant le nom de l'objet suivi d'un point.
J'ignore la raison des restrictions de types. On peut les contourner en les déclarant Private et en les transférant à l'aide de procédures Property.
De même d'ailleurs une Public Sub en devient une méthode.
 
bonsoir a tous
a ben en voila une bien bonne j'ai deja vu cette erreur dans les conditions
le message est clair c'est le dimensionnement qui n'est pas possible en public pas la variable tableau

c'est facilement contournable

public levraitoto as variant

sub machinchouette()
dim lefauxtoto(0 to 6,0 to 10)
for i= 0 to ...blablabla
for c= 0 to 10
lefauxtoto(i,c)="ligne " & i & "-"col " & c
next
next
levraitoto =lefauxtoto
end sub

'dans une autre sub dans un autre module
sub test()
msgbox levraitoto(0,0)
next

si la variable appartient a thisworkbook thisworkbook. devant
si c'est une feuille feuil1. devant
pareil pour un userform (attention ici lors du unload la variable est vidé )même si elle a été chargée avant le load
démonstration
tentative dans le module de la Feuil1
Capture1.JPG


tentative a dimensionnement différé
Capture.JPG
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

D
Réponses
4
Affichages
311
DidPouAxi
D
Réponses
8
Affichages
1 K
Retour