problem avec public : ça marche pas - VB/VBA/VBS - Programmation
Marsh Posté le 10-12-2004 à 23:57:41
Déjà fait ça marche pas.
Le problème a l'air plus grave : C'est un ajout de code(qui n' a priori rien à voir) qui fait que ça marche plus :
ActiveSheet.OLEObjects.Add ClassType:="Forms.CommandButton.1" )
Marsh Posté le 12-12-2004 à 14:55:22
Voilà mon début de code de macro :
Option Explicit
Public Flag As Boolean
Public Nom_feuilles(3)
Public nom_colonnes(10) As String
Public combos(0 To 10) As ComboBox
Public combostring(0 To 10) As String
Public colonne_supp As Integer
Public colonne_mod As Integer
Public bddboutons As New Collection
Public comboboutons As New Collection
' sub d'entrée de la macro
Sub MacroOne()
Set combos(0) = Sheet1.ComboBox1
Set combos(1) = Sheet1.ComboBox2
Set combos(2) = Sheet1.ComboBox3
Set combos(3) = Sheet1.ComboBox4
Set combos(4) = Sheet1.ComboBox5
....
End Sub
Sub ReloadCombo(numCombo as Integer)
...
End Sub
Sub Selectionner(numCombo as Integer, value as String)
...
End Sub
Marsh Posté le 12-12-2004 à 16:00:54
et si tu mettait plutot ta declaration de tableau dans la feuille concernée plutot que dans un module ?
Marsh Posté le 12-12-2004 à 17:50:16
J'ai mis toutes les variables et sub dans la feuille en question. Ca ne marche pas plus. Même probleme : les tableaux se vide après l'ajout dynamique du 1er bouton
Marsh Posté le 12-12-2004 à 18:26:16
ca c'est tres curieux , si je fait ce code :
Code :
|
il me renvoie bien "ComboBox1"
Marsh Posté le 12-12-2004 à 18:28:20
PS : en passant les declarations "Public" dans une feuille tu doit les passer en "Private"
Marsh Posté le 12-12-2004 à 18:29:03
Code :
|
Marsh Posté le 12-12-2004 à 21:21:52
gargamail a écrit : PS : en passant les declarations "Public" dans une feuille tu doit les passer en "Private" |
Je l'ai déjà fait ( J'ai pas mis le mot clé Private mais il est utilisé implicitement).
Mais ça ne marche pas.
Le problème est plus compliqué que ça : C'est depuis que j'ai ajouté le code suivant (qui n' a priori rien à voir) que ça marche plus :
ActiveSheet.OLEObjects.Add ClassType:="Forms.CommandButton.1" )
Si je l'enlève tout remarche ...
Marsh Posté le 10-12-2004 à 16:28:07
Bonjour,
Décidément VB, c'est bizarre :
Je réalise une macro en VBA pour excel.
J'ai mis un tableau en public dans mon module.
public tableau(1 to 10) as ComboBox
Dans mes fonctions, je m'en sert assez souvent, jusque là, il n' y avait pas de problème.
J'ai décidé de rajouter des boutons dans la même feuille excel à partir de code VBA :
Dim buttontoadd As OLEObject
Set buttontoadd = combofeuille.OLEObjects.Add(ClassType:="Forms.CommandButton.1" )
Depuis que je fais ça dans une des fonctions. Il me fait la chose suivante :
La première utilisation d'un de mes combos fonctionne, mais pas la deuxième ==> il me dit "Object variable or with block not set"
En effet, quand je regarde la valeur des éléments du tableau au moment ou ça plante, il me dit "Nothing".
Et pourtant :
- J'ai bien initialisé le tableau puisque je peux y accéder la première fois.
- Je n'ai aucun code qui modifie les éléments de mon tableau excepté dans la sub de base du module.
J'y comprends rien. Est-ce que quelqu'un aurait la soluce ?