Condividi:        

[EXCEL] Inserire macro nel menu a tendina

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

[EXCEL] Inserire macro nel menu a tendina

Postdi nagato » 25/06/11 11:32

Grazie al vostro prezioso aiuto ho risolto un sacco di problemi, e adesso eccone un altro: non riesco ad inserire una macro in un menu a tendina (sempre se possibile).
Ossia, ho creato un menu a tendina tramite convalida di dati con tre voci. Vorrei che una di queste tre voci richiamasse una macro. E' possibile?

Buon week end a tutti
nagato
Utente Junior
 
Post: 36
Iscritto il: 22/03/09 11:17

Sponsor
 

Re: [EXCEL] Inserire macro nel menu a tendina

Postdi Avatar3 » 25/06/11 12:25

Nel vba del foglio dove hai la convalida dati (non nel modulo)
Io ho previsto la cella A1 (Cdati) tu metterai le cordinate della tua cella di convalida

inserisci questo codice adattando sia il valore della cella convalida (1,2,3) sia il nome macro
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Cdati = "A1"
If Not Application.Intersect(Target, Range(Cdati)) Is Nothing Then
If Target = 1 Then Call Macro1
If Target = 2 Then Call Macro2
If Target = 3 Then Call Macro3
End If
End Sub
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: [EXCEL] Inserire macro nel menu a tendina

Postdi nagato » 29/06/11 17:53

Scusa il ritardo nella risposta...codice semplice ma ho un problema.
Io ho la convalida del menu nella cella A10 e le voci del menu sono, ad esempio, Prodotti, Accessori e Optional.
Questo il codice:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Cdati = "A10"
If Not Application.Intersect(Target, Range(Cdati)) Is Nothing Then
If Target = prodotti Then Call macroprodotti
If Target = accessori Then Call macroaccessori
If Target = optional Then Call macrooptional
End If
End Sub


Il problema e' che le macro non si avviano, per nessuna delle tre scelte del menu a tendina.
Pero' se al posto delle tre voci utilizzo numeri, ossia 1, 2, 3, allora le macro funzionano. :eeh:
Cioe' se metto:

If Target = 1 Then Call macroprodotti
If Target = 2 Then Call macroaccessori
If Target = 3 Then Call macrooptional

allora va bene...ho dimenticato qualcosa suppongo :cry:
nagato
Utente Junior
 
Post: 36
Iscritto il: 22/03/09 11:17

Re: [EXCEL] Inserire macro nel menu a tendina

Postdi Avatar3 » 29/06/11 22:10

Certo che funziona se metti 1, 2, 3 con la mia macro

se tu hai "prodotti" o "Prodotti" o "PRODOTTI"
devi modificare la macro in questa maniera
(la funzione Ucase converte tutto ciò che hai in maiuscolo per evitare "incompatibilita" del testo)

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Cdati = "A10"
If Not Application.Intersect(Target, Range(Cdati)) Is Nothing Then
If Ucase(Target) = "PRODOTTI" Then Call macroprodotti
If Ucase(Target) = "ACCESSORI" Then Call macroaccessori
If Ucase(Target) = "OPTIONAL" Then Call macrooptional
End If
End Sub


Vedrai che funziona
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: [EXCEL] Inserire macro nel menu a tendina

Postdi Anthony47 » 29/06/11 22:13

..e soprattuto non dimenticare le "virgolette".

Ciao!
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Inserire macro nel menu a tendina

Postdi nagato » 01/07/11 09:49

Infatti, rimane pero' un ultimo ostacolo adesso.
Io avevo, sempre grazie a voi, questa macro:

Codice: Seleziona tutto
Private Sub Workbook_Open()
perc = "C:\Users\Andrea\Desktop\VERG\ARCHIVIO\"
    Worksheets("Foglio1").Select
    Range("C1").Select
      With ActiveCell
        Worksheets("Foglio1").Range(.Cells(1), .End(xlDown)).ClearContents
      End With
      ElencoFile Direct:=perc, Estens:="*.Doc", Inicell:=ActiveCell
    End Sub
    Sub ElencoFile(ByVal Direct As String, ByVal Estens As String, Inicell As Range)
      Dim i As Integer, f As String
      ChDir Direct
      f = Dir(Estens)
      If f = "" Then Exit Sub
      While f <> ""
        i = i + 1
        Inicell(i) = f
        f = Dir
      Wend
End Sub


che mi restituiva un'elenco di file di una cartella e me li visualizzava nella colonna nella forma "nomefile.doc", forma che deve rimanere in quanto ho bisogno che il sistema (tramite un'altra macro) mi prenda quei file e ci faccia determinate operazioni (ad es la copia).
Il problema e' che a una di queste voci devo associare una macro, cosa che si fa tranquillamente con il worksheet da voi suggerito ma, purtroppo, se il nome nella cella riporta il punto e l'estensione del file (.doc), la macro si incarta perche' ovviamente non e' possibile la sintassi:
Codice: Seleziona tutto
If Ucase(Target) = "OPTIONAL.DOC" Then Call macrooptional.doc


Si puo' risolvere aggirandolo in qualche modo?
nagato
Utente Junior
 
Post: 36
Iscritto il: 22/03/09 11:17

Re: [EXCEL] Inserire macro nel menu a tendina

Postdi Anthony47 » 01/07/11 11:32

Assodato che non puoi dare a una macro il titolo "macrooptional.doc" non capisco quale e' il problema da aggirare.

Se come elenco di convalida hai un elenco di nomi file allora ti consiglio di lasciare stare Ucase e di usare come confronto la stringa che corrisponde esattamente, es.
Codice: Seleziona tutto
If Target="IlMionome" Then Call Macro111
If Target="IlMioNome" Then Call Macro222 'IlMioNome e IlMionome sono stringhe "diverse"

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Inserire macro nel menu a tendina

Postdi nagato » 01/07/11 15:03

Gia', la mia confusione era per le maiuscole, che posso tranquillamente non utilizzare, e quindi adesso sto a posto.
Grazie, come sempre. ;)
nagato
Utente Junior
 
Post: 36
Iscritto il: 22/03/09 11:17


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Inserire macro nel menu a tendina":


Chi c’è in linea

Visitano il forum: Nessuno e 130 ospiti