Condividi:        

macro excel inserire un pulsante

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

macro excel inserire un pulsante

Postdi nicola_na78 » 14/06/10 14:06

ciao ragazzi eccomi dinuovo qua a chiedere il vostro aiuto......
devo creare una macro che mi inserisce un pulsante con un'altra macro dentro.... mi spiego meglio :)
ho creato una macro che fa una serie di operazioni..... alla fine questa macro dovrebbe inserirmi sul foglio un pulsante con dentro una nuova macro con una nuova istruzione, in modo da fare un'altra operazione quando questo viene premuto...... si puo' fare?????
grazie per la vostra attenzione a presto

n.b. col registratore di macro riesco ad inserire il pulsante, ma non riesco a rinominarlo e a inserire dentro la macro.
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Sponsor
 

Re: macro excel inserire un pulsante

Postdi Flash30005 » 14/06/10 15:54

Ciao Nicola_na78 e benvenuto nel Forum

Normalmente i pulsanti me li creo con le forme
prova questa macro (Macro2)
che crea una forma
la colora
Inserisce un testo all'interno della forma
collega la forma alla macro1
Codice: Seleziona tutto
Sub Macro1()
MsgBox "Salve"
End Sub
Sub Macro2()
    ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, 100, 25, 50, 35).Name = "Prova"
    ActiveSheet.Shapes("Prova").Select
    Selection.ShapeRange.Fill.Transparency = 0#
    Selection.ShapeRange.Line.Weight = 0.75
    Selection.ShapeRange.Line.DashStyle = msoLineSolid
    Selection.ShapeRange.Line.Style = msoLineSingle
    Selection.ShapeRange.Line.Transparency = 0#
    Selection.ShapeRange.Line.Visible = msoTrue
    Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
    Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
    Selection.ShapeRange.Fill.Visible = msoTrue
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 65
    Selection.ShapeRange.Fill.BackColor.SchemeColor = 11
    Selection.ShapeRange.Fill.TwoColorGradient msoGradientHorizontal, 2
    Selection.Characters.Text = "Mio"
    With Selection.Characters(Start:=1, Length:=3).Font
        .Name = "Arial"
        .FontStyle = "Normale"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    ActiveSheet.Shapes("Prova").Select
    Selection.OnAction = "Macro1"
    Range("D10").Select
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro excel inserire un pulsante

Postdi nicola_na78 » 15/06/10 11:02

grazie tante flash30005, il codice che hai postato funziona bnissimo solo che c'è ancora un problema.... mi spiego meglio dall'inizio :)
ho un foglio excel chiamato modulo d'ordine, dentro questo modulo io lancio una macro che imposta i foglio con determinate caratteristiche ( formattazione, colore, calcoli ecc.....). alla fine di questa macro faccio partire automaticamente la macro che mi hai postato tu: cambiando in macro1() msgbox "salve" con una mia funzione
Sub Macro1()
mia funzione
End Sub
Sub Macro2()
ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, 100, 25, 50, 35).Name = "Prova"
ActiveSheet.Shapes("Prova").Select
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 65
Selection.ShapeRange.Fill.BackColor.SchemeColor = 11
Selection.ShapeRange.Fill.TwoColorGradient msoGradientHorizontal, 2
Selection.Characters.Text = "Mio"
With Selection.Characters(Start:=1, Length:=3).Font
.Name = "Arial"
.FontStyle = "Normale"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
ActiveSheet.Shapes("Prova").Select
Selection.OnAction = "Macro1"
Range("D10").Select
End Sub
''''''''''''''''''''''''''''
funziona tutto bene sul mio pc, dato che la macro con la funzione risiede nel mio pc.....
quando pero' invio il foglio demoninato modulo'd'ordine ad un'altra persona su un'altro pc questa non funziona perchè nn trova la macro
come posso fare??? ringrazio in anticipo
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Re: macro excel inserire un pulsante

Postdi Flash30005 » 15/06/10 11:41

Suppongo che nel modulo d'ordine tu voglia far funzionare la macro1 con il "pulsante" appositamente creato.

Se è così devi inserire la macro1 anche nel modulo d'ordine
per fare questo dovresti crearti un modello con la macro1 al suo interno
La macro che crea il modulo d'ordine dovrà fare riferimento al modello.
Una volta completato il modulo non dovrebbero esserci problemi.

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro excel inserire un pulsante

Postdi nicola_na78 » 15/06/10 11:51

NON LO POSSON FARE PERCHE' IL FILE EXCEL DEVE ESSERE GIA' COMPILATO QUANDO IO FACCIO PARTIRE LA MIA MACRO..... IL FOGLIO DEVE ESSERE GIA' COMPLETO DELL'ISTRUZIONE MACRO1 ALTRIMENTI QUANDO LO INVIO AD ALTRE PERSONE NON FUNZIONA.... QUANDO PREMONO IL PULSANTE ESCE IL MESS IMPOSSIBILE TROVARE LA MACRO.
NON SI PUO' COPIARE IN MODO AUTOMATICO IL CODICE DI MACRO1 DENTRO THISWORKBOOK QUANDO IO LANCIO LA MIA MACRO???
TI RINGRAZIO X LA TUA PAZIENZA.... A PRESTO
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Re: macro excel inserire un pulsante

Postdi Flash30005 » 15/06/10 12:06

Sono d'accordo con te che la tua macro si avvia dopo che il foglio è compilato ma all'origine di quel foglio cosa c'è?

Se per il modulo d'ordine utilizzi un foglio esistente, dovrai inserire la macro in quel foglio.
Se, invece, crei un foglio nuovo ogni volta, dovrai utilizzare un modello con la macro all'interno, poi si compila e infine la tua macro farà il resto.

Ciao


P.s. Sei pregato di non scrivere in maiuscolo
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro excel inserire un pulsante

Postdi nicola_na78 » 15/06/10 13:09

scusa x il mess in maiuscolo di prima.... ho dimenticato il tasto maiuscolo acceso.

funziona cosi': da un database ordini esporto in maniera schedulata tutto quanto su excel, tramite una applicazione realizzata in vb.net sempre schedulata faccio partire la mia macro la quale fa una serie di operazioni sul file xls, alla fine salva il file e sempre tramite vb.net viene spedito via mail a una serie di persone.....il pulsante funziona benissimo solo che non avvia la macro impostata dentro, dato che non risiede nel file xls salvato...... dovrei fare in modo di riuscire a copiare le istruzioni della macro1 ogni volta in maniera automatica dentro il file xls generato. si puo' fare??

grazie
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Re: macro excel inserire un pulsante

Postdi Flash30005 » 15/06/10 14:37

potresti provare questa macro e adattarla all'esigenza
Codice: Seleziona tutto
Sub AddModuleProc()
Dim StartLine As Long
Dim cLines As Long
With ActiveWorkbook.VBProject.VBComponents("Modulo1").CodeModule
cLines = .CountOfLines + 1
.InsertLines cLines, "Macro1()" & Chr(13) & _
" Msgbox ""Salve"" " & Chr(13) & _
"End Sub"
End With
End Sub


Inserisce nel "Modulo1" del foglio attivo la "Macro1" composta dal messaggio "Salve"

Fai sapere
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro excel inserire un pulsante

Postdi Flash30005 » 15/06/10 15:26

Potresti anche (essendo una macro vera e propria e non un semplice messaggio) salvare l'intero modulo che contiene la tua macro in una cartella es.:
C:\Data
e potresti chiamare Modulo1.bas il codice esportato
quindi avrai C:\Data\Modulo1.bas (come percorso file)
ora, con questa macro, potrai importare nel foglio (attivo o altro foglio l'intero modulo)
Codice: Seleziona tutto
Sub InserisciModulo()
ChDrive "C"
ChDir "C:\Data\"
Fname = Dir("Modulo1.bas")
If Len(Fname) = 0 Then
MsgBox "Nessun Modulo nella directory"
Exit Sub
Else
Application.ScreenUpdating = False
Application.EnableEvents = False
Call ImportModule(Fname)
CodeFile = True
End If

Application.ScreenUpdating = True
Application.EnableEvents = True
If CodeFile Then
MsgBox "Aggiunto Modulo"
Else
MsgBox "Modulo non aggiunto - file non trovato"
End If

End Sub
Sub ImportModule(Fname As Variant)
ActiveWorkbook.VBProject.VBComponents.Import Fname
Application.Visible = True


Prova e fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro excel inserire un pulsante

Postdi nicola_na78 » 16/06/10 11:57

grazie tante, provo e poi vi faccio sapere......
cmq, il codice modulo1 non puo' essere copiato all'interno del foglio in questione durante il lancio della prima macro??? x me sarebbe piu' comodo, altrimenti a tutte le persone che invio il foglio xls dovro' inviare anche il file.bas..... se poi qualche persona alla quale invio il file non salva correttamente il modulo, non gli funziona la macro.... se è possibile vorrei evitare.

cmq grazie infinite x la disponibilita' a presto
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Re: macro excel inserire un pulsante

Postdi Flash30005 » 16/06/10 12:40

No, non mi sono spiegato bene.
Solo tu devi avere il modulo1.bas, in una cartella del tuo disco (percorso da riportare anche nel codice macro "InserisciModulo" se diverso da C:\data\)
la macro "InserisciModulo" importerà automaticamente il modulo nel file che invierai (qui forse bisogna rendere attivo quel file o inserire il nome del file destinazione, che non conosco).
quindi alla fine del processo (potrai controllare tu stesso) il file che invii avrà quella macro all'interno
e il pulsante sul foglio richiamerà la macro che è nel file di excel.

Fai la prova e aggiornaci
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro excel inserire un pulsante

Postdi nicola_na78 » 16/06/10 13:46

non avevo capito... :P
ora provo e poi ti faccio sapere..... grazie1000
a presto nicola
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Re: macro excel inserire un pulsante

Postdi nicola_na78 » 17/06/10 15:34

ciao, ho provato il codice che mi hai postato, solo che non ha funzionato...... quando invio il file xls la persona che lo riceve preme il pulsante crea ordine e non succede nulla xke' non trova la macro con il codice....
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Re: macro excel inserire un pulsante

Postdi Flash30005 » 17/06/10 21:54

Ti avevo spiegato che il codice di inserimento modulo lavora sul file attivo
con queste linee:
Codice: Seleziona tutto
Sub ImportModule(Fname As Variant)
ActiveWorkbook.VBProject.VBComponents.Import Fname   '<<<< QUI

Se mentre esegui questo codice è attivo il tuo file, è chiaro che viene importato il modulo nel tuo file e non in quello che invii.
Quindi devi rendere attivo il file che invii o dare il nome del file nel quale il modulo deve essere importato (nome che io non conosco)

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro excel inserire un pulsante

Postdi nicola_na78 » 28/06/10 09:21

Buon giorno, scusa se ti risp solo ora ma ero in ferie e quindi non ho avuto tempo di provare la funzione da te descritta.
ancora non riesco a farla funzionare, quando lancio la macro esegue tutto alla perfezione solo che quando invio il file ad un'altro pc premendo sul pulsante creato dice impossibile trovare la macro...... il nome della macro che devo importare sul foglio attivo si chiama "macro_pulsante_offerte". grazie ancora a presto.
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26


Torna a Applicazioni Office Windows


Topic correlati a "macro excel inserire un pulsante":


Chi c’è in linea

Visitano il forum: Nessuno e 61 ospiti