creer dynamiquement zone de texte avec macro

  • Initiateur de la discussion Initiateur de la discussion Gsig
  • 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 !

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
 
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
 
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
 
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
 
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
 
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

- 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

Retour