creer dynamiquement zone de texte avec macro

Gsig

XLDnaute Nouveau
Bonjour,

d'abord, merci pour la réactivité de ce forum, comme beaucoup, j'en ai énormément appris sur Excel et VBA en peu de temps.

Ma question donc :

Je créé une feuille grace a une macro. Cette macro récupère des informations d'une autre feuille et les place sur la nouvelle feuille.
Ce que je voudrais, c'est pouvoir y ajouter une zone de texte ou un bouton qui permetterait d'effacer les informations copiées sur la nouvelle feuille.
En gros, pouvoir copier des infos sur une nouvelle feuille et les enlever de cette meme feuille quand j'en ai envie.

Une idée ?

Merci
 

MichelXld

XLDnaute Barbatruc
bonjour

cet exemple permet de créer une nouvelle feuille et d'y ajouter un bouton (dont la procedure associée supprime le contenu des cellules)


Dim Ws As Worksheet, Obj As OLEObject
Dim laMacro As String
Dim x As Integer

Set Ws = Sheets.Add

Set Obj = Ws.OLEObjects.Add('Forms.CommandButton.1')
With Obj
.Left = 50
.Top = 50
.Width = 120
.Height = 30
.Object.Caption = 'Supprimer données feuille'
End With

laMacro = 'Sub CommandButton1_Click()' & vbCrLf
laMacro = laMacro & 'Cells.Clear' & vbCrLf
laMacro = laMacro & 'End Sub'

With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
x = .CountOfLines + 1
.InsertLines x, laMacro
End With




bonne soirée
MichelXld
 

Gsig

XLDnaute Nouveau
J'ai testé, le bouton se créé bien, mais j'ai une erreur lorsque l'on ajoute du code dans le module avec la premiere ligne de ce code :

Code:
With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
x = .CountOfLines + 1
.InsertLines x, laMacro
End With

Il me met cette erreur :

erreur d'éxécution 1004 :
L'accès par programme au projet Visual Basic n'est pas fiable.

Comment faire pour y remédier ?

Et est-ce que ce code est ajouté au module ou au code de la feuille ?

Merci

Message édité par: gsig, à: 05/04/2006 09:36
 

MichelXld

XLDnaute Barbatruc
bonjour

le code est ajouté au module ou au code de la nouvelle feuille

pour éviter ce message tu peux essayer :

Menu Outils
Macro
Sécurité
onglet 'Sources fiables'
Coche l'option 'Faire confiance au projet Visual Basic'
Clique sur OK pour valider

puis tu retestes la procedure


bonne soirée
MichelXld
 

Gsig

XLDnaute Nouveau
J'ai 'fait confiance au projet Visual Basic' et l'erreur ne s'affiche plus.
Mais je ne vois pas le code dans l'editeur de Visual Basic ? ni dans la feuille ni dans le module.

De plus, j'ai testé en ajoutant une msgbox dans le code de la macro qui doit etre executé quand on clique sur le bouton créé, mais rien ne se passe.

Puis-je visualiser le code de la macro créé de cette façon :

Code:
laMacro = 'Sub CommandButton1_Click()' & vbCrLf
laMacro = laMacro & 'Cells.Clear' & vbCrLf
laMacro = laMacro & 'End Sub'

With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
x = .CountOfLines + 1
.InsertLines x, laMacro
End With
 

MichelXld

XLDnaute Barbatruc
bonsoir

j'espere que cet exemple pourra t'aider

j'ai ajouté un exemple pour crééer un MsgBox dynamiquement , et une copie d'ecran pour te montrer comment visualiser la nouvelle macro



bonne soiree
MichelXld [file name=CreerFeuille_AjoutMacroDynamique.zip size=17652]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CreerFeuille_AjoutMacroDynamique.zip[/file]
 

Pièces jointes

  • CreerFeuille_AjoutMacroDynamique.zip
    17.2 KB · Affichages: 597

Discussions similaires

Réponses
0
Affichages
234

Statistiques des forums

Discussions
312 211
Messages
2 086 286
Membres
103 170
dernier inscrit
HASSEN@45