Codice vba per gestire macro
Hai un problema con Excel? 
Codice vba per gestire macro
di Maxxim (utente non iscritto) data: 02/12/2009
Ciao a tutti qualcuno mi può indicare come posso gestire una macro tramite una cella di excel?
mi spiego meglio:
ho una cella mettiamo a1 e a fianco ho un pulsante per attivare una macro, quindi quando mi viene scritto ok, ella cella a1 il pulsante mi si attiva e se lo clicco mi parte la macro, invece se nella cella a1 mi viene scritto nd (cioè errore) la macro e in questo caso il pulsante non mi si deve attivare, quindi anche se ci clicco sopra non deve eseguire nessuna istruzione.
grazie in anticipo per la vostre gentili risposte
di Ricky53 (utente non iscritto) data: 03/12/2009
Ciao,
allora nel "foglio1" tu hai già un pulsante "commandbutton" che hai inserito con la barra "strumenti di controllo".
apri l'editor del vba e nel foglio1 copia il codice che ti invio.
se in "a1" scrivi "ok" il pulsante si attiva ed al click viene eseguita la macro che devi aver già associato al pulsante.
se in "a1 non c'è "ok" il pulsante non è attivo.
ciao da ricky53
Private Sub Worksheet_Change(ByVal Target As Range)
CommandButton1.Enabled = False
If UCase([A1]) = "OK" Then
CommandButton1.Enabled = True
End If
End Sub
|
di Maxxim (utente non iscritto) data: 03/12/2009
Grazie 100000000000 ricky53
sono riuscito con il tuo listato ad utilizzare il
comando come volevo.
grazie ancora;
di Maxxim (utente non iscritto) data: 03/12/2009
Scusa ricky53, ho fatto una prova mettendo una macro nello stesso foglio e tutto ok, però se vado a eseguire una macro che modifica sia il foglio1 che il foglio2 mi viene errore, ti posto il mio listato per vedere dove sbaglio:
private sub commandbutton1_click()
'
' prova macro
'
'
range("b4:b7").select
selection.copy
sheets("foglio2").select
range("e11:e14").select
activesheet.paste
sheets("foglio1").select
application.cutcopymode = false
selection.clearcontents
range("b4").select
end sub
private sub worksheet_change(byval target as range)
commandbutton1.enabled = false
if ucase([a1]) = "ok" then
commandbutton1.enabled = true
end if
end sub
alla fine mi da errore run time '10041
errore nel metodo select per la classe range.
scusa ma non ho molta dimestichezza ancora con vba
e poi non è possibile usare il pulsante di controllo per fare questo??.
grazie
grazie
di Mabolsie (utente non iscritto) data: 25/12/2009
Ciao maxxim
sostituisci la quarta riga di codice con quella che ti posto, vedrai che funziona
ciao
Activesheet.range("e11:e14") |
di Mabolsie (utente non iscritto) data: 25/12/2009
Scusa maxxim la riga è questa
ActiveSheet.Range("e11:e14").select |
di Maxxim (utente non iscritto) data: 25/12/2009
Grazie 1000000000000
perfettamente riuscito.
Vuoi Approfondire?