Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Δημιουργία Μορφοποιημένου Φύλλου Εργασίας με κώδικα
Καλησπέρα σε όλους και καλό καλοκαίρι να έχουμε. Θέτω ένα θέμα που με απασχολεί εδώ και καιρό.Είναι η δημιουργία ενός μορφοποιημένου φύλλου εργασίας με χρήση κώδικα. Αναλυτικότερα:Στο παράδειγμα που επισυνάπτω έχω ένα φύλλο εργασίας με τίτλο "Υπολογισμός Προσφοράς" Πώς μπορούμε (πάντα με τη χρήση κώδικα) να δημιουργήσουμε νέα φύλλα εργασίας όπου θα είναι μία μορφοποιημένη προσφορά σε ένα πελάτη που θα την έχουμε ορίσει, ώστε να εμφανίζονται μόνο τα προιόντα που δεν έχουν μηδενική τιμή με όνομα του πρώτου φύλλου εργασίας το όνομα του πρώτου πελάτη(πχ.petrou) και τα επόμενα φύλλα με την ίδια λογική.O κώδικας να είναι αντιστοιχισμένος σε ένα κουμπί εντολής όπου θα δημιουργεί το φύλλο εργασίας με συγκεκριμένο όνομα. Ευχαριστώ. |
#2
|
Καλημέρα σας. Φίλε Τζίμη, ο κώδικας που ζητάς απλά θα ελέγχει την στήλη που θέλεις για το αν είναι ή όχι μηδέν, και ανάλογα θα αντιγράφει ή όχι τα στοιχεία που θέλεις στις θέσεις που θέλεις. Ελπίζω να ήμουν τόσο σαφής όσο και εσύ. Μας μιλάς για πελάτη και μορφοποιημένο φύλλο εργασίας ζητώντας κώδικα, χωρίς να μας δίνεις πληροφορίες για το πώς θα καθορίζεται ο πελάτης, αλλά ούτε το πώς θα είναι το μορφοποιημένο φύλλο εργασίας. Μας ανέβασες ένα πίνακα Υπολογισμός Προσφοράς (όπου ο μόνος υπολογισμός είναι ένας πολλαπλασιασμός) και περιμένεις βοήθεια. Μας μιλάς για επόμενα φύλλα με την ίδια λογική χωρίς να διευκρινίζεις το περιεχόμενό τους. Αν δεν μας δώσεις τα απαιτούμενα στοιχεία δεν νομίζω ότι θα μπορέσεις να έχεις κάποια απάντηση. Τέλος, εγώ θα έλεγα ότι μάλλον πρέπει να ελέγχει την ποσότητα και όχι την τιμή. Για σκέψου το λίγο. Υπάρχουν και προϊόντα που ενώ έχουν ποσότητα δεν έχουν τιμή, γιατί ίσως είναι προσφορά του καταστήματος. Φιλικά Θανάσης. |
#3
| |||
| |||
Θανάση ευχαριστώ για την ανταπόκρισή σου.Ίσως να χρειάζεται να δώσω περισσότερες εξηγήσεις.Όταν λέω να δημιουργεί ένα νέο φύλλο εργασίας με βάση κάποια συγκεκριμένη μορφοποίηση εννοώ όπως πχ. αυτό στο φύλλο προσφορά.Το βασικό όμως ερώτημα παραμένει κατά πόσο μπορεί να υπάρξει κώδικας που να δημιουργεί ένα νέο φύλλο εργασίας.(αναπαραγωγή φύλλου) Ευχαριστώ. |
#4
|
Δεν ξέρω αν σε καταλαβαίνω Τζίμη, Τέλος πάντων Η γραμμή κώδικα που αντιγράφει το φύλλο "ΠΡΟΣΦΟΡΑ" σαν τελευταίο φύλλο στο βιβλίο είναι: Sheets("ΠΡΟΣΦΟΡΑ").Copy After:=Sheets(Sheets.Count) και η επόμενη γραμμή το μετονομάζει σε "ΠΕΛΑΤΗΣ_1" Sheets(Sheets.Count).Name = "ΠΕΛΑΤΗΣ_1" Θανάσης. |
#5
| |||
| |||
Θανάση θέλω αν γίνεται, με κώδικα VBA να δημιουργείτε ένα φύλλο εργασίας όπως αυτό το φύλλο ΠΡΟΣΦΟΡΑ το οποίο θα περιλαμβάνει εκείνα τα είδη που έχουν ποσότητες μη μηδενικές με βάση το πρώτο φύλλο.Το όνομα του νέου φύλλου που θα δημιουργείτε μπορεί να ορίζετε από τον κωδικα;
|
#6
| ||||
| ||||
Καλησπέρα σε όλους! Δημήτρη, το ερώτημα σου είναι κατανοητό. Όμως: Ο προγραμματιστής, πριν προχωρήσει στη δημιουργία κάποιας ρουτίνας θα πρέπει να λάβει υπόψη του ΟΛΑ τα πιθανά σενάρια που θα οδηγούσαν σε σφάλμα και ενδεχομένως σε ανεπιθύμητα αποτελέσματα! Πριν κάνεις οποιονδήποτε αυτοματισμό όπου ο χρήστης δεν έχει άμεση επιρροή, θα πρέπει να ελέγξεις και να βρεις τη λογική λύση αντιμετώπισης σφαλμάτων που μπορεί να προκληθούν κατά την εκτέλεση του κώδικα. Για παράδειγμα:
Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#7
| |||
| |||
Τάσο ευχαριστώ για το ενδιαφέρον.Ειδικότερα: 1)Το όνομα για το κελί Β2 να το παίρνει από ένα inputForm 2) τό όνομα του φύλλου να είναι ίδιο με το κελί Β2 3) το όνομα να είναι αποδεκτό σύμφωνα με τις αρχές τις VBA (αποδεκτοί χαρακτήρες) 4) αν υπάρχει ήδη φύλλο με το ίδιο όνομα να το αντικαθιστά με το νέο. |
#8
| ||||
| ||||
Γεια σου Δημήτρη! Μετονόμασε το φύλλο "ΠΡΟΣΦΟΡΑ" σε "OfferTemplate" και απόκρυψε το. Κατόπιν στο φύλλο "ΥΠΟΛΟΓΙΣΜΟΣ ΠΡΟΣΦΟΡΑΣ" αντιστοίχησε την ρουτίνα "NewOffer" στον παρακάτω κώδικα σε ένα κουμπί: Κώδικας: Option Explicit Const ilegalChars = ":\/?*[]" Sub NewOffer() Dim rng As Range, Wks As Worksheet, NewWks As Worksheet, _ xPos As Integer, OfferName As String, SheetName As String Application.ScreenUpdating = False OfferName = VBA.InputBox("Δώσε Eπωνυμία", "Νέα προσφορά...") If StrPtr(OfferName) = 0 Then Exit Sub SheetName = CleanName(OfferName) xPos = NewSheetPosition(NewName:=SheetName) Set Wks = ActiveSheet Wks.Range("A:E").AutoFilter Field:=3, Criteria1:=">0", _ Operator:=xlAnd With ThisWorkbook.Worksheets("OfferTemplate") .Visible = xlSheetVisible .Copy After:=Sheets(xPos) .Visible = xlSheetHidden End With Set NewWks = ActiveSheet Set rng = Wks.AutoFilter.Range.Offset(1) rng.Copy With NewWks .Name = SheetName .Range("B1") = OfferName .Range("A5").PasteSpecial xlPasteValues .Range("A5").Select End With Wks.AutoFilterMode = False Application.CutCopyMode = False End Sub Function NewSheetPosition(NewName As String) As Integer Dim sh As Object, i As Integer For Each sh In ThisWorkbook.Sheets If sh.Name = NewName Then Application.DisplayAlerts = False sh.Delete Application.DisplayAlerts = True Else If sh.Visible Then i = i + 1 End If Next NewSheetPosition = i End Function Function CleanName(strName As String) As String Dim i As Integer, tmpName As String tmpName = strName For i = 1 To Len(ilegalChars) tmpName = Replace(tmpName, Mid(ilegalChars, i, 1), "_") Next CleanName = tmpName End Function Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 03-06-11 στις 10:42. |
#9
| |||
| |||
Τάσο 'ίσως να σε κούρασα.Έκανα αυτό που μου είπες.Αποτέλεσμα το πρώτο φύλλο να μου εμφανίζει τα προιόντα που θέλω, ενώ εγώ το φύλλο αυτό δε θέλω να αλλάζει.Δημιουργία άλλου νέου φύλλου σύμφωνα με την επωνυμία που θέτω στην εισαγωγική φόρμα όπου θα εμφανίζει τα προιόντα με μη μηδενική τιμή δεν έκανε. Μήπως κάτι κάνω στραβά; |
#10
| |||
| |||
Καλημέρα στην παρέα Τζίμη, δοκίμασα τον κώδικα του Τάσου και λειτουργεί μια χαρά. Δες και το αρχείο που επισυνάπτω. Φιλικά/Γιώργος |
Ετικέτες |
vba, φιλτράρισμα |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Excel07] ΑΠΟΘΗΚΕΥΣΗ ΜΕΡΟΥΣ ΦΥΛΛΟΥ ΕΡΓΑΣΙΑΣ ΣΕ CVS ΜΕ BUTTON | smasak | Excel - Ερωτήσεις / Απαντήσεις | 8 | 01-12-15 13:13 |
[VBA] Δημιουργία Φύλλου Εργασίας με κώδικα | othonas | Excel - Ερωτήσεις / Απαντήσεις | 3 | 17-05-13 08:14 |
[Συναρτήσεις] Ενημέρωση μιας λίστας από μια άλλη λίστα ενός άλλου φύλλου εργασίας | labpanag | Excel - Ερωτήσεις / Απαντήσεις | 2 | 06-12-12 17:14 |
Διαδρομή βιβλίου / όνομα φύλλου εργασίας σε κελί. | Tasos | Κείμενο | 0 | 21-09-11 14:34 |
Η ώρα είναι 07:40.