Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Εκτύπωση] εκτυπωση τιμολογιου (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/5827-ektyposi-timologioy.html)

vellamos 06-03-21 09:39

εκτυπωση τιμολογιου
 
καλημερα παιδια, εχω φτιαξει ενα excel για να εκτυπωνω τιμολογια. τα εχω ολα αυτοματα δηλαδη να περναει τα στοιχεια του πελατη μου, με λιστα να επιλεγω το προιον και να κανει ολους τους υπολογισμους. αυτο που θελω τωρα να κανω ειναι αν υπαρχει καποιος τροπος να φτιαξω ενα κουμπι εκτυπωσης οπου θα στελνει το τιμολογιο για εκτυπωση και παραλληλα θα δημιουργει και θα αποθηκευει ενα νεο excel σε αλλο φακελο με το ονομα και επιθετο του πελατη και διπλα την ημερομηνια.επισεις μετα απο κεθε εκτυπωση να μηδενηζει το τιμολογιο και να προσθετει +1 στον αυξοντα αριθμο. ευχαριστω

ChrisGT7 06-03-21 18:52

1 Συνημμένο(α)
Καλησπέρα Μιχάλη,

Δοκίμασε το συνημμένο αρχείο αν σε βοηθάει.

Επειδή δε γνωρίζω τη μορφή του αρχείου σου, ο κώδικας σίγουρα χρειάζεται τροποποίηση.

Πατώντας το κουμπί ΕΚΤΥΠΩΣΗ & ΑΠΟΘΗΚΕΥΣΗ, δημιουργείται ένα αντίγραφο του τρέχοντος τιμολογίου, αποθηκεύεται και εκτυπώνεται στον προεπιλεγμένο εκτυπωτή.

Το αρχείο αποθηκεύεται στο φάκελο που βρίσκεται το συνημμένο αρχείο και έχει τη μορφή: Αρ. τιμολογίου, Επωνυμία πελάτη, ηη.μμ.εε
Έχω βάλει και τον αριθμό του τιμολογίου για τη μοναδικότητα του αρχείου στο φάκελο, γιατί αν υπάρχει άλλο αρχείο με το ίδιο όνομα θα αντικατασταθεί με το νέο. Σε μια ημέρα ένας πελάτης μπορεί να έχει παραπάνω από ένα τιμολόγια.

vellamos 23-03-21 08:00

ευχαριστω πολυ, θα το δικιμασω και θα σου πω αν κανω καποια τροποποιηση

vellamos 23-03-21 09:59

Παράθεση:

Αρχική Δημοσίευση από ChrisGT7 (Μήνυμα 32338)
Καλησπέρα Μιχάλη,

Δοκίμασε το συνημμένο αρχείο αν σε βοηθάει.

Επειδή δε γνωρίζω τη μορφή του αρχείου σου, ο κώδικας σίγουρα χρειάζεται τροποποίηση.

Πατώντας το κουμπί ΕΚΤΥΠΩΣΗ & ΑΠΟΘΗΚΕΥΣΗ, δημιουργείται ένα αντίγραφο του τρέχοντος τιμολογίου, αποθηκεύεται και εκτυπώνεται στον προεπιλεγμένο εκτυπωτή.

Το αρχείο αποθηκεύεται στο φάκελο που βρίσκεται το συνημμένο αρχείο και έχει τη μορφή: Αρ. τιμολογίου, Επωνυμία πελάτη, ηη.μμ.εε
Έχω βάλει και τον αριθμό του τιμολογίου για τη μοναδικότητα του αρχείου στο φάκελο, γιατί αν υπάρχει άλλο αρχείο με το ίδιο όνομα θα αντικατασταθεί με το νέο. Σε μια ημέρα ένας πελάτης μπορεί να έχει παραπάνω από ένα τιμολόγια.

εκανα τις αλλαγες και δουλευει αψογα. ΧΙΛΙΑ ΕΥΧΑΡΙΣΤΩ

asterix 24-03-21 10:10

Παράθεση:

Αρχική Δημοσίευση από ChrisGT7 (Μήνυμα 32338)
Καλησπέρα Μιχάλη,

Δοκίμασε το συνημμένο αρχείο αν σε βοηθάει.

Επειδή δε γνωρίζω τη μορφή του αρχείου σου, ο κώδικας σίγουρα χρειάζεται τροποποίηση.

Πατώντας το κουμπί ΕΚΤΥΠΩΣΗ & ΑΠΟΘΗΚΕΥΣΗ, δημιουργείται ένα αντίγραφο του τρέχοντος τιμολογίου, αποθηκεύεται και εκτυπώνεται στον προεπιλεγμένο εκτυπωτή.

Το αρχείο αποθηκεύεται στο φάκελο που βρίσκεται το συνημμένο αρχείο και έχει τη μορφή: Αρ. τιμολογίου, Επωνυμία πελάτη, ηη.μμ.εε
Έχω βάλει και τον αριθμό του τιμολογίου για τη μοναδικότητα του αρχείου στο φάκελο, γιατί αν υπάρχει άλλο αρχείο με το ίδιο όνομα θα αντικατασταθεί με το νέο. Σε μια ημέρα ένας πελάτης μπορεί να έχει παραπάνω από ένα τιμολόγια.

Μια ερώτηση και από έμενα αν θέλω να κάνω επιλογή εκτυπωτή και στον φάκελο αποθήκευσης τι τροποποίηση χρειάζεται να γίνει στον κώδικα
Ευχαριστώ

ChrisGT7 24-03-21 16:02

Καλησπέρα Γιώργο,

Αντικατέστησε τον κώδικα του αρχείου με τον παρακάτω:
Κώδικας:

Option Explicit

Sub EKTYPWSH_PARASTATIKOY()
    On Error GoTo InvalidFile
    Dim Fld As FileDialog
    Set Fld = Application.FileDialog(msoFileDialogFolderPicker)
   
    With Fld
        .Title = "Επιλέξτε φάκελο αποθήκευσης"
        .AllowMultiSelect = False
        .InitialFileName = ThisWorkbook.Path
        If .Show <> -1 Then Exit Sub
        Dim FPath As String
        FPath = .SelectedItems(1)
    End With

    Application.DisplayAlerts = False
    ActiveSheet.Copy
    With ActiveWorkbook
        .ActiveSheet.Shapes.SelectAll
        Selection.Delete
        .SaveAs Filename:=FPath & "\" & [J5] & ", " & [D7] & ", " & _
            Format([J3], "dd.mm.yy") & ".xlsx", FileFormat:=51
        Application.Dialogs(xlDialogPrint).Show
        .Close False
    End With
    [J5] = [J5] + 1
    Application.DisplayAlerts = True
   
InvalidFile:
    If Err.Number = 0 Then Exit Sub
    MsgBox "Σφάλμα αποθήκευσης!", vbCritical, "ΣΦΑΛΜΑ"
    Application.DisplayAlerts = True
End Sub


christakos 26-03-21 05:36

καλημέρα Χρήστο,
στο συνημμένο έχει ένα κουμπί, αν βάλουμε και εικόνα (logo) τα διαγράφει στην αποθήκευση.
Σε ερώτηση μου είπες να διαγραφτούν οι γραμμές
.ActiveSheet.Shapes.SelectAll
Selection.Delete

ωραία, άλλα τα κρατάει όλα, shapes και logo εικόνας.

Πώς γίνετε πχ αν έχουμε 2 shapes και μια εικόνα, να μας κρατήσει μόνο την εικόνα?
γιατί π.χ σε ένα χαρτί αν χρειαστεί να βλέπουμε μόνο το λογότυπο ή μια δικιά μας προσωπική εικόνα
και όχι shapes ή commandsButtons αν έχουμε.

asterix 26-03-21 10:23

1 Συνημμένο(α)
Χρήστο καλημέρα και ευχαριστώ πολύ για την άμεση απάντηση σου οκ δούλεψε κανονικά.
Στο ίδιο αρχείο πρόσθεσα ένα ακόμα φύλλο και το ζητουμενο ειναι αν με το κλικ του κουμπιου ή με την χρήση ενός ακόμα κουμπιού μπορούν να μεταφέρονται τα αντίστοιχα κελιά στο νέο φύλλο ΕΣΟΔΑ

Ευχαριστώ

ChrisGT7 26-03-21 14:57

Καλησπέρα Χρήστο,

Αντικατέστησε τον κώδικα στο προηγούμενο αρχείο που έχω ανεβάσει με τον παρακάτω:
Κώδικας:

Option Explicit

Sub EKTYPWSH_PARASTATIKOY()
    On Error GoTo InvalidFile
    Dim Shp As Shape
   
    Application.DisplayAlerts = False
    ActiveSheet.Copy
    With ActiveWorkbook
        For Each Shp In .ActiveSheet.Shapes
            If Shp.Type = msoAutoShape Then Shp.Delete
        Next
       
        .SaveAs Filename:=ThisWorkbook.Path & "\" & _
            [J5] & ", " & [D7] & ", " & Format([J3], "dd.mm.yy") & ".xlsx", FileFormat:=51
        .PrintOut
        .Close False
    End With
    [J5] = [J5] + 1
    Application.DisplayAlerts = True
   
InvalidFile:
    If Err.Number = 0 Then Exit Sub
    MsgBox "Σφάλμα αποθήκευσης!", vbCritical, "ΑΠΟΘΗΚΕΥΣΗ"
    Application.DisplayAlerts = True
End Sub

Ο συγκεκριμένος κώδικας διαγράφει μόνο τα σχήματα (όπως είναι τα κουμπιά) από το αρχείο που πρόκεται να διαγραφεί ελέγχοντας τον τύπο του σχήματος. Οπότε, ανάλογα τι τύπο σχήματος θέλουμε να κρατήσουμε στο αρχείο μας, πρέπει να κάνουμε τους αντίστοιχους ελέγχους.

ChrisGT7 26-03-21 15:42

1 Συνημμένο(α)
Καλησπέρα Γιώργο,

Δοκίμασε αν σε καλύπτει το συνημμένο αρχείο.

Τροποποιείς τον κώδικα σύμφωνα πάντα με τις ανάγκες σου.

asterix 26-03-21 18:22

Χρήστο χίλια ευχαριστώ να πω? ίσως και να είναι λίγο.... είσαι τέλειος.

christakos 26-03-21 18:40

Παράθεση:

Αρχική Δημοσίευση από ChrisGT7 (Μήνυμα 32432)
Καλησπέρα Χρήστο,

Αντικατέστησε τον κώδικα στο προηγούμενο αρχείο που έχω ανεβάσει με τον παρακάτω:

Ο συγκεκριμένος κώδικας διαγράφει μόνο τα σχήματα (όπως είναι τα κουμπιά) από το αρχείο που πρόκεται να διαγραφεί ελέγχοντας τον τύπο του σχήματος. Οπότε, ανάλογα τι τύπο σχήματος θέλουμε να κρατήσουμε στο αρχείο μας, πρέπει να κάνουμε τους αντίστοιχους ελέγχους.

Μια χαρά, κρατάει την εικόνα και όχι το shape.......:thumbup::thumbup:

υπάρχει τρόπος και για τα commandΒuτtons?
δλδ ταυτόχρονα shapes και commandButtons??

και θα σε πω γιατι,
σε ένα Button έχω προσαρμόσει τον παρακάτω κώδικα για εμφάνιση κρύψιμο shapes

Κώδικας:

Private Sub cmdHelp_Click()
    If cmdHelp.Caption = "ΕΜΦΑΝΙΣΗ βοήθειες και επεξηγήσεις" Then
       
        cmdHelp.Caption = "ΑΠΟΚΡΥΨΗ βοήθειες και επεξηγήσεις"
        ThisWorkbook.Sheets("sheet1").Shapes("Help").Visible = True
       
    Else
   
        cmdHelp.Caption = "ΕΜΦΑΝΙΣΗ βοήθειες και επεξηγήσεις"
        ThisWorkbook.Sheets("sheet1").Shapes("Help").Visible = False
   
    End If
End Sub

δεν μπόρεσα να βρω κάτι αντίστοιχο, με ΕΝΑ shape να κρύβω και να εμφανίζω τα shapes που τα έκανα ομαδοποίηση με όνομα (Help) που γράφω επεξηγήσεις, αλλιώς δεν θα έβαζα commandButton. και μιας και το έβαλα εκμεταλλεύτηκα την αλλαγή του caption.:022:

ChrisGT7 26-03-21 19:08

Γιώργο,

Σ' ευχαριστώ για τα καλά σου λόγια! :) Να 'σαι πάντα καλά!

Χρήστο,

Αντικατέστησε: If Shp.Type = msoAutoShape Then Shp.Delete
με: If Shp.Type <> 8 And Shp.Type <> 12 And Shp.Type <> 13 Then Shp.Delete

να δεις αν σε καλύπτει. Mπορείς να αναζητήσεις τους τύπους σχημάτων εδώ.

Ένας άλλος τρόπος ελέγχου είναι μέσω του ονόματος του σχήματος (ιδιότητα Name αντί για την Type).

christakos 26-03-21 20:27

Παράθεση:

Αρχική Δημοσίευση από ChrisGT7 (Μήνυμα 32436)
Γιώργο,

Σ' ευχαριστώ για τα καλά σου λόγια! :) Να 'σαι πάντα καλά!

Χρήστο,

Αντικατέστησε: If Shp.Type = msoAutoShape Then Shp.Delete
με: If Shp.Type <> 8 And Shp.Type <> 12 And Shp.Type <> 13 Then Shp.Delete

να δεις αν σε καλύπτει. Mπορείς να αναζητήσεις τους τύπους σχημάτων εδώ.

Ένας άλλος τρόπος ελέγχου είναι μέσω του ονόματος του σχήματος (ιδιότητα Name αντί για την Type).

οκ ευχαριστώ
ευχαριστώ και το λινκ, θα το επεξεργαστώ.:001_smile:


Η ώρα είναι 08:15.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2