Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Vincolare l’esecuzione di una macro

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

Vincolare l’esecuzione di una macro

Postdi lone wolf » 15/12/20 10:21

Salve utilizzo una macro per archiviare dei dati, ed avrei la necessita di vincolare l’esecuzione della macro al contenuto di una cella, cioè se nella cella N100 è “SI” allora la macro si deve eseguire altrimenti se nella cella N100 è “NO” dovrei avere un msgbox “Verificare i dati da inserire”, grazie in anticipo per l’aiuto e una buona giornata a tutti.
Questa è la macro che utilizzo per l’archiviazione dei dati:
Codice: Seleziona tutto
Sub ArchiviaRicoveriGiornalieri10()
    Application.ScreenUpdating = False
    Sheets("Archivio").Unprotect ""
    Sheets("Movimenti").Unprotect ""
    Range("B8:AR24").Select
    Selection.Copy
    Sheets("Archivio").Visible = True
    Sheets("Archivio").Select
    Range("B7").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    ActiveWindow.SmallScroll Down:=15
    ActiveCell.Offset(17, 0).Range("A1").Select
    Sheets("Movimenti").Select
        Range("Z8:AA8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("Z5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("Z8").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=R[-3]C+RC[-4]-RC[-2]"
    Range("AA8").Select
    ActiveCell.FormulaR1C1 = "=R[-3]C+RC[-4]-RC[-2]"
    Range("E8:H24").Select
    Range("E8:H24,J8:J24,N8:O24").Select
    Range("N8").Activate
    Selection.ClearContents
    ActiveSheet.Range("F4").Value = ActiveSheet.Range("F4").Value + 1
    Range("F4").Select
    Sheets("Archivio").Visible = False
Application.CutCopyMode = False
    MsgBox ("Fatto")
    Application.ScreenUpdating = True
    Sheets("Movimenti").Protect ""
    Sheets("Archivio").Protect ""
    Application.ScreenUpdating = True
End Sub
lone wolf
Utente Junior
 
Post: 84
Iscritto il: 23/05/15 14:59

Sponsor
 

Re: Vincolare l’esecuzione di una macro

Postdi zsadist » 15/12/20 10:32

buongiorno
letto così, su due piedi, subito prima di
Application.ScreenUpdating = False

metti

if ucase(range("N100"))<>"SI" then exit sub else
e tutto il resto

non posso verificare al momento
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 96
Iscritto il: 04/04/19 13:48

Re: Vincolare l’esecuzione di una macro

Postdi zsadist » 15/12/20 10:38

Scusa, ho letto meglio

allora
Codice: Seleziona tutto
Sub ArchiviaRicoveriGiornalieri10()
'*****Verifico la condizione
if ucase(Range("N100"))="SI" then goto Esegui else
msgbox “Verificare i dati da inserire”
exit sub

Esegui:
    Application.ScreenUpdating = False
    Sheets("Archivio").Unprotect ""
    Sheets("Movimenti").Unprotect ""
    Range("B8:AR24").Select
    Selection.Copy
    Sheets("Archivio").Visible = True
    Sheets("Archivio").Select
    Range("B7").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    ActiveWindow.SmallScroll Down:=15
    ActiveCell.Offset(17, 0).Range("A1").Select
    Sheets("Movimenti").Select
        Range("Z8:AA8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("Z5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("Z8").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=R[-3]C+RC[-4]-RC[-2]"
    Range("AA8").Select
    ActiveCell.FormulaR1C1 = "=R[-3]C+RC[-4]-RC[-2]"
    Range("E8:H24").Select
    Range("E8:H24,J8:J24,N8:O24").Select
    Range("N8").Activate
    Selection.ClearContents
    ActiveSheet.Range("F4").Value = ActiveSheet.Range("F4").Value + 1
    Range("F4").Select
    Sheets("Archivio").Visible = False
Application.CutCopyMode = False
    MsgBox ("Fatto")
    Application.ScreenUpdating = True
    Sheets("Movimenti").Protect ""
    Sheets("Archivio").Protect ""
    Application.ScreenUpdating = True
End Sub
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 96
Iscritto il: 04/04/19 13:48

Re: Vincolare l’esecuzione di una macro

Postdi lone wolf » 15/12/20 11:38

Buon giorno, zsadist prima di tutto grazie per l’aiuto, provata velocemente sembra funzionare bene comunque non posso verificare bene perché sono al lavoro stasera proverò meglio e ti faccio sapere, grazie e buona giornata a tutti
lone wolf
Utente Junior
 
Post: 84
Iscritto il: 23/05/15 14:59

Re: Vincolare l’esecuzione di una macro

Postdi lone wolf » 16/12/20 00:42

Buona sera zsadist ho fatto varie prove e la tua modifica va benissimo, grazie per l'aiuto e una buona serata a tutto il forum
lone wolf
Utente Junior
 
Post: 84
Iscritto il: 23/05/15 14:59

Re: Vincolare l’esecuzione di una macro

Postdi zsadist » 16/12/20 07:54

buongiorno a te lone wolf
perfetto :)
buona giornata a te
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 96
Iscritto il: 04/04/19 13:48


Torna a Applicazioni Office Windows


Topic correlati a "Vincolare l’esecuzione di una macro":

Richiesta aiuto macro VBA
Autore: mara26
Forum: Programmazione
Risposte: 1

Chi c’è in linea

Visitano il forum: Nessuno e 30 ospiti