Sviluppare funzionalita su Microsoft Office con VBA Macro Anteprima di stampa con condizione

Login Registrati
Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
  • Autore
    Articoli
  • #7241 Score: 0 | Risposta

    essegi75
    Partecipante

      Buongiorno

      ho bisogno di condizionare l'anteprima di stampa al verificarsi di un numero in una determinata cella.

      La cella A25 del foglio DATI controlla la compilazione di alcuni campi e se questi sono correttamente compilati da come totale il numero 20.

      Quindi prima che la macro faccia il suo dovere, ho bisogno che controlli che la cella A25. Se la cella A25 è uguale a 20 allora la macro può aprire l'anteprima di stampa del foglio FV, altrimenti deve comparire un box con il seguente messaggio: NON HAI COMPILATO TUTTI I CAMPI OBBLIGATORI!!! COMPILA I CAMPI EVIDENZIATI IN ROSSO.

      Grazie mille per l'aiuto

      Questa è la macro

      Sub PREVIEW()
      With Worksheets("FV")
      .Activate
      .PrintPreview
      End With
      Sheets("DATI").Select
      Range("C4").Select
      End Sub

       

      #7244 Score: 0 | Risposta

      vecchio frac
      Senior Moderator
        272 pts

        Rifletti un attimo.

        Tu devi far scattare un'operazione (visualizza anteprima) quando accade qualcosa (un evento) in una determinata zona del foglio (la cella A25).

        La macro che hai citato come viene avviata? in base a cosa, a quale condizione? qualcuno la deve eseguire: un pulsante? da sola? Non c'è niente, in quel codice, che aiuti a capire come avviene la funzione di preview al verificarsi della condizione.

        Allora chiediti: esiste un sistema, in Excel, per intercettare la modifica di una cella, controllarne il valore, eseguire qualcosa se questo valore è uguale a una soglia prefissata? Se esiste, come si implementa in VBA?

        #7252 Score: 0 | Risposta

        essegi75
        Partecipante

          Scusa vecchio frac ho omesso di dire che la macro viene eseguita dall'utente cliccando un oggetto... se l'utente clicca l'oggetto a cui ho collegato la macro attuale, questa apre l'anteprima di stampa a prescindere.

          La mia intenzione invece è quella di evitare che la macro apra a prescindere l'anteprima di stampa, ma cliccando l'oggetto, faccia, prima di aprire la prewiev, un controllo sulla cella A25 per vedere il numero contenuto.

          Se il numero della cella A25 è uguale a 20, allora la macro apre l'anteprima di stampa, altrimenti deve comparire un box con il messaggio scritto prima, per allertare l'utente che uno o più campi non sono stati compilati.

          Chiudendo il box, si torna al foglio di lavoro per inserire i dati nei campi non compilati.

          Nella mail precedente sono stato molto esaustivo... spero di esserlo stato adesso  

          #7259 Score: 0 | Risposta

          vecchio frac
          Senior Moderator
            272 pts

            C'è qualcosa che mi sfugge o che non ho capito ancora, perchè mi sembra di una banalità disarmante.

            Nel codice dell'oggetto cui è collegata la macro basta fare il controllo sul contenuto della cella in questione e se la condizione è soddisfatta lancia l'anteprima.

            sub oggetto_click()
                if range("A25") = 20 then
                    Worksheets("FV").PrintPreview
                else
                    msgbox "Uno o più campi non sono compilati"
                end if
            End With

             

            #7309 Score: 0 | Risposta

            essegi75
            Partecipante

              Ciao Vecchio Frac lo so che per te può sembrare banale... ma ho iniziato da poco con il VBA e cerco di capire volta per volta che devo creare una macro il ragionamento da fare.

              Grazie mille per l'aiuto  

               

              #7314 Score: 0 | Risposta

              vecchio frac
              Senior Moderator
                272 pts

                Ma guarda io non volevo offendere nessuno, ti prego.

                Fai benissimo a chiedere per ogni minimo dubbio. Piuttosto che farsi convinzioni sbagliate e poi trovarsi a programmare male, è meglio chiedere e chiedere anche le cose più semplici. Sono io che a volte vedo complicazioni anche dove le cose sono risolvibili 🙂

                Devi comunque portare via il concetto: nel codice associato a un oggetto istruisci Excel a verificare una condizione e, se è soddisfatta (risultato = True), viene eseguito il blocco di istruzioni tra If e Else, altrimenti il blocco successivo, tra Else e End If.

              Login Registrati
              Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
              Rispondi a: Macro Anteprima di stampa con condizione
              Gli allegati sono permessi solo ad utenti REGISTRATI
              Le tue informazioni: