![]() |
αποθήκευση και άνοιγμα βιβλίου. Καλημέρα σε ολη την παρέα. έχω δυο ερωτήσεις που ενώ φαντάζουν εύκολες με έχουν τρελάνει και αν και πειραματιστηκα μπας και τις διορθώσω τελικός δεν μπόρεσα. 1)Σε ένα βιβλίο excel.XLTM με έναν κώδικα vba μου ζητάει κατά την αποθήκευση και κάθε φορά να επιλέγω το excel macro-enabled template και κάθε φορά το αποθηκεύει σε νέο βιβλίο, πως μπορώ να το αποφύγω αυτό? 2) έχω ένα add-in αρχείο που με βοηθάει πάρα πολύ στις ημερομηνίες, αλλά κάθε φορά που ανοίγω το excel με ρωτάει "enable or disable" και αυτό αν μπορώ να το αποθηκεύω 1 φορά και να μην με ρωτάει συνεχεία. Ευχαριστώ.xltm |
Ασαφές ερώτημα... Βασικά τα templates, τα έχουμε για «παραγωγή» Με τα templates, μπορούμε να αποθηκεύσουμε ή το ίδιο το βιβλίο ή ένα παράγωγο του... Τι κάνει ακριβώς ο κώδικας; Στο ζητάει ο κώδικας ή η Excel; Αν η εφαρμογή, τότε καλώς το κάνει, γιατί προφανώς (?), έχεις στα options, την αποθήκευση σε .xlsx (πιο πιθανό) ή .xlsm Πάντως 100% απάντηση, χωρίς να δούμε τον κώδικα και την λειτουργία, δεν υπάρχει. Όσο για την Add-In, αποθήκευσέ την στο φάκελο της εφαρμογής: Addins ή Πρόσθετα (ανάλογα τη γλώσσα) και ενεργοποίησε μόνιμα από την κορδέλα... |
Σπύρο γεια σου και σε ευχαριστω για το ενδιαφερον. ο κώδικας είναι ο παρακάτω ο οποίος είναι σε ένα κουμπί που σβήνει όλες τις κενές γραμμές στον πίνακα : το αρχείο δεν μπόρεσα να το ανεβάσω από εδώ, και το ανέβασα από άλλη σελίδα για να το δεις ακριβός πως είναι. https://ufile.io/15181 Option Explicit Sub διαγραφή() 'Code from Officetricks.com - How to Delete Blank Rows in Excel using VBA? Dim iRow As Double, iCol As Double iRow = 1 iCol = 1 While True 'Check whether Cell 1 is Blank for that a row ActiveSheet.Cells(iRow, iCol).Select If VBA.Trim(ActiveSheet.Cells(iRow, iCol)) = "" Then While True 'If Cell 1 is Blank then verify all the columns in that row If VBA.Trim(ActiveSheet.Cells(iRow, iCol)) <> "" Then GoTo Skip_To_Next_Row: End If iCol = iCol + 1 If iCol > 256 Then GoTo Del_Row: Wend Del_Row: 'If first cell is Empty, then execute VBA Code to Delete a Row in Excel ActiveSheet.Rows(iRow).Delete Shift:=xlUp iRow = iRow - 1 End If Skip_To_Next_Row: iRow = iRow + 1 If ActiveSheet.UsedRange.Rows.Count < 2 Then GoTo End_Process: If iRow > ActiveSheet.UsedRange.Rows.Count Then GoTo End_Process: iCol = 1 Wend End_Process: MsgBox "Η διαγραφή ολοκληρώθηκε." End Sub 2) Για το add-in δεν κατάλαβα πως ακριβός να το ενεργοποιήσω μόνιμα από την κορδέλα, αλλά δεν το έχω σε φάκελο, είναι στην επιφάνεια εργασίας το αρχείο. |
Ο κώδικας δεν έχει καμία σχέση... Η λειτουργία του template, είναι όπως πρέπει... Θα σου πω μερικά πράγματα, με σκοπό (και μόνο) να μάθεις κάτι... Για το συγκεκριμένο αρχείο, ζήτησες κώδικα στην αρχή... Πήρες έναν, (από εμένα) αποσαφηνίσαμε το ζητούμενο και μετά έναν δεύτερο.... Κατέληξες σε συναρτήσεις (κανένα πρόβλημα)... Έκανες έναν πίνακα (καλώς) αλλά έχεις validation (και άλλα), έξω από τον πίνακα(κακώς)... Πήρες ένα κώδικα, από άλλο site, (δεν τον εξετάζω, αν είναι αυτό που θέλεις ή αν είναι σωστός) και τα πάντρεψες όλα σε ένα template. O σκοπός του template, είπαμε είναι να δημιουργεί «παράγωγα» Και το κάνει καλά. Αν δικός σου σκοπός, δεν είναι η παραγωγή αρχείων, με κοινό interface αλλά διαφορές στα δεδομένα, τότε κακώς που έχεις .xltm Ένα απλό .xlsx ή με κώδικα .xlsm αρκεί. Πρίν απ' όλα, πήγαινε στην βοήθεια της Microsoft, διάβασε για τους πίνακες και μετά για τα είδη αρχείων και τι κάνουν... Μην βιάζεσαι να δημιουργήσεις αρχεία, αν δεν είναι σωστά. Καλύτερα πιο απλά στην αρχή, με πολύ απλές συναρτήσεις, να κάνεις δουλίτσα και αργότερα, μαθαίνοντας, διορθώνεις - αναπροσαρμόζεις... |
Σπύρο πρώτα απ όλα σε ευχαριστώ για όλη την βοήθεια σου. Έχεις δίκιο ότι είναι κάπως βιαστικό όλο αυτό που κάνω αν και ανίδεος προσπαθώ να φτιάξω ένα αρχείο στον πατέρα μου που δεν σκαμπάζει και πολυ, για να περνάει τις αποδείξεις του για τον λογιστή, οπότε έπρεπε να είναι όσο ποιο απλό και αυτοματοποιημένο γίνετε και να το φτιάξω όσο το δυνατόν ποιο γρήγορα γιατί τις γράφει μια μια, γραμμα γραμμα. Αυτό με τον πίνακα που μου πρότεινες αν και δεν έκανα πίνακα ποτέ μου, μου φάνηκε ποιο απλό απ το να ψάχνω κώδικες και άλλες τέτοιες σπαζοκεφαλιές . Οτι έβαλα συναρτήσεις στον πίνακα προέκυψε από την θέληση μου να μάθω πως λειτουργεί ο πίνακας που μου έστειλες την πρώτη φορα, και είδα ότι όταν διέγραψα όλα τα δεδομένα στον πινάκα δεν έκανε τίποτα, όταν όμως του έδωσα τα πρώτα δεδομένα λειτουργούσε αντιγραφωντας τα με απόλυτα καλό αποτέλεσμα. Αυτά ως το γιατί έκανα του κεφαλιού μου :D θα πάω Microsoft για τους πίνακες όπως είπες και θα του δώσω ως έχει το αρχειάκι, και αργότερα το αντικαθιστώ. Όσο για την μορφή αποθήκευσης ήταν παρανόηση δική μου αντί macro-enabled workbook πήγα στο macro-enabled template. το έκανα τώρα macro-enabled workbook (xlsm) όπως είπες και διορθώθηκε. |
| Η ώρα είναι 20:40. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.