Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] esecuzione codice Macro da valore cella

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] esecuzione codice Macro da valore cella

Postdi tricilindrico » 05/07/12 15:14

Buongiorno a tutti. I miei più sinceri complimenti a tutti i lettori di questo Forum e ai loro moderatori, molto competenti e disponibili!
Vi leggo molto spesso e devo dire che ho imparato molti "trucchetti" , grazie!
Vengo al dunque, cioè al mio problemino ...
Avrei la necessità di rielaborare / arrangiare dei dati che mi vengono forniti in formato CSV da un CED. In pratica importo questo file (che ha dei tabulatori fissi) in excel e qui faccio le trasformazioni che mi servono. Ho davanti 7 casi diversi (ai quali corrispondono anche delle variazioni nei campi del file di origine cambiano a seconda di cosa gli ho richiesto). Avrei pensato di inserire in una cella (con menù a tendina) il nome di queste 7 lavorazioni possibili e quindi, in base al valore scelto, far si che premendo su un "bottone" che attiva una macro venga lavorato solo il codice relativo a quel nome.
L'aiutone che mi servirebbe è questo: la macro che mi fa tutto diciamo l'ho già impostata (è ancora grezza ma fa il suo lavoro) mi manca (e non so come fare...) come "nominare" parti di codice (SUB) e come farle eseguire singolarmente in funzione del contenuto della cella diciamo A1 .
Spero di essrmi spiegato con sufficiente chiarezza ..... grazie a tutti, buona giornata!
S.O.: Windows 8.1 Pro 64 with media center (ITA)
Off.: Office Professional plus 2013 (15.0.4569.1506) 64 bit (ITA)
tricilindrico
Utente Junior
 
Post: 36
Iscritto il: 05/07/12 14:59

Sponsor
 

Re: [Excel] esecuzione codice Macro da valore cella

Postdi wallace&gromit » 06/07/12 08:30

Ciao tricilindrico e benvenuto nel forum,
aspettavo un raggio di luce (tipo flash per intenderci) che rispondesse al tuo quesito, ma non è ancora arrivato.
Allora ti rispondo per quanto mi consentono le mie scarse conoscenze:
per selezionare le azioni da compiere utilizzerei senz'altro un SELECT CASE...
Poi dipende da come è strutturata la tua macro, a ogni singolo CASE puoi associare un GoTo, che rimanda a un codice all'interno della stessa routine, oppure RUN e chiamare una routine separata, che (penso) deve essere strutturata in forma di FUNCTION.
Se non riesci ad avanzare prova a postare il codice (per allegare un file devi ancora arrivare a quota 3 messaggi, ma forse non è necessario vedere tutto il file).
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21

Re: [Excel] esecuzione codice Macro da valore cella

Postdi tricilindrico » 06/07/12 10:07

Ciao wallace&gromit ! e grazie per la risposta!

grazie per i suggerimenti, ora vado a vedermi un po' di help sul SelecCase
se non dovessi riuscire ( :?: )scriverò nuovamente, grazie!

buoan giornata, ciao!
S.O.: Windows 8.1 Pro 64 with media center (ITA)
Off.: Office Professional plus 2013 (15.0.4569.1506) 64 bit (ITA)
tricilindrico
Utente Junior
 
Post: 36
Iscritto il: 05/07/12 14:59

RISOLTO Re: [Excel] esecuzione codice Macro da valore cella

Postdi tricilindrico » 10/07/12 07:50

wallace&gromit ha scritto:Ciao tricilindrico e benvenuto nel forum,
aspettavo un raggio di luce (tipo flash per intenderci) che rispondesse al tuo quesito, ma non è ancora arrivato.
Allora ti rispondo per quanto mi consentono le mie scarse conoscenze:
per selezionare le azioni da compiere utilizzerei senz'altro un SELECT CASE...
Poi dipende da come è strutturata la tua macro, a ogni singolo CASE puoi associare un GoTo, che rimanda a un codice all'interno della stessa routine, oppure RUN e chiamare una routine separata, che (penso) deve essere strutturata in forma di FUNCTION.
Se non riesci ad avanzare prova a postare il codice (per allegare un file devi ancora arrivare a quota 3 messaggi, ma forse non è necessario vedere tutto il file).


Ciao Wallace!
sono riuscito, grazie alle tue indicazioni, a completare quanto mi serviva. Ho visto che era già stato trattato anche in un altro post tempo fa, dal quale ho preso spunto. Per far partire il codice relativo al valore (che è testo) ho dovuto mettere il nome tra virgolette (per me non'era scontato ..... :roll: )
così:

Codice: Seleziona tutto
Sub seleziona_case()
Select Case Sheets("Foglio1").Range("E3").Value
    Case "nomeprimascelta"      'macro1
    Call macro1
    Case "nomesecondascelta"      'macro2
    Call macro2
    Case "nometerzascelta"      'macro3
    Call macro3
End Select

End Sub


Grazie mille ciao buona giornata a tutti!!!! :)
S.O.: Windows 8.1 Pro 64 with media center (ITA)
Off.: Office Professional plus 2013 (15.0.4569.1506) 64 bit (ITA)
tricilindrico
Utente Junior
 
Post: 36
Iscritto il: 05/07/12 14:59

Re: [Excel] esecuzione codice Macro da valore cella

Postdi Flash30005 » 10/07/12 11:32

Ciao Tricilindrico e benvenuto anche da parte mia

Se è la cella E3 del foglio1 ad avere la variabile di definizione macro
puoi usare anche il codice nel vba del "Foglio1" inserendo queste righe
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$E$3" Then Exit Sub
If UCase(Target) = "NOMEPRIMASCELTA" Then macro1
If UCase(Target) = "NOMESECONDASCELTA" Then macro2
If UCase(Target) = "NOMETERZASCELTA" Then macro3
End Sub


nei moduli avrai le 7 macro

Fai solo attenzione nel caso in cui le macro scrivano nello stesso foglio perché dovrai bloccare gli eventi
altrimenti ad ogni variazione di cella la macro torna al controllo
In questo caso aggiungi
Application.EnableEvents = False/True
Il False subito dopo la condizione del target.address (prima di tutte le If Ucase...)
e il True prima dell'End Sub del codice nel vba del foglio1

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] esecuzione codice Macro da valore cella

Postdi tricilindrico » 10/07/12 13:56

Ciao Flash!
grazie mille anche a te per l'ottimo spunto, appena posso provo anche così.
Le 7 macro lavorano su altri fogli, però ho notato che hai "ancorato" E$3$ dici che sarebbe opportuno usare questo blocco anche nel codice che ho postato con il Select Case?
E3 in pratica è un menu a tendina che propone i 7 nomi di scelta (che poi daranno il via alle relative macro), poi un bottone farà partire il tutto!
che bello stò facendo una full immersion di codice grazie a voi!! e sto "bruciando" il tasto F8 !! :lol: :lol: :oops:

Grazie ciao!
S.O.: Windows 8.1 Pro 64 with media center (ITA)
Off.: Office Professional plus 2013 (15.0.4569.1506) 64 bit (ITA)
tricilindrico
Utente Junior
 
Post: 36
Iscritto il: 05/07/12 14:59

Re: [Excel] esecuzione codice Macro da valore cella

Postdi Flash30005 » 10/07/12 19:11

Se usi il codice da me postato non occorre il bottone per avviare la macro in quanto la macro si avvia solo quando vari il valore nel menu a tendina della cella E3

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] esecuzione codice Macro da valore cella

Postdi tricilindrico » 11/07/12 08:18

Ciao Flash, buongiorno!
ho avuto modo di provare il codice postato ieri pomeriggio, indubbiamente dovrò studiare di più ...
l'ho inserito nella sezione VBAProject nel "Foglio1" (che è anche il foglio dove si trova la selezione), all'inizio pagina (prima di tutto quindi) modificando i nomi delle macro corrette, però quando poi vado a fare le prove non parte nulla. Vario (con il menu a tendina) il valore della cella (anche facendo invio) ma non parte ... dove posso aver sbagliato?
grazie

ciao!
S.O.: Windows 8.1 Pro 64 with media center (ITA)
Off.: Office Professional plus 2013 (15.0.4569.1506) 64 bit (ITA)
tricilindrico
Utente Junior
 
Post: 36
Iscritto il: 05/07/12 14:59

Re: [Excel] esecuzione codice Macro da valore cella

Postdi Flash30005 » 11/07/12 08:44

tricilindrico ha scritto: dove posso aver sbagliato?


Non saprei :roll:
A questo punto, forse, è meglio che ti invii il file
File Test

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] esecuzione codice Macro da valore cella

Postdi tricilindrico » 11/07/12 10:57

Ciao Flash, e grazie molte per il file.
Mi è servito moltissimo per farmi passare il mal_di_testa che mi stava venendo ...
In pratica avevo fatto "diversi" errori :
- il nome della Macro era uguale al nome della selezione (e questo non gli piace molto mi sa)
- nella definizione del Target, tra le " " tu hai scritto giustamente tutto in maiuscolo (sia nell'esempio che nel file) io no invece, e anche questo non'è molto gradito da VB mi sa ...

"più vieni a sapere, più ti accorgi di non sapere ...." mamma quanto è vero ....

PS: la mia versione di Excel è la 10 a 64 bit. Non so se quanto scritto dipenda da questo, purtroppo non ho altre versioni per un confronto.

comunque ora funziona!
Grazie!

ciao !
S.O.: Windows 8.1 Pro 64 with media center (ITA)
Off.: Office Professional plus 2013 (15.0.4569.1506) 64 bit (ITA)
tricilindrico
Utente Junior
 
Post: 36
Iscritto il: 05/07/12 14:59

Re: [Excel] esecuzione codice Macro da valore cella

Postdi Flash30005 » 11/07/12 11:18

:roll:

Il fatto che io abbia scritto in maiuscolo è proprio per evitare di avere scrittura alto/basso nella cella E3 come ad esempio:
Nomeprimascelta o NomePrimaScelta o nomeprimascelta
nella macro la funzione Ucase(Stringa) converte tutto in maiuscolo pertanto tutti gli esempi sopra riportati (e altri)
diventano "NOMEPRIMASCELTA" e così evita errori di tipologia di scrittura diversa
chiaramente la stringa deve esserec composta dalle stesse lettere e non avere un nome diverso tipo:
"Nome_primascelta" o "Nome prima scelta" (con spazi)

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] esecuzione codice Macro da valore cella

Postdi tricilindrico » 11/07/12 14:29

ciao Flash
perfetto, grazie!

Ciao!
S.O.: Windows 8.1 Pro 64 with media center (ITA)
Off.: Office Professional plus 2013 (15.0.4569.1506) 64 bit (ITA)
tricilindrico
Utente Junior
 
Post: 36
Iscritto il: 05/07/12 14:59


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] esecuzione codice Macro da valore cella":


Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti