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