Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    EXCEL - Stampa di una riga da una singola cella selezionata

    Buonasera, sono nuovo del forum e spero potrete aiutarmi.
    La farò più breve e più precisa possibile.
    Excel. Ho creato una semplice tabella ove inserire le ricevute ai clienti per la mia attività (colonne del tipo Nome, Cognome, Indirizzo, Importo, e via). Ora ciò che mi servirebbe è una macro che (la utilizzerei tramite scorciatoria da tastiera) non appena finito di immettere tutti i dati della riga mi faccia una stampa di tutta suddetta riga (e solo di quella), e, in futuro, qualora dovesse necessitarmi, stampare solo la riga (la fattura, quindi), che desidero. In buona sostanza la macro deve:

    - selezionare tutta la riga della cella selezionata
    - stamparla su un foglio (solo suddetta riga)

    Le ho provate davvero tutte ma non sono riuscito.
    C'è qualcuno che saprebbe darmi una mano?
    Vi ringrazio

    p.s. eventualmente ci sarebbe un modo di stampare, oltre la riga in questione, anche la riga di intestazione, la riga 1, dove ci sono i nomi dei campi?

  2. #2
    Dando per scontato che usi Excel 2007 (non hai specificato), prova così (dopo aver personalizzato le variabili):


    codice:
    Sub StampaFattura() 'Stampa la riga attiva e le intestazioni della tabella
    Dim attuale As String, cella As String, riga_intestazioni As Integer, nome_stampante As String
    
    'Variabili da personalizzare
    riga_intestazioni = 1 'Numero della riga in cui ci sono le intestazioni delle colonne; viene stampata
    nome_foglio_provvisorio = "Stampa" 'Un nome qualsiasi, basta che sia diverso dagli altri nomi dei fogli
    nome_stampante = "PDF995" 'Nome della stampante
    
    Application.ScreenUpdating = False
    attuale = ActiveSheet.Name
    Sheets(attuale).Activate
    cella = ActiveCell.Address
    Range(ActiveCell.Row & ":" & ActiveCell.Row & "," & riga_intestazioni & ":" & riga_intestazioni).Select
    Selection.Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = nome_foglio_provvisorio
    ActiveSheet.Paste
    a = Sheets(nome_foglio_provvisorio).PrintOut(ActivePrinter:=nome_stampante)
    Application.DisplayAlerts = False
    Sheets(nome_foglio_provvisorio).Delete
    Application.DisplayAlerts = True
    Sheets(attuale).Activate
    Range(cella).Select
    Application.ScreenUpdating = True
    End Sub

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.