Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    [excel e vba] pulsante con macro

    ciao a tutti
    ho creato un pulsante stampa in excel che mi permette di selezionare la stampante e selezionare solo i fogli che mi interessano stampare.
    pare funzionare ma mi piacerebbe che sia perfezionato su una cosa.

    il pulsante si trova in un foglio chiamato sommario. quando premo sul pulsante excel va verso la prima pagina di selezione per poi tornare, perchè gliel'ho imposto con il codice, al foglio sommario

    la domanda è possibile far selezionare i fogli senza che excel si sposti nel primo foglio selezionato? è solo una questione di estetica dato che poi il programmino che sto creando non lo uso io.

    questo è il codice
    codice:
    Sub stampa()
    '
    ' stampa Macro
    '
    
    '
    Sheets(Array("INTESTAZIONE", "PRIMA PAGINA", "DATI STAMPA", "PESO RILEVATO", _
            "MASSA CORP", "BMI", "PROIEZ PESO", "WHRT", "RAPP E COSTITUZIONE", "SOMATOMETRIA")). _
            Select
            
    If Application.Dialogs(xlDialogPrinterSetup).Show Then
        
            
             
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
        
    End If
    Sheets("SOMMARIO").Activate
    End Sub

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Non so se sono in grado di aiutarti ma comunque non ho capito molto bene quello che hai scritto.
    Hai diversi fogli e nel primo c'è un pulsante "Stampa". Si trova solo in quel foglio questo pulsante?
    Come scegli il foglio da stampare?

    Ad ogni modo puoi stampare un foglio senza per forza averlo selezionato
    codice:
    Sheets("Foglio1").PrintOut
    ... e non usare while wend è una sintassi deprecata

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    117
    Il suggerimento di evitare il select è ottimo!
    In ogni caso, potresti anche provare ad usare

    codice:
    Application.ScreenUpdating = False

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    Quote Originariamente inviata da Mabi Visualizza il messaggio
    Non so se sono in grado di aiutarti ma comunque non ho capito molto bene quello che hai scritto.
    Hai diversi fogli e nel primo c'è un pulsante "Stampa". Si trova solo in quel foglio questo pulsante?
    Come scegli il foglio da stampare?

    Ad ogni modo puoi stampare un foglio senza per forza averlo selezionato
    codice:
    Sheets("Foglio1").PrintOut
    ok ho modificato come mi hai detto e funziona bene


    codice:
    Sub stampa()
    '
    ' stampa Macro
    '
    
    '      
            
    If Application.Dialogs(xlDialogPrinterSetup).Show Then
         Sheets(Array("INTESTAZIONE", "PRIMA PAGINA", "DATI STAMPA", "PESO RILEVATO", _
            "MASSA CORP", "BMI", "PROIEZ PESO", "WHRT", "RAPP E COSTITUZIONE", "SOMATOMETRIA")).PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
        
    End If
    Sheets("SOMMARIO").Activate
    End Sub
    giusto per chiarezza
    io ho un foglio sommario dove ho il pulsante stampa
    poi ho altri fogli di cui solo quelli che vedete nel codice devono essere stampati.

    quindi l'effetto è che clicco il pulsante ed excel mi stampa solo i fogli che voglio io.

    l'unica noia è che excel per fare ciò si sposta dal foglio SOMMARIO al primo foglio della lista da stampare. ecco del perchè
    codice:
    Sheets("SOMMARIO").Activate
    non c'è un modo per farlo rimanere in sommario e fa l'operazione di stampa lo stesso?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    Quote Originariamente inviata da genespos Visualizza il messaggio
    Il suggerimento di evitare il select è ottimo!
    In ogni caso, potresti anche provare ad usare

    codice:
    Application.ScreenUpdating = False
    ok ok scusami ho letto in ritardo
    ho modificato cosi seguendo indicazioni dal web.. pare funzionare

    codice:
    Sub stampa()
    '
    ' stampa Macro
    '
    
    '
    
           
            Application.ScreenUpdating = False
            
    If Application.Dialogs(xlDialogPrinterSetup).Show Then
         Sheets(Array("INTESTAZIONE", "PRIMA PAGINA", "DATI STAMPA", "PESO RILEVATO", _
            "MASSA CORP", "BMI", "PROIEZ PESO", "WHRT", "RAPP E COSTITUZIONE", "SOMATOMETRIA")).PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
        
    End If
    
    Application.ScreenUpdating = True
    
    End Sub

  6. #6
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Quote Originariamente inviata da amphioxus Visualizza il messaggio
    ok ok scusami ho letto in ritardo
    ho modificato cosi seguendo indicazioni dal web.. pare funzionare
    Hai provato con l'indicazione di genespos ?
    ... e non usare while wend è una sintassi deprecata

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.