Risolto Numero copie da stampare

Piero_Bo

Utente abituale
3 Gennaio 2017
375
18
Emilia Romagna
Excel 2013
16
Buondì a tutti, ho un piccolo DB che uso per stampare etichette in rotolo ...
A volte capita di dover stampare più etichette uguali e per farlo premo più volte il pulsante dedicato.
Ho cercato info sul forum e ho trovato https://docs.microsoft.com/it-it/office/vba/api/Access.DoCmd.PrintOut e in rete questo https://support.microsoft.com/it-it/help/2627824/vba-printer-copies-number-ignored-in-access-2007-and-access-2010 io invece cerco un modo da far apparire un finestra tipo domanda query dove inserire il numero e inizia la stampa ...
 

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
20.197
1.733
Como
2011MAC 2016WIN
413
Ciao,
potresti usare questa escamotage:

Visual Basic:
 ...
 x = 1
    nCopie = InputBox("Numero Copie")
    Do
        'DoCmd.OpenReport "NomeReport", stDocName, acViewPreview
        'DoCmd.PrintOut
        MsgBox "stampa n. " & x
        x = x + 1
    Loop While x <= Val(nCopie)
...
 

Piero_Bo

Utente abituale
3 Gennaio 2017
375
18
Emilia Romagna
Excel 2013
16
Grazie Ges, prima scrivevo dal cell ed ero fuori casa, al rientro ho provato il link 2 del mio post aggiungendo un campo nEtichette e funziona, dopo provo il tuo escamotage.
 

Piero_Bo

Utente abituale
3 Gennaio 2017
375
18
Emilia Romagna
Excel 2013
16
'DoCmd.OpenReport "NomeReport", stDocName, acViewPreview 'DoCmd.PrintOut
... ho tolto gli apici per traformare il codice da commento a codice effettivo ma qualcosa non quadra, mi ha stampato n etichette ok, e dopo ha inziato a stampare la stampante predefinita un foglio un record :confusostelle:
.
.

Edit, non so cosa ho cambaito ma ora è ok:
Visual Basic:
Private Sub Pulsante_Click()
x = 1
    nCopie = InputBox("Quantità Etichette")
    Do
        DoCmd.OpenReport "NomeReport", stDocName, acViewPreview
        DoCmd.PrintOut
        MsgBox "Stampa n. " & x
        x = x + 1
    Loop While x <= Val(nCopie)
End Sub
 
Ultima modifica:

Piero_Bo

Utente abituale
3 Gennaio 2017
375
18
Emilia Romagna
Excel 2013
16
Se può servire a qualcuno posto i due codici funzionanti:
Codice #1 con popup di richesta numero, escamotage by ges @ges
Visual Basic:
Private Sub PulsanteDiStampa_Click()
x = 1
    nCopie = InputBox("Quantità Etichette")
    Do
        DoCmd.OpenReport "NomeReport", stDocName, acViewPreview
        DoCmd.PrintOut
        MsgBox "Stampa n. " & x 'Esce una conferma del numero stampa effettuato
        x = x + 1
    Loop While x <= Val(nCopie)
End Sub
Codice preso dalla rete, dove va aggiunto alla tabella un campo numerico "NomeCampoTabellaPerQuantitaCopie"
Visual Basic:
Private Sub PulsanteDiStampa_Click()
DoCmd.OpenReport "NomeReport", acViewPreview
DoCmd.SelectObject acReport, "NomeReport", False
DoCmd.PrintOut , , , , NomeCampoTabellaPerQuantitaCopie
DoCmd.Close acReport, "NomeReport"
End Sub
 
Ultima modifica:

Piero_Bo

Utente abituale
3 Gennaio 2017
375
18
Emilia Romagna
Excel 2013
16
Sto provando ed effettivamente noto qualcosa di anomalo, chiudendo il file, ovviamente dopo aver salvato, lo riapro quando vado a stampare è come se il report ignora l'impostazione di stampa, e stampa nella stampante predefinita.

Apro il report in modalità struttura, controllo ma non modifico nulla, salvo, chiudo, stampo e stampa nella stampante corretta ...

Escludendo
Visual Basic:
'DoCmd.PrintOut
funziona
 

Piero_Bo

Utente abituale
3 Gennaio 2017
375
18
Emilia Romagna
Excel 2013
16
Versioni funzionanti:
#1 con PopUp di immissione:
Visual Basic:
Private Sub PulsanteDiStampa_Click()
x = 1
nCopie = InputBox("Quantità Etichette")
Do
DoCmd.OpenReport "NomeTuoReport", stDocName, acViewPreview
MsgBox "Stampa n. " & x 'A ogni stampa 1 messaggio di conferma
x = x + 1
Loop While x <= Val(nCopie)
End Sub
#2 con Campo inserimento e controllo errore di valore = 0
Visual Basic:
Private Sub PulsanteDiStampa_Click()
If TuoCampoQuantità = 0 Then
MsgBox "Devi indicare quante copie stampare", vbExclamation, "NON posso stampare ...."
Else
DoCmd.OpenReport "NomeTuoReport", acViewPreview
DoCmd.SelectObject acReport, "NomeTuoReport", False
DoCmd.PrintOut , , , , TuoCampoQuantità
DoCmd.Close acReport, "NomeTuoReport"
End If
End Sub
 
  • Like
Reactions: ges

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
20.197
1.733
Como
2011MAC 2016WIN
413
PollicioneInSucappello_saluta

Questa riga puoi anche toglierla, era solo per mostrarti l'esempio.
Visual Basic:
MsgBox "Stampa n. " & x 'A ogni stampa 1 messaggio di conferma
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!