Risultati da 1 a 20 di 20

Discussione: Blocco automatico data



  1. #1
    L'avatar di MauroS
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Abruzzo
    Età
    40
    Messaggi
    56
    Versione Office
    2007 WIN
    Likes ricevuti
    1

    Blocco automatico data

    Buona sera a tutti,
    Avrei bisogno di un aiuto per poter creare una macro che in automatico blocca la data in una cella dove è presente la funzione oggi() nel momento che salvo il file con un altro nome.
    Ringrazio in anticipo chiunque può aiutarmi. Grazie.

  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao Mauro,
    aspetterei la risposta di qualcuno che il VBA lo conosce veramente, comunque credo che in "Questa_cartella_di_lavoro" potresti scrivere:

    Codice: 
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)   
        If SaveAsUI = True Then
            Sheets(1).Range("A1").Value = Format(Date, "mm/dd/yyyy")
        End If
    End Sub
    e ti dovrebbe salvare la data nella cella A1 del Foglio1...

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  3. #3
    L'avatar di MauroS
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Abruzzo
    Età
    40
    Messaggi
    56
    Versione Office
    2007 WIN
    Likes ricevuti
    1
    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Ciao Mauro,
    aspetterei la risposta di qualcuno che il VBA lo conosce veramente, comunque credo che in "Questa_cartella_di_lavoro" potresti scrivere:

    Codice: 
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)   
        If SaveAsUI = True Then
            Sheets(1).Range("A1").Value = Format(Date, "mm/dd/yyyy")
        End If
    End Sub
    e ti dovrebbe salvare la data nella cella A1 del Foglio1...
    Ciao Cromagno e grazie per il pronto riscontro.
    Ho provato e fa esattamente quello di cui avevo bisogno. A questo punto ci sarebbe un'ulteriore opzione che se possibile vorrei cercare di aggiungere.
    In effetti il file i questione contiene dei collegamenti ad altri file Excel che vorrei venissero disattivati (lasciando quindi solo i valori nelle celle) nel momento in cui vado a salvare il file con un altro nome come fatto per la data.
    Ti ringrazio in anticipo.

    Mauro.

  4. #4

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao Mauro,
    se ho capito correttamente, potresti "modificare" il codice di prima con questo:

    Codice: 
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim lnk As Hyperlink
        If SaveAsUI = True Then
            Sheets(1).Range("A1").Value = Format(Date, "mm/dd/yyyy")
            For Each lnk In Sheets(1).Hyperlinks
                lnk.Delete
            Next
        End If
    End Sub

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  5. #5
    L'avatar di MauroS
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Abruzzo
    Età
    40
    Messaggi
    56
    Versione Office
    2007 WIN
    Likes ricevuti
    1
    Ciao Cromagno
    Domani che sono al lavoro provo e ti faccio sapere. Intanto ti ringrazio ancora per l'aiuto

    Ciao
    Mauro

  6. #6
    L'avatar di MauroS
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Abruzzo
    Età
    40
    Messaggi
    56
    Versione Office
    2007 WIN
    Likes ricevuti
    1
    Ciao Cromagno,
    ho provato ad inserire il codice e mentre per la data funziona tutto perfettamente non vengono disattivati i collegamenti ad altri file in fase di salvataggio con nome.
    Più tardi provo ancora per vedere se ho sbagliato qualcosa ma sembra che non funzioni.

    Intanto ti ringrazio.

    Mauro.

  7. #7

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao Mauro,
    ora non ho la possibilità di provare altre strade e non so darti una spiegazione... nelle prove che ho fatto, funzionava :250:
    Proverò di nuovo appena posso, magari qualcun altro ci darà una dritta..

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  8. #8

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1011
    Versione Office
    .
    Likes ricevuti
    365
    Likes dati
    0
    Ciao,

    In effetti il file i questione contiene dei collegamenti ad altri file Excel che vorrei venissero disattivati (lasciando quindi solo i valori nelle celle)
    dovresti precisare se solo le celle che contengono formule con riferimento a file esterni devono essere trasformate in valori o si possono convertire tutte le celle con formule.
    Inoltre questa conversione riguarda un solo foglio o più fogli?
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  9. #9
    L'avatar di MauroS
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Abruzzo
    Età
    40
    Messaggi
    56
    Versione Office
    2007 WIN
    Likes ricevuti
    1
    Ciao Scossa
    Purtroppo in questo momento non ho modo di allegare il file di esempio comunque ho bisogno di trasformare in valori solo le celle collegate a file esterni. La conversione riguarda un solo un foglio denominato FORMATI su 3 fogli del file.
    Intanto grazie per l'interessamento e nel caso non fosse chiaro domani cerco di allegare il file che uso per lavoro.

    Grazie Mauro

  10. #10
    L'avatar di MauroS
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Abruzzo
    Età
    40
    Messaggi
    56
    Versione Office
    2007 WIN
    Likes ricevuti
    1
    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Ciao,



    dovresti precisare se solo le celle che contengono formule con riferimento a file esterni devono essere trasformate in valori o si possono convertire tutte le celle con formule.
    Inoltre questa conversione riguarda un solo foglio o più fogli?
    Ciao Scossa,
    allego il file di prova per cercare di spiegare meglio il problema.

    Grazie.

    Mauro.
    Ultima modifica fatta da:Gerardo Zuccalà; 05/09/15 alle 16:36 Motivo: Modificato perchè non si visualizzava file

  11. #11

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1011
    Versione Office
    .
    Likes ricevuti
    365
    Likes dati
    0
    Citazione Originariamente Scritto da MauroS Visualizza Messaggio
    allego il file di prova per cercare di spiegare meglio il problema.
    Nel file che hai allegato non ci sono formule con collegamenti ad altri file .....

    Comunque, se ho capito bene, nel tuo file metti questo codice nel modulo di classe Questa_cartella di _lavoro:

    Codice: 
    '---------------------------------------------------
    'Nel modulo di classe di Questa_cartella di _lavoro
    '---------------------------------------------------
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        If SaveAsUI = True Then
             Worksheets("FORMATI").Range("A1").Value = Format(Date, "mm/dd/yyyy")
             Call RimuoviFormuleEsterne
        End If
    End Sub


    In un modulo standard, invece metti questo codice:


    Codice: 
    '---------------------------------------------------
    'in un modulo standard
    '---------------------------------------------------
    
    '---------------------------------------------------------------------------------------
    ' Procedure : RimuoviFormuleEsterne
    ' Author    : scossa
    ' Date      : 04/09/2015
    ' Purpose   :
    '---------------------------------------------------------------------------------------
    '
    Public Sub RimuoviFormuleEsterne()
    
    
      Dim ws As Worksheet
      Dim rng As Range
      Dim cella As Range
      Dim bCalc As XlCalculation
    
    
      With Application
        bCalc = .Calculation
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
      End With
       
      Set ws = ThisWorkbook.Worksheets("FORMATI")
     
      Application.EnableEvents = False
      On Error Resume Next
      Set rng = ws.Cells.Dependents.Cells
      On Error GoTo BloccaData_Error
      If Not rng Is Nothing Then
          For Each cella In rng.Cells
            With cella
              'Debug.Print .Address & ": " & .Formula
              If InStr(1, .Formula, "\[", vbTextCompare) Then
                .Value = .Value
              End If
            End With
          Next cella
      End If
      On Error GoTo 0
    
    
    BloccaData_Error:
      With Err
        If .Number <> 0 And .Number <> 1004 Then
          MsgBox "Error: " & .Description, vbCritical, "ERRORE"
        End If
      End With
      Set cella = Nothing
      Set rng = Nothing
      Set ws = Nothing
      
      With Application
        .Calculation = bCalc
        .EnableEvents = True
        .ScreenUpdating = True
      End With
    
    
    End Sub
    Ultima modifica fatta da:scossa; 05/09/15 alle 20:18 Motivo: corretto codice
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  12. #12
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1125
    @scossa
    Ciao scossa sto imparando
    che differenza c'è tra Modulo di classe e modulo standart?
    quando credo di aver imparato qualcosa c'è subito qualcosa di nuovo che mi confonde le idee:235:

    Grazie!

  13. #13

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1011
    Versione Office
    .
    Likes ricevuti
    365
    Likes dati
    0
    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    che differenza c'è tra Modulo di classe e modulo standard?

    Sono moduli di classe i moduli ThisWorkbook (o Questa_cartella_di_lavoro), quelli dei singoli fogli di lavoro (Foglio1, Foglio2 ...), quelli delle eventuali userform (UserForm1 ...) e quelli creati con l'apposita voce del menu Inserisci -> modulo di classe.
    In questi moduli, normalmente, si inserisce il codice legato alla gestione degli eventi relativi all'oggetto a cui si riferiscono.


    Sono moduli standard quelli creati con l'apposita voce del menu Inserisci -> modulo
    In questi moduli si insersce il normale codice (sub, function)
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  14. #14
    L'avatar di MauroS
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Abruzzo
    Età
    40
    Messaggi
    56
    Versione Office
    2007 WIN
    Likes ricevuti
    1
    Ciao Scossa,
    ho provato ad inserire il codice ma non riesco a farlo funzionare. Appena rientro al lavoro provo nuovamente ad allegare il file originale senza dati sensibili e con i collegamenti non disattivati per vedere se ho sbagliato qualcosa. Intanto ti ringrazio come sempre per l'interessamento e l'aiuto che sei disponibile a dare.

    Un saluto.

    Mauro.

  15. #15

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1011
    Versione Office
    .
    Likes ricevuti
    365
    Likes dati
    0
    Citazione Originariamente Scritto da MauroS Visualizza Messaggio
    Ciao Scossa,
    ho provato ad inserire il codice ma non riesco a farlo funzionare.
    Hai visto che avevo modificato il post per correggere il codice?
    Hai copiato il codice prima che lo modificassi o hai usato quello corretto che c'è adesso?
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  16. #16
    L'avatar di MauroS
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Abruzzo
    Età
    40
    Messaggi
    56
    Versione Office
    2007 WIN
    Likes ricevuti
    1
    Ciao Scossa,
    mi scuso per il ritardo nella risposta ma sono stato fuori per lavoro. Ho provato ad inserire nuovamente il codice ma mentre il blocco della data avviene correttamente non riesco a far funzionare il codice per disattivare i collegamenti ai due file esterni.
    Allego una piccola parte del file per cercare di spiegarmi meglio.
    Vorrei che venissero disattivati i collegamenti ai due file categorie_macchine.xls e MEDIE_VENDITE+MEDIE_CLIENTE.xlsx nel momento in cui vado a salvare con un altro nome.
    Ti ringrazio in anticipo per la disponibilità .

    Mauro.

  17. #17

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1011
    Versione Office
    .
    Likes ricevuti
    365
    Likes dati
    0
    Citazione Originariamente Scritto da MauroS Visualizza Messaggio
    Vorrei che venissero disattivati i collegamenti ai due file categorie_macchine.xls e MEDIE_VENDITE+MEDIE_CLIENTE.xlsx nel momento in cui vado a salvare con un altro nome.
    Ciao,

    ho rivisto il codice, quello che segue dovrebbe funzionare senza problemi.

    Nel modulo di classe di "Questa_cartella_di_lavoro":

    Codice: 
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        If SaveAsUI = True Then
            Worksheets("FORMATI").Range("A1").Value = Format(Date, "mm/dd/yyyy")
            Call RimuoviFormuleEsterne
        End If
    End Sub


    In un modulo standard:

    Codice: 
    '---------------------------------------------------------------------------------------
    ' Procedure : RimuoviFormuleEsterne
    ' Author    : scossa
    ' Date      : 10/09/2015
    ' Purpose   :
    '---------------------------------------------------------------------------------------
    '
    Public Sub RimuoviFormuleEsterne()
      Dim ws As Worksheet
      Dim rng As Range
      Dim cella As Range
      Dim bCalc As XlCalculation
      Dim j As Long
      With Application
        bCalc = .Calculation
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
      End With
       
      Set ws = ThisWorkbook.Worksheets("FORMATI")
      
      Application.EnableEvents = False
      On Error Resume Next
      Set rng = ws.Cells.SpecialCells(xlCellTypeFormulas, 23)
      On Error GoTo BloccaData_Error
      If Not rng Is Nothing Then
        For Each cella In rng.Cells
          With cella
            Debug.Print .Address & ": " & .Formula
            If InStr(1, .Formula, "[", vbTextCompare) Then
              .Value = .Value
            End If
          End With
        Next cella
      End If
      On Error GoTo 0
    BloccaData_Error:
      With Err
        If .Number <> 0 And .Number <> 1004 Then
          MsgBox "Error: " & .Description, vbCritical, "ERRORE"
        End If
      End With
      Set cella = Nothing
      Set rng = Nothing
      Set ws = Nothing
      
      With Application
        .Calculation = bCalc
        .EnableEvents = True
        .ScreenUpdating = True
      End With
      
    End Sub
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  18. #18
    L'avatar di MauroS
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Abruzzo
    Età
    40
    Messaggi
    56
    Versione Office
    2007 WIN
    Likes ricevuti
    1
    [QUOTE=scossa;3903]Ciao,

    ho rivisto il codice, quello che segue dovrebbe funzionare senza problemi.


    QUOTE]

    Grazie Scossa, come sempre. Ho provato e adesso funziona tutto perfettamente.
    grazie del tuo grande aiuto.

    Mauro

  19. #19

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1011
    Versione Office
    .
    Likes ricevuti
    365
    Likes dati
    0
    Citazione Originariamente Scritto da MauroS Visualizza Messaggio
    Grazie Scossa, come sempre. Ho provato e adesso funziona tutto perfettamente.
    Sì, ma sono stupido!

    Mi ero dimenticato della soluzione più semplice, visto che i file in gioco sono pochi:

    Codice: 
    '---------------------------------------------------------------------------------------
    ' Procedure : RimuoviFormuleEsterne
    ' Author    : scossa
    ' Date      : 14/09/2015
    ' Purpose   :
    '---------------------------------------------------------------------------------------
    '
    Public Sub RimuoviFormuleEsterne()
      ThisWorkbook.BreakLink Name:="MEDIE_VENDITE+MEDIE_CLIENTE.xlsx", Type:=xlExcelLinks
      ThisWorkbook.BreakLink Name:="categorie_macchine.xls", Type:=xlExcelLinks
    End Sub
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  20. I seguenti utenti hanno dato un "Like"


  21. #20
    L'avatar di MauroS
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Abruzzo
    Età
    40
    Messaggi
    56
    Versione Office
    2007 WIN
    Likes ricevuti
    1
    Ciao Scossa,
    ho provato ancora nuovamente e la nuova soluzione è ancora più efficace della precedente in quanto fa proprio quello di cui avevo bisogno lasciando solo i dati (quantità, nomi ecc) all'interno delle celle dove c'erano i collegamenti esterni.
    Ti ringrazio.

    Mauro.

Discussioni Simili

  1. [Tutorial VBA] Inserire data e ora in automatico che rimangono fisse (Evento Change e metodo Intersect)
    Di ges nel forum Imparando Excel & VBA - Tutorial di Excel-
    Risposte: 11
    Ultimo Messaggio: 18/05/17, 12:50
  2. [Risolto] Calcolo automatico della data scadenza di fatture
    Di rmalenc nel forum Domande su Excel in generale
    Risposte: 11
    Ultimo Messaggio: 18/11/16, 12:09
  3. Errore nel codice - Blocco If senza End If
    Di ProgrammD69 nel forum Domande su Excel VBA e MACRO
    Risposte: 35
    Ultimo Messaggio: 29/07/16, 10:23
  4. inserimento automatico basato sulla data
    Di Diego nel forum Domande su Excel in generale
    Risposte: 9
    Ultimo Messaggio: 25/11/15, 18:55
  5. Blocco formule!!!!
    Di Fabio1972 nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 28/08/15, 19:21

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •