Sviluppare funzionalita su Microsoft Office con VBA Application.DisplayAlerts

Login Registrati
Stai vedendo 10 articoli - dal 1 a 10 (di 10 totali)
  • Autore
    Articoli
  • #5899 Risposta

    ABRAMO48
    Partecipante

      Sto usando la funzione "Application.DisplayAlerts" False/true per evitare i messaggi di sovrascrittura, e altri, quando uso una "saveAs". Il fatto è che i messaggi sono eliminati ma ... il file "NON VIENE SALVATO". Perché?

      Ho letto che con Excel 5.0/95 succede questo, ma io sto usando excel 97 ...

      Come posso fare carissimi?

      #5900 Risposta
      Marius44
      Marius44
      Moderatore
        4 pts

        Ciao

        prova ad allegare il codice della macro (intero).

        Ciao,

        Mario

        #5901 Risposta

        ABRAMO48
        Partecipante
             Application.DisplayAlerts = False
          If PERCORSOX <> "" Then
          ActiveWorkbook.SaveAs Filename:= _
                  PERCORSOX & "ORDINE_CALCOLO.xls" _
                  , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
                  ReadOnlyRecommended:=False, CreateBackup:=False
          Else
          ActiveWorkbook.SaveAs Filename:= _
                  PERCORSOY & "ORDINE_CALCOLO.xls" _
                  , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
                  ReadOnlyRecommended:=False, CreateBackup:=False
           End If
                  Windows("LOGISTA_ARTICOLI.xls").Activate
                  ActiveWorkbook.Save
              Application.DisplayAlerts = True
          #5902 Risposta
          Marius44
          Marius44
          Moderatore
            4 pts

            Ciao

            non barare... (eh, eh, eh)

            Le variabili PERCORSOX e PERCORSOY cosa contengono? I percorsi memorizzati sono corretti? Alla fine del percorso, prima del nome del file, c'è la barra rovescia ( \ )?

            Ciao,

            Mario

            #5903 Risposta

            ABRAMO48
            Partecipante

              ahahah! 

              ecco qua l'intero codice della sub:

              Sub M_SAVE()
              '
              ' M_SAVE Macro
              '
                  Cells(16, "A") = ""
                  Cells(17, "A") = ""
                  Cells(16, "H") = ""
                  Cells(17, "H") = ""
              ' *** NON ESEGUIRE SE NO CALCOLO
              If Cells(18, "W") <> "CALCOLO" Then
                  Windows("LOGISTA_MACRO.xls").Activate
                  Cells(16, "A") = "NO ORDINE_CALCOLO"
                  Cells(17, "A") = "SALVA NON CONSENTITO"
                  Range("A17").Select
                  Exit Sub
              End If
              
                  Windows("ORDINE_CALCOLO.xls").Activate
                  Sheets("Foglio1").Select
                  
                  PERCORSOX = ""
                  PERCORSOY = ""
              If Cells(1, "A") = "_ORDINE" Then
                  Windows("LOGISTA_MACRO.xls").Activate
                  Range("A34").Select
                  PERCORSOX = ActiveCell.Value
              Else
                  Windows("LOGISTA_MACRO.xls").Activate
                  Range("A35").Select
                  PERCORSOY = ActiveCell.Value
              End If
                  
                  Windows("ORDINE_CALCOLO.xls").Activate
                  
                  Call M_ELIMINA
                  
                  Windows("ORDINE_CALCOLO.xls").Activate
                  Sheets("Foglio1").Select
                  
                  ' *** SELEZIONA PER CODICE
                  ActiveSheet.Unprotect
                  Rows("11:300").Select
                  Selection.Sort Key1:=Range("A11"), Order1:=xlAscending, _
                  Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
                  Range("A10").Select
                  ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
                  ActiveSheet.EnableSelection = xlNoRestrictions
                  Application.ScreenUpdating = True
                  
              '    Application.DisplayAlerts = False
              If PERCORSOX <> "" Then
              ActiveWorkbook.SaveAs Filename:= _
                      PERCORSOX & "ORDINE_CALCOLO.xls" _
                      , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
                      ReadOnlyRecommended:=False, CreateBackup:=False
              Else
              ActiveWorkbook.SaveAs Filename:= _
                      PERCORSOY & "ORDINE_CALCOLO.xls" _
                      , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
                      ReadOnlyRecommended:=False, CreateBackup:=False
               End If
                      Windows("LOGISTA_ARTICOLI.xls").Activate
                      ActiveWorkbook.Save
                  Application.DisplayAlerts = True
               
                      Windows("LOGISTA_MACRO.xls").Activate
                      Cells(16, "A") = "ORDINE_CALCOLO - LOGISTA_ARTICOLI"
                      Cells(17, "A") = "SALVATI CORRETTAMENTE"
                      Range("A17").Select
              End Sub
              
              #5904 Risposta

              ABRAMO48
              Partecipante

                il comando:

                ' Application.DisplayAlerts = False

                lo remmato poi perché non funzionava, come ti ho detto.

                #5905 Risposta

                ABRAMO48
                Partecipante

                  sembra funzioni come è scritto qui, ma io non sto usando Excel 5.0/95 ...

                  (in effetti sviluppo il lavoro sotto MAC dove funziona tutto, poi lo trasferisco sotto Windows - excel 97 dove non funziona più ... il display allert)

                  Syntax<br />expression . DisplayAlerts

                  expression A variable that represents an Application object.

                  Remarks<br />The default value is True . Set this property to False to suppress prompts and alert messages while a macro is running; when a message requires a response, Microsoft Excel chooses the default response.

                  If you set this property to False , Microsoft Excel sets this property to True when the code is finished, unless you are running cross-process code.

                  Note When using the SaveAs method for workbooks to overwrite an existing file, the Confirm Save As dialog box has a default of No, while the Yes response is selected by Excel when the DisplayAlerts property is set to False . The Yes response overwrites the existing file.When using the SaveAs method for workbooks to save a workbook that contains a Visual Basic for Applications (VBA) project in the Excel 5.0/95 file format, the Microsoft Exceldialog box has a default of Yes, while the Cancel response is selected by Excel when the DisplayAlerts property is set to False . You cannot save a workbook that contains a VBA project using the Excel 5.0/95 file format.

                  #5908 Risposta
                  patel
                  patel
                  Moderatore
                    5 pts

                    i percorsi sono nelle celle che noi non possiamo vedere, comunque un percorso su mac ha una sintassi diversa da quello su windows, quindi è normale che non funzioni

                    #5909 Risposta

                    ABRAMO48
                    Partecipante

                      no, no Marius, i percorsi vanno bene, sono variabili e sintatticamente diversi quando lavoro sotto Mac e sotto Win. Li acquisisco con partendo dal comando =CELLA("nomefile";A33) e da questa variabile costruisco i percorsi che mi servono.

                      prova ne sia che, senza il displayAlerts funziona tutto bene a parte la scocciatura di rispondere a tutti i messaggi di sovrascrittura e quant'altro. Con il DisplayAlerts, sotto MAC salva i files senza messaggi, sotto WIN i messaggi sono soppressi ma i files non sono soprascritti. Il display dei messaggi suddetti non è solo una scocciatura è che c'è sempre la possibilità che l'operatore distratto dalla contingenza del suo lavoro clicchi NO invece di SI con tutti gli errori conseguenti.

                      #5910 Risposta
                      Marius44
                      Marius44
                      Moderatore
                        4 pts

                        Ciao

                        Un giro in rete mi ha fatto incocciare questa discussione:

                        https://www.stl-training.co.uk/post-34753-applicationdisplayalerts--false.html

                        Forse, e ripeto forse, risolve il tuo problema.

                        Ciao,

                        Mario

                      Login Registrati
                      Stai vedendo 10 articoli - dal 1 a 10 (di 10 totali)
                      Rispondi a: Application.DisplayAlerts
                      Gli allegati sono permessi solo ad utenti REGISTRATI
                      Le tue informazioni:



                      vecchio frac - 796 risposte

                      albatros54
                      albatros54 - 516 risposte

                      Marius44
                      Marius44 - 282 risposte

                      patel
                      patel - 258 risposte

                      Luca73
                      Luca73 - 233 risposte

                      ChatBox per richiedere velocemente assistenza a semplici problematiche

                      Devi fare il login per scrivere nella chat

                      0
                      1