Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/01/2012, 17h21   #1
Nouveau Membre du Club
 
Femme
Enseignant
Inscription : novembre 2011
Messages : 44
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2011
Messages : 44
Points : 26
Points : 26
Par défaut Erreur 1004 sur creation d'un commandbutton

Voilà le code

Code :
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
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim WS As Worksheet
Dim BtnRtr As OLEObject
Dim mCode As String
MsgBox "Vous avez double cliqué sur la cellule " & Target.Address
If Target.Address = "$A$1" Then
Workbooks.Open "C:\Documents and Settings\user\Bureau\allobob-.xlsx"
Workbooks("allobob-.xlsx").Sheets(1).Copy after:=Workbooks("Copie de Adupliquer.xlsm").Sheets(3)
Workbooks("Copie de Adupliquer.xlsm").Sheets(4).Name = "Allobob"
Windows("allobob-.xlsx").Close
 
Set WS = ThisWorkbook.Worksheets("Allobob")
With WS
    Set BtnRtr = .OLEObjects.Add("Forms.CommandButton.9")
    With BtnRtr
        .Name = "BtnRtr9"
        .Left = 500
        .Top = 40
        .Width = 50
        .Height = 20
        .Object.Caption = "Effacer"
    End With
 
    mCode = "Sub BtnRtr9_Click()" & vbCrLf
    mCode = mCode & "Cells(3,1).Clear" & vbCrLf
    mCode = mCode & "End Sub"
 
   With ThisWorkbook.VBProject.VBComponents(.CodeName).CodeModule
        .InsertLines .CountOfLines + 1, mCode
    End With
End With
 
End If
Cancel = True
End Sub

Sur la feuil1 par doubleclick de la cellule A1 j'ajoute un onglet qui correspond au fichier à récupérer, il se place en 4éme position.

Ensuite le code doit ajouter un commandbutton sur cette feuille nouvellement crée.
C'est là , sur la ligne Set BtnRtr = .OLEObjects.Add("Forms.CommandButton.9")

qu'il m'affiche une erreur 1004. Impossible d'insérer un objet

Je suis bloqué depuis ce matin, qq'un voit-il ou est le problème ?

j'ai bien mis la reference visual basic for applications
florianne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 18h18   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Sous 2003, je fais
Code :
Set BtnRtr = .OLEObjects.Add("Forms.CommandButton.1")
Le 9 ne marche effectivement pas, mais je ne sais pas s'il est censé marcher pour une autre version.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 19h02   #3
Nouveau Membre du Club
 
Femme
Enseignant
Inscription : novembre 2011
Messages : 44
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2011
Messages : 44
Points : 26
Points : 26
J'avais mis 9 comme j'aurai pu mettre un autre chiffre autre que 1, un commandbutton1 était déjà présent.Je ne sais pas si le chiffre à une importance.

J'ai donc mis 1 et j'ai supprimé le commandbutton1 dont je peux me passer et maintenant le code fonctionne.
En tout cas merci de la remarque car ça m'a permis de regarder dans la bonne direction si je puis dire.
florianne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 09h30   #4
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Je ne voulais pas trop m'avancer, mais effectivement, tu ne peux mettre que 1. Et c'est le type de contrôle que tu ajoutes, pas le nom que tu donnes au bouton.
Bon courage pour la suite
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h18.


 
 
 
 
Partenaires

Hébergement Web