Condividi:        

Macro per STAMPA CONDIZIONALE

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

Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 08/02/24 17:22

Buon giorno...

Sono sempre in lavorazione sul file di cui ho già parlato in diverse occasioni (qui e qui) e di cui potete scaricarne la copia più aggiornata da qui..
nella colonna P vengono inserite delle zone di carico dall'operatore,
quindi vorrei che a seconda della zona di carico che viene selezionata venisse lanciata la stampa (automaticamente) di un determinato file in pdf (la piantina con la relativa zona di carico: esempio nome file = MAPPA 2; MAPPA 16; MAPPA 18; ),
che cambia a seconda della zona + un'altro file in pdf che invece si ripete per tutti (safetycard che ho chiamato = SAFETY).

L'ottimale sarebbe che sullo stesso foglio (fronte e retro) venissero stampate mappa e safety.

Grazie in anticipo a chiunque mi aiuterà.
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Sponsor
 

Re: Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 09/02/24 13:50

Dopo aver fatto giorni di ricerca ho deciso, per facilitarmi la vita, di trasformare i "files mappe" da pdf a immagine e poi di inserirli tutti in un unico file denominato MAPPA-MAG-ESTERNI.xlsx ogni magazzino ha un suo foglio (composto da due pagine, cioè che se lo stampi viene in 2 pagine, mappa + safety) ed in totale ci sono 18 fogli.

Al momento ho partorito questa macro:
Codice: Seleziona tutto
Sub Stampa()
If Range("P").Value = "2" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet1").PrintOut
End If
If Range("P").Value = "3" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet2").PrintOut
End If
If Range("P").Value = "4" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet3").PrintOut
End If
If Range("P").Value = "5" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet4").PrintOut
End If
If Range("P").Value = "6" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet5").PrintOut
End If
If Range("P").Value = "8" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet6").PrintOut
End If
If Range("P").Value = "10" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet7").PrintOut
End If
If Range("P").Value = "12" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet8").PrintOut
End If
If Range("P").Value = "16" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet9").PrintOut
End If
If Range("P").Value = "18" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet10").PrintOut
End If
If Range("P").Value = "EX.MERZ." Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet11").PrintOut
End If
If Range("P").Value = "S.MARCO" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet12").PrintOut
End If
If Range("P").Value = "3B" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet13").PrintOut
End If
If Range("P").Value = "RA MILL" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet14").PrintOut
End If
If Range("P").Value = "MICRON MIN" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet15").PrintOut
End If
If Range("P").Value = "COLACEM" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet16").PrintOut
End If
If Range("P").Value = "SOCO VECCHIA" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet17").PrintOut
End If
If Range("P").Value = "CONSORZIO" Then
    Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet18").PrintOut
End If
End Sub


.Value = è la zona di carico
.Sheets("Shett..").PrintOut è il rispettivo foglio

Però ho un paio di dubbi:
1- Se uno di questi dati ( zona di carico ) non viene selezionata dall'operatore perchè giustamente nessun mezzo in quel momento è diretto verso quel magazzino restituirà un errore..
2- Se nella colonna delle zone di carico entrano più mezzi per la stessa zona nella colonna P il dato si ripeterà.. ristamperà il file per il nr di volte che vede la stessa zona di carico oppure no?
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Re: Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 09/02/24 16:28

Sto continuando a tentare, ma non si muove nulla. Ho fatto una prova registrando una macro, ma non riesco a riprodurne l'automatismo.
Al momento sono arrivato a questo punto nella revisione della mia macro:
Codice: Seleziona tutto
Sub Stampa()
If Range("P").Value = "2" Then
Application.WindowState = xlNormal
Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet1").PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "3" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet2").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "4" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet3").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "5" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet4").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "6" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet5").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "8" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet6").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "10" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet7").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare - Copia.xlsm").Activate
End If

If Range("P").Value = "12" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet8").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "16" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet9").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "18" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet10").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "EX.MERZ." Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet11").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "S.MARCO" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet12").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "3B" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet13").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "RA MILL" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet14").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "MICRON MIN" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet15").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "COLACEM" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet16").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "SOCO VECCHIA" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet17").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If

If Range("P").Value = "CONSORZIO" Then
Application.WindowState = xlNormal
    Windows("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet18").PrintOut Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
    Windows("schema entrate da duplicare.xlsm").Activate
End If
End Sub


Cosa manca..? Perchè non si muove nulla?
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Re: Macro per STAMPA CONDIZIONALE

Postdi Anthony47 » 09/02/24 19:19

Immagino che parli del foglio Entrate Colonna P
Potresti sfruttare l'evento BeforeDoubleClick, che scatta quando fai DoppioClick su una cella
Ad esempio con questo codice:
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
If Target.Column <> 16 Then Exit Sub        '16=P
Select Case Target.Value
    Case "STR.3"
        Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet1").PrintOut    '<<<
    Case "3/PICKING"
        Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet2").PrintOut    '<<<
       
    'Altri "Case" come da tua situazione
   
End Select
Xit:
Cancel = True
End Sub


Il codice va inserito nel modulo vba del foglio ENTRATE (dove ora hai gia' la Sub Worksheet_Change)
Le righe marcate <<< vanno personalizzate con il vero foglio da Stampare; e ovviamente vanno inseriti ulteriori "Case" per quante sono le possibilità

Si potrebbe anche pensare di sostituire l'intera area Select Case / End Select con
Codice: Seleziona tutto
On Error Resume Next
 Workbooks("MAPPA-MAG-ESTERNI.xlsx").Sheets("Sheet_" & Target.Value).PrintOut
On Error Resume Next

Questo presuppone che i fogli siano nominati come i possibili contenuti di Entrate/colonna P; bisogna anche considerare che alcuni caratteri sono vietati nel NomeFoglio; es
Codice: Seleziona tutto
/ \ , : ;
e certamente altri

Quanto al "Fronte /Retro", secondo me nel vba non c'e' questa impostazione. Potresti installare una certa stampante con la proprieta' settata di default su Fronte/retro e poi utilizzare quella stampante per le stampe in questione.

Vedi se riesci a fare passi in avanti...
Avatar utente
Anthony47
Moderatore
 
Post: 19467
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 10/02/24 12:41

Ciao Anthony ben ritrovato! Grazie per la dritta.. credo di aver capito.
Ho un dubbio però così come l'hai scritto il comando reagisce al doppio click, ma nella colonna P l'operatore o scrive direttamente oppure seleziona da un menù a tendina, premesso ciò la reazione al doppio click è ancora utile o diventa superflua?

Questa parte di script a cosa serve che non capisco:
Codice: Seleziona tutto
If Target.Column <> 16 Then Exit Sub        '16=P


Grazie e buon weekend
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Re: Macro per STAMPA CONDIZIONALE

Postdi Anthony47 » 10/02/24 13:09

Probabilmente stai chiedendo se c'e' un modo piu' semplice del doppio click.
Sì, si potrebbe usare l'evento WorksheetChange, e le stampe partirebbero appena viene modificato un valore in cella. Ma la mia "politica" preferita e' di aspettare un comando esplicito dall'utente, quale e' il doppioclick

L'istruzione If Target.Column <> 16 Then Exit Sub serve a limitare l'effetto del doppioclick alla sola colonna P
Avatar utente
Anthony47
Moderatore
 
Post: 19467
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 12/02/24 08:57

Buongiorno Anthony, ho messo mano alla macro seguendo i tuoi consigli arrivando a questo risultato:

Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
If Target.Column <> 16 Then Exit Sub        '16=P
Select Case Target.Value
Case "2"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet1").PrintOut    '<<<
Case "3"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet2").PrintOut    '<<<
Case "3/PICKING"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet2").PrintOut    '<<<
Case "4"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet3").PrintOut    '<<<
Case "5"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet4").PrintOut    '<<<
Case "6"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet5").PrintOut    '<<<
Case "8"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet6").PrintOut    '<<<
Case "10"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet7").PrintOut    '<<<
Case "12"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet8").PrintOut    '<<<
Case "16"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet9").PrintOut    '<<<
Case "18"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet10").PrintOut    '<<<
Case "EX.MERZ."
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet11").PrintOut    '<<<
Case "S.MARCO"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet12").PrintOut    '<<<
Case "3B"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet13").PrintOut    '<<<
Case "RA MILL"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet14").PrintOut    '<<<
Case "MICRON MIN"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet15").PrintOut    '<<<
Case "COLACEM"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet16").PrintOut    '<<<
Case "SOCO VECCHIA"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet17").PrintOut    '<<<
Case "CONSORZIO"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet18").PrintOut    '<<<
    'Altri "Case" come da tua situazione
   
End Select
Xit:
Cancel = True
End Sub

Ho rinominato il file MAPPA.MAG.ESTERNI (prima era MAPPA-MAG-ESTERNI) perchè ricevo un errore quando eseguo il doppio click:
Immagine

Immagine

Ma anche cambiando non il nome continuo a ricevere errore, allora ho provato inserendo l'intero indirizzo per raggiungere il file (mappe.mag.esterni) che risulta essere
Codice: Seleziona tutto
Q:\SCANNERTRASPORTI\DOC UFF TRASPORTI\[[[ [[[ SHEMA ENTRATE ]]] ]]]\MAPPA.MAG.ESTERNI.xlsx

, ma nulla da fare, continuo a ricevere il medesimo errore.
Sono andato a vedere cosa può provocare l'errore e:
Il “VBA Error Subscript Out of Range 9” si verifica in genere quando si tenta di accedere a un array o a una raccolta utilizzando un indice che non esiste o non è compreso nell’intervallo valido.


Non riesco proprio a capire dove sia l'errore. Immagine
Credo dipenda dal collegamento con il file MAPPE.MAG.ESTERNI
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Re: Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 12/02/24 13:41

MAPPE.MAG.ESTERNI.xlsx o come inizialmente scritto MAPPE-MAG-ESTERNI.xlsx è un file a parte.. forse il "richiamo" non è corretto.. allego di seguito anche il file così da rendere più chiara la situazione.
Ovviamente per ragioni aziendali le mappe e la safetycard sono state eliminate, ma la struttura è invariata.

PS:
Mi sono già accorto dell'errore nella seguente riga che da così
Codice: Seleziona tutto
Case "3"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet2").PrintOut


Ho trasformato in così:
Codice: Seleziona tutto
Case "STR.3"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("Sheet2").PrintOut
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Re: Macro per STAMPA CONDIZIONALE

Postdi Anthony47 » 12/02/24 18:31

Ma MAPPE.MAG.ESTERNI.xlsx e' aperto o chiuso?
Avatar utente
Anthony47
Moderatore
 
Post: 19467
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 12/02/24 19:57

Ho pensato anche io che il problema fosse dovuto da questo.. la prova l'ho fatta con il file MAPPE.MAG.ESTERNI aperto.
Mi chiedo se il fatto che i files "MAPPE..." e "Schema Entrate..." non risiedano sulla macchina su cui lavora l'operatore, ma bensì sul server aziendale, possa in qualche modo influire.
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Re: Macro per STAMPA CONDIZIONALE

Postdi Anthony47 » 12/02/24 21:11

Dove resiedono i file non e' un problema

E' possibile che i due file Excel siano aperti in due distinte sessioni dell'applicazione Excel?
Per fare la prova: Menu /Visualizza; cerca il comando Cambia finestra e verifica che ambedue i file siano visibili e (tramite quel comando) si possa passare da un file all'altro.
Oppure piu' direttamente, parti dalla visualizzazione del file principale e apri il file mappa usando il comando File /Apri, poi prova le stampe.
Avatar utente
Anthony47
Moderatore
 
Post: 19467
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 13/02/24 08:27

Buongiorno Anthony, dopo avere fatto le prove seguendo le tue direttive anche se il file risulta

Immagine

quando eseguo la macro, selezionando dal menù una zona e clickandoci sopra per due, volte ricevo il medesimo errore.

Per essere sicuro che il file "MAPPE..." sia sempre aperto quando deve, ho aggiunto questa macro al file "Schema Entrate.. " in "Questa cartella di lavoro"

Codice: Seleziona tutto
Private Sub Workbook_Open()
Dim Ckwb As Workbook
'
FFName = "Q:\SCANNERTRASPORTI\DOC UFF TRASPORTI\[[[ [[[ SHEMA ENTRATE ]]] ]]]\MAPPA.MAG.ESTERNI.xlsx"                 '<<< Percorso e nome del file da aprire
mySplit = Split(FFName, "\", , vbTextCompare)
On Error Resume Next
    Set Ckwb = Workbooks(mySplit(UBound(mySplit)))
On Error GoTo 0
If Ckwb Is Nothing Then
    Workbooks.Open Filename:=FFName, ReadOnly:=True
End If
ThisWorkbook.Activate
End Sub


Ma nulla anche così non funziona. :mmmh:
Riallego il file "Schema Entrate", nel caso tu voglia dare un'occhiata che non abbia scritto o fatto qualche bestialità che poi restituisce l'errore.

Ho provato anche con entrambi i file sul mio pc, ma anche così nulla.
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Re: Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 13/02/24 09:26

La cosa che mi "stranisce" è che la macro che apre il file MAPPE funziona, perciò il collegamento al file funziona, mentre la seconda macro che si collega al medesimo file per stamparlo, no.
Mi chiedo se provare a cambiare i nomi dei fogli, o se inserire tutte le mappe nel medesimo file schema entrate.. :roll:
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Re: Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 13/02/24 09:42

Ok ok!!! Sembra che cambiando i nomi dei fogli da Foglio1 a nome personalizzato, nel mio caso STR.3 (ad esempio) la stampa parte!!! Fantastico!!!
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Re: Macro per STAMPA CONDIZIONALE

Postdi Anthony47 » 13/02/24 13:19

Bene!
Evidentemente c'erano piccole differenze poco distinguibili a colpo d'occhio...
Avatar utente
Anthony47
Moderatore
 
Post: 19467
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 13/02/24 13:55

Grazie davvero Anthony!
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Re: Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 27/02/24 10:27

Ciao Anthony, torno su questo argomento perchè vorrei aggiungere l'apertura di un altro avviso per l'operatore.
Mi spiego meglio:
Alcuni dei magazzini per cui si lancia la stampa sono esterni al terminal perciò, quando si manda un mezzo al carico in uno di questi posti bisogna avvisare il caricatore/spuntatore, per questo vorrei che dopo la stampa si aprisse una finestrella solo per queste specifiche zone, che riporto di seguito.

Codice: Seleziona tutto
Case "EX.MERZ."
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("EX.MERZ.").PrintOut '<<<
Case "S.MARCO"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("S.MARCO").PrintOut    '<<<
Case "3B"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("3B").PrintOut    '<<<
Case "RA MILL"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("RA MILL").PrintOut    '<<<
Case "MICRON MIN"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("MICRON MIN").PrintOut    '<<<
Case "COLACEM"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("COLACEM").PrintOut    '<<<
Case "SOCO VECCHIA"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("SOCO VECCHIA").PrintOut    '<<<
Case "CONSORZIO"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("CONSORZIO").PrintOut


Credevo bastasse aggiungere di seguito l'istruzione del MsgBox, ma si vede che non sto scrivendo correttamente.. io avevo provato come di seguito, ma ovviamente non funziona

Codice: Seleziona tutto
Case "EX.MERZ."
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("EX.MERZ.").PrintOut .MsgBox("AVVISA SPUNTATORE") '<<<
Case "S.MARCO"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("S.MARCO").PrintOut .MsgBox("AVVISA SPUNTATORE")    '<<<
Case "3B"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("3B").PrintOut .MsgBox("AVVISA SPUNTATORE")    '<<<
Case "RA MILL"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("RA MILL").PrintOut  .MsgBox("AVVISA SPUNTATORE")   '<<<
Case "MICRON MIN"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("MICRON MIN").PrintOut  .MsgBox("AVVISA SPUNTATORE")   '<<<
Case "COLACEM"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("COLACEM").PrintOut  .MsgBox("AVVISA SPUNTATORE")   '<<<
Case "SOCO VECCHIA"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("SOCO VECCHIA").PrintOut  .MsgBox("AVVISA SPUNTATORE")   '<<<
Case "CONSORZIO"
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("CONSORZIO").PrintOut  .MsgBox("AVVISA SPUNTATORE")


Come si aggiunge un comando aggiuntivo ad una macro già esistente?
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Re: Macro per STAMPA CONDIZIONALE

Postdi Anthony47 » 27/02/24 10:35

Sono istruzioni separate, si scrivono su righe separate
Codice: Seleziona tutto
Case "EX.MERZ."
        Workbooks("MAPPA.MAG.ESTERNI.xlsx").Sheets("EX.MERZ.").PrintOut
        MsgBox("AVVISA SPUNTATORE") '<<<
Case "S.MARCO"
' etc
Avatar utente
Anthony47
Moderatore
 
Post: 19467
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per STAMPA CONDIZIONALE

Postdi systemcrack » 27/02/24 13:06

Grazie Anthony.. oggi devo essere sceso dal letto al contrario :roll: ero arrivato anche io alla tua medesima soluzione, ma non funzionando, perchè attendevo la risposta con il messaggio al cambio della cella, avevo modificato la macro come ti ho postato pochi post più su.
La realtà dei fatti è che non tenevo conto del doppio click :aaah :lol:
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40


Torna a Applicazioni Office Windows


Topic correlati a "Macro per STAMPA CONDIZIONALE":


Chi c’è in linea

Visitano il forum: Nessuno e 23 ospiti