Excel Forum Per condividere esperienze su Microsoft Excel

Macro in Workbook cancella dati

  • Messaggi
  • OFFLINE
    LadyExcel85
    Post: 18
    Registrato il: 26/10/2018
    Città: CASALE MONFERRATO
    Età: 38
    Utente Junior
    2016
    00 06/09/2019 15:51
    Ciao a tutti,

    sto cercando di fare una cosa ma sto diventando matta.
    Mi spiego, ho un file excel di base che vorrei si pulisse (i dati presenti vengono cancellati) ad ogni apertura di tale file.
    E fin qui con Workbook Open riesco ad ottenere il risultato voluto.
    Il problema è che se salvo questo file con un altro nome all'apertura di questo nuovo file mi cancella ugualmente i dati.
    Ho provato a dire che voglio si cancellino i dati solo se il Workbook attivo è "Modulo base" scrivendo questo codice:

    Private Sub Workbook_Open()
    Workbooks("MODULO base.xlsm").Activate
    ...resto del codice
    End Sub

    Ma all'apertura del file salvato con nome (PincoPallo) mi restituisce un errore perchè ovviamente non trova la cartella "MODULO base"

    Vorrei ovviare a questo messaggio di errore.

    In pratica a me serve un modulo che uso come base e che ad ogni nuova apertura sia pulito, mentre quando il modulo viene compilato ho bisogno che si generi un secondo file che non sovrascriva i dati sul modulo base e che ad ogni apertura resti come l'ultima volta che lo si è salvato.

    Ho provato differenti soluzioni, tipo far salvare automaticamente il secondo file con i dati contenuti in cella C1, così mi salva con nome il file, ma se aggiungo il codice per pulire il foglio ovviamente mi pulisce anche quello salvato tutte le volte.

    Non riesco a capire come non far generare errori e come dirgli che voglio che venga pulito il foglio all'apertura del file ma solo se si la cartella si chiama "MODULO base".

    Spero di essermi spiegata e vi ringrazio per ogni aiuto.

    Saluti
  • OFFLINE
    dodo47
    Post: 2.371
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    10 06/09/2019 16:02
    testa il nome del tuo documento all'apertura:

    Private Sub Workbook_Open()
    if thisworkbook.Name = "MODULO base.xlsm" then
    cancella....
    end if

    saluti



    [Modificato da dodo47 06/09/2019 16:03]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    LadyExcel85
    Post: 18
    Registrato il: 26/10/2018
    Città: CASALE MONFERRATO
    Età: 38
    Utente Junior
    2016
    00 08/09/2019 22:20
    grazie
    Grazie dell'aiuto, ha funzionato perfettamente, non ci avevo pensato, e dire che non era difficile come soluzione...

    Saluti
  • 15MediaObject5,0013 1