Condividi:        

Differenza fra Pulsante e Commandbutton

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

Differenza fra Pulsante e Commandbutton

Postdi lone wolf » 25/06/15 10:08

Salve e buona giornata a tutti, ho un piccolo problema, utilizzo una macro assegnata ad un pulsante ( pulsante creato con: Inserisci => Immagine => Forme) ho sostituito il pulsante con un CommandButton inserendo lo stesso codice ma va in debug, mentre con altri codici che prima erano assegnati al pulsante nel commandButton funzionano bene, c’è qualche differenza tra il codice assegnato ad un pulsante e lo stesso codice assegnato ad un CommandButton?, grazie per l’aiuto e buona giornata.

Questo il codice assegnato al pulsante:

Codice: Seleziona tutto
Sub Filtrainsufficienza()
Application.ScreenUpdating = False
Sheets("Foglio1").Select
Range("CA3").Select
    ActiveCell.FormulaR1C1 = 0
Sheets("Foglio2").Visible = True
Sheets("Foglio2").Select
Range("B10").Select
    Selection.AutoFilter
Range("B10:B610").Select
Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:=1
Range("B8").Select
Application.ScreenUpdating = True
End Sub

E questo assegnato al CommandButton:

Codice: Seleziona tutto
Private Sub CommandButton3_Click()
Application.ScreenUpdating = False
Sheets("Foglio1").Select
Range("CA3").Select
    ActiveCell.FormulaR1C1 = 0
Sheets("Foglio2").Visible = True
Sheets("Foglio2").Select
Range("B10").Select
    Selection.AutoFilter
Range("B10:B610").Select
Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:=1
Range("B8").Select
Application.ScreenUpdating = True
End Sub


Va in debug: “Range("B10").Select”
lone wolf
Utente Senior
 
Post: 108
Iscritto il: 23/05/15 14:59

Sponsor
 

Re: Differenza fra Pulsante e Commandbutton

Postdi ricky53 » 25/06/15 12:01

Ciao,
il codice associato al "CommandButton3" è inserito nel Foglio1 e, quindi, le operazioni fatte su altri fogli NON ... gli stanno bene.

Prova con il seguente codice (è il tuo al quale ho fatto delle modifiche per "fargli piacere" le istruzioni)
Codice: Seleziona tutto
Private Sub CommandButton3_Click()
    Dim WS As Worksheet ' <<=== AGGIUNTA
   
    Application.ScreenUpdating = False
    Sheets("Foglio1").Select
    Range("CA3").Select
    ActiveCell.FormulaR1C1 = 0
   
    Set WS = Sheets("Foglio2") ' <<=== AGGIUNTA
    WS.Visible = True ' <<=== MODIFICATA
    WS.Select ' <<=== MODIFICATA
    WS.Range("B10").Select ' <<=== MODIFICATA
    Selection.AutoFilter
    WS.Range("B10:B610").Select ' <<=== MODIFICATA
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:=1
    WS.Range("B8").Select ' <<=== MODIFICATA
    Application.ScreenUpdating = True
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Differenza fra Pulsante e Commandbutton

Postdi Anthony47 » 25/06/15 23:47

In aggiunta alla spiegazione e alla soluzione proposta da Ricky (vedi sopra).
Il mio suggerimento e' che ti limiti a inserire una Call nel codice del CommandButton:
Codice: Seleziona tutto
Private Sub CommandButton3_Click()
    Call Filtrainsufficienza
End Sub


Ciao a tutti.
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Differenza fra Pulsante e Commandbutton

Postdi lone wolf » 26/06/15 16:29

Buona serata a tutti, grazie Ricky e Anthony i vostri suggerimenti funzionano benissimo entrambi (com’era ovvio), scusate se approfitto per imparare anche un’altra cosa: dopo aver inserito i codici nel CommandButton posso eliminare i codici che prima erano presenti soltanto nel modulo oppure devo mantenerli ugualmente? Grazie per l’aiuto e una buona serata a tutti.
lone wolf
Utente Senior
 
Post: 108
Iscritto il: 23/05/15 14:59

Re: Differenza fra Pulsante e Commandbutton

Postdi ricky53 » 27/06/15 01:14

Ciao,
devi verificare che non vengano utilizzati e se NON vengono utilizzati in nessun modo puoi cancellare tutto.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Differenza fra Pulsante e Commandbutton

Postdi lone wolf » 27/06/15 08:39

Ok Ricky cercherò di far tesoro dei vostri consigli, un grazie a te e ad Anthony per l'aiuto e un grazie a tutto il forum, e buon weekend.
lone wolf
Utente Senior
 
Post: 108
Iscritto il: 23/05/15 14:59

Re: Differenza fra Pulsante e Commandbutton

Postdi lone wolf » 27/06/15 21:46

Scusate se riapro la discussione ma ho avuto un piccolo problema, ho seguito i vostri suggerimenti dove non funzionava “Call Filtrainsufficienza” ho modificato i codici con il suggerimento di Ricky e tutti i codici vanno benissimo, solo con l’ultimo codice non riesco a farlo funzionare, in pratica dopo un inserimento riga dovrei inserire una convalida dati, ma mi va in debug proprio il codice della convalida “.Add Type:=xlValidateList, AlertStyle ecc…” come posso modificare il codice? Grazie ancora per l’aiuto e buona serata a tutti.
Questo il codice:

Codice: Seleziona tutto
Set WS = Sheets("Foglio1")
WS.Visible = True
WS.Select
WS.Cells(Y, 1).EntireRow.Insert
WS.Select
WS.Cells(Y, 5).Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=$AK$3:$AK$6"
    End With
WS.Select
WS.Cells(609, 1).EntireRow.Delete
WS.Visible = True
lone wolf
Utente Senior
 
Post: 108
Iscritto il: 23/05/15 14:59

Re: Differenza fra Pulsante e Commandbutton

Postdi ricky53 » 28/06/15 16:52

Ciao,
occorrerebbe il codice completo e con la descrizione di cosa deve fare il codice ... non vorrai farci "studiare tutto il codice" (che non abbiamo) per tentare di capire cosa deve fare il codice ... e, inoltre, non avendo un file su cui provare ...!

Comunque:
quanto vale "Y"?
che errore ottieni?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Differenza fra Pulsante e Commandbutton

Postdi lone wolf » 28/06/15 18:41

Buona serata Ricky, forse è meglio allegare il file, il codice è inserito nel CommandButton “Nuovo Inserimento” e dovrebbe inserire una nuova riga in tutti i fogli e nel foglio Elenco dovrebbe oltre alla riga deve inserire la convalida in colonna E, e una formula in colonna F, quello che non funziona è la convalida tutto il resto sembra funzionare bene a giudicare dalle prove fatte, grazie per l’aiuto e buona serata a tutti


http://www.filedropper.com/carico
lone wolf
Utente Senior
 
Post: 108
Iscritto il: 23/05/15 14:59

Re: Differenza fra Pulsante e Commandbutton

Postdi ricky53 » 29/06/15 01:17

Ciao,
se ci dici come avviare il pacchetto e come operare ci agevoli il lavoro.
Grazie.

Non vorrai, come già scritto, che ci mettiamo a studiare tutto il tuo codice presente nel pacchetto che hai realizzato ...
Sii buono con noi!
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Differenza fra Pulsante e Commandbutton

Postdi lone wolf » 29/06/15 08:39

Buon giorno Ricky, ecco come si avvia la procedura: seleziono la cella dove inserire un nuovo farmaco es. riga 15 “Amiodar cpr” il codice inserisce una nuova riga in tutti i fogli del file nella stessa posizione, ed elimina la riga 609 per mantenere sempre la stessa area di lavoro in tutti i fogli tranne il foglio “Scadenza farmaci”, nella nuova riga inserisco il nome del nuovo farmaco, la giacenza (che sarebbe comunque 0), la quantità necessaria giornaliera del farmaco, e la confezione (es. “10” se vi sono 10 fl per confezione) con la convalida scelgo se si tratta di “Conf o N”, fatto questo attivo il pulsante “Aggiorna” che mi aggiorna tutti i fogli con il nuovo farmaco, ed il file è di nuovo pronto a continuare il lavoro di carico/scarico e/o di nuova richiesta di farmaci. Spero di essere stato abbastanza esaustivo, grazie per l’aiuto e buona giornata a tutti
lone wolf
Utente Senior
 
Post: 108
Iscritto il: 23/05/15 14:59

Re: Differenza fra Pulsante e Commandbutton

Postdi ricky53 » 29/06/15 09:59

Ciao,
al momento non posso provare.
Ci provo questa sera
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Differenza fra Pulsante e Commandbutton

Postdi Anthony47 » 01/07/15 00:44

Il foglio e' protetto, certe cose non puoi farle; anzi mi meraviglia che non si blocchi su EntireRow.Insert.
Usa WS.Unprotect prima di "With Selection.Validation" e WS.protect in coda alla macro.

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

Re: Differenza fra Pulsante e Commandbutton

Postdi lone wolf » 01/07/15 19:33

Buona sera Anthony, credevo che con “userinterfaceonly” in ogni caso non serviva sproteggere il foglio, adesso va bene, adesso scusa se mi permetto di chiedere un’ultimo aiuto per finire il file, dovrei nei fogli mesi (gen, feb ecc..) inserire nel range C10:C610 una formattazione condizionale che mi cambi il colore delle cella se inserisco un qualsiasi valore, ho abbozzato (cercando in rete) questo codice che sembra funzionare in parte, nel senso che cambia il colore solo nella cella C10 come posso modificare affinché la formattazione avvenga in tutte le celle del range C10:C610 in cui inserisco un valore? Grazie infinite per l’aiuto e la disponibilità, una buona serata a tutti.

Questo è il codice abbozzato:

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range("C10:C610")) Is Nothing Then
Exit Sub

Else
Range("C10").Select
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=C10<>"""""
    Selection.FormatConditions(1).Font.ColorIndex = 35
    Selection.FormatConditions(1).Interior.ColorIndex = 4

End If
End Sub
lone wolf
Utente Senior
 
Post: 108
Iscritto il: 23/05/15 14:59

Re: Differenza fra Pulsante e Commandbutton

Postdi Anthony47 » 01/07/15 21:46

Ma se vuoi impostare una formattazione condizionale non e' necessario farlo sull' evento Worksheet_Change, perche' trattasi di operazione che eseguita una volta rimane sul foglio; quindi:
-selezioni a mano l' intervallo C10:C610
-applichi una formattazione condizionale usando la formula =C10<>""

Se vuoi farlo all'interno di una Sub Worksheet_Change, che non consiglio perche' si continua a impostare una cosa probabilmente gia' impostata, allora invece di
Range("C10").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=C10<>"""""
Selection.FormatConditions(1).Font.ColorIndex = 35
Selection.FormatConditions(1).Interior.ColorIndex = 4
Userai
Codice: Seleziona tutto
With Target
    .FormatConditions.Delete
    .FormatConditions.Add Type:=xlExpression, Formula1:="=" & Target.Address & "<>"""""
    .FormatConditions(1).Font.ColorIndex = 35
    .FormatConditions(1).Interior.ColorIndex = 4
End With

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

Re: Differenza fra Pulsante e Commandbutton

Postdi lone wolf » 01/07/15 22:49

Ciao Anthony, credo proprio che seguirò il tuo consiglio, per il momento penso di aver terminato il file adesso effettuerò per qualche giorno varie prove per verificare di aver raggiunto l'obiettivo finale sul funzionamento del file, prima di iniziare ad utilizzarlo realmente, un grazie di cuore per l'aiuto e la disponibilità dimostrata da te e da Ricky, e un grazie a tutto il forum, alla prossima... ciao
lone wolf
Utente Senior
 
Post: 108
Iscritto il: 23/05/15 14:59


Torna a Applicazioni Office Windows


Topic correlati a "Differenza fra Pulsante e Commandbutton":


Chi c’è in linea

Visitano il forum: Nessuno e 58 ospiti