Bonjour tout le monde,
comme vous vous en doutez je viens poster ici car j'ai un problème

Voilà j'ai un form nommé "PlanDeControl" dans lequel je souahiterai à l'ouverture ajouter des contrôles de type checkBox en fonction du nombre d'onlgets d'un fichier access dans le répertoire. Jusque là je pensais savoir comment m'y prendre

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Private Sub Form_Load()
 
'Déclarations
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim CB As CheckBox
Dim i As Integer
Dim formName As String
 
formName = "PlanDeControl" 'Initilisation du nom du form
 
'ouverture du classeur excel
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Open("Chemin de mon fichier Excel") 'Il est bien renseigner (avant qu'on me pose la question ;) )
 
'fermeture et réouverture du formulaire en mode création
DoCmd.Close acForm, formName
DoCmd.openForm formName, acDesign
 
'création des différentes checkBox
For i = 1 To xlBook.Sheets.Count
    Set CB = CreateControl(formName, acCheckBox)
    With CB
        .name = "CB_" & i
        .Left = 50
        .Top = 40 + 10 * i
        .Height = 20
        .Width = 20
        .Visible = True
    End With
    Set CB = Nothing
Next
 
'fermeture et réouverture du formulaire en mode normal
DoCmd.Close acForm, formName, acSaveYes
DoCmd.openForm formName
 
'Libération de l'espace
Set xlApp = Nothing
Set xlBook = Nothing
 
End Sub
Voilà au début je taper en direct le nom de mon formulaire mais VBE me renvoyer l'erreur 29054 : "Microsoft access ne peut pas ajouter, modifier ou supprimer le(s) controle(s) sélectionné(s)." Ou quelque hose comme ça.
Je me suis renseigner sur plusieurs forum et les résultats sont les suivants

- Ecrire le nom du formulaire via une variable (solution de 2006 , que j'ai mis en application comme vous pouvez le voir), ... sa marche pas toujour la même erreur.

- changer la réfèrence à microsoft ado par microsoft doa, ... marche pas non plus

- et j'ai vu sur un autre forum qu'il fallait rentrer les paramètres de ma checkBox dans le createControl, ... sa change rien non plus.


J'ai lu beaucoup de chose et parfois sa fait peur mais je n'ai pas trouver la solution à mon porblème.
Je vous fais donc un petit récap de ce que je souhaite faire :
A l'ouverture de mon form "PlanDeControl" je souhaite que mon code VBA ouvre un fichier excel pour récupérer le nombre d'onglets (jusque là sa marche ) puis de créer un CheckBox pour chaque onglets, soit créer autant de checkBox que d'onglets.

Merci d'avance à ceux qui me lirons et encore plus à ce qui pourront me donner des conseils

je ne pense pas que mon code soit trop mauvais mais j'arrive pas à mettre le doigt sur l'erreur