Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Export/Import Modules,Userforms
Καλημέρα σε όλους υπάρχει κάποιος κώδικας ( vba excel ) για εξαγωγή ολων των userform από ένα βιβλίο και ταυτόχρονα να γίνει αντικατάσταση τους σε πολλά βιβλία που ήδη την περιέχουν?
|
#2
| ||||
| ||||
Καλησπέρα! Για να επιτραπεί η προγραμματιστική πρόσβαση στο μοντέλο αντικειμένου του έργου VBA της Excel (εκεί ανήκουν οι φόρμες) πρέπει να ενεργοποιηθεί η αντίστοιχη επιλογή στις ρυθμίσεις του κέντρου αξιοπιστίας (βλ.εικόνα). Ο παρακάτω κώδικας αντικαθιστά φόρμα με συγκεκριμένο όνομα σε όλα τα αρχεία που περιέχουν επίσης φόρμα με το ίδιο όνομα τα οποία βρίσκονται σε φάκελο που θα ορίσει ο προγραμματιστής: Κώδικας: Sub TestCopyAndReplaceUserform() CopyAndReplaceUserform "UserForm1", ThisWorkbook.Path & "\MyFolder" End Sub και ThisWorkbook.Path & "\MyFolder ο φάκελος που περιέχει τα αρχεία με τις φόρμες προς αντικατάσταση. Ο παραπάνω κώδικας καλεί την παρακάτω διαδικασία: Κώδικας: Sub CopyAndReplaceUserform(FormName As String, WorkbooksFolderPath As String) Dim vb_Component As VBComponent Dim FormFilename As String Dim msg As VbMsgBoxResult Dim wb As Workbook Dim fso As New Scripting.FileSystemObject Dim oFolder As Scripting.Folder Dim ofile As Scripting.File If Not fso.FolderExists(WorkbooksFolderPath) Then MsgBox "Ο φάκελος στη διαδρομή: '" & WorkbooksFolderPath & "' δεν βρέθηκε στο σύστημα!" _ & vbLf & "Η διαδικασία θα διακοπεί.", vbExclamation Exit Sub End If msg = vbYes For Each vb_Component In ThisWorkbook.VBProject.VBComponents If vb_Component.Type = vbext_ct_MSForm Then If UCase(vb_Component.Name) = UCase(FormName) Then If Right(WorkbooksFolderPath, 1) <> "\" Then WorkbooksFolderPath = WorkbooksFolderPath & "\" End If FormFilename = WorkbooksFolderPath & vb_Component.Name & ".frm" If Dir(FormFilename, vbDirectory) <> "" Then msg = MsgBox("Tο αντικείμενο '" & FormName & "' υπάρχει ήδη." & vbLf _ & "Θέλετε να αντικατασταθεί;", vbQuestion + vbYesNo) If msg = vbYes Then Kill FormFilename Application.Wait Now + TimeSerial(0, 0, 1) End If End If If msg = vbYes Then vb_Component.Export FormFilename End If Exit For End If End If Next Set oFolder = fso.GetFolder(WorkbooksFolderPath) On Error GoTo ExitHere With Application .EnableEvents = False .Calculation = xlCalculationManual .ScreenUpdating = False For Each ofile In oFolder.Files If UCase(fso.GetExtensionName(ofile.Path)) = "XLSM" Then Set wb = Workbooks.Open(ofile.Path) For Each vb_Component In wb.VBProject.VBComponents If vb_Component.Type = vbext_ct_MSForm Then If UCase(vb_Component.Name) = UCase(FormName) Then wb.VBProject.VBComponents.Remove vb_Component .Wait Now + TimeSerial(0, 0, 1) wb.VBProject.VBComponents.Import (FormFilename) wb.Save Exit For End If End If Next wb.Close False End If Next ExitHere: .EnableEvents = True .Calculation = xlCalculationAutomatic .ScreenUpdating = True End With If Err <> 0 Then MsgBox "Σφάλμα: " & Err.Number & vbLf & Err.Description, vbExclamation End If End Sub Microsoft Scripting Runtime και Microsoft Visual Basic for Applications Extensibility 5.0 (βλ. εικόνα) Εάν η τελευταία δεν βρίσκεται στη λίστα, πάτησε [Browse...] και επίλεξε το αρχείο VBE6EXT.OLB στο φάκελο Program Files (ενδεχομένως x86)\Common Files\Microsoft Shared\VBA\VBA6\ Υπάρχει σχετική βοήθεια για προγραμματιστές στη σελίδα της Microsoft: Manipulating Projects with Add-Ins Καλή συνέχεια! Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 22-03-14 στις 01:19. |
#3
| |||
| |||
Ευχαριστω πολυ για την πολυτιμη βοηθεια!!!
|
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[ Φόρμες ] Export to Excel | Ρούλα | Access - Ερωτήσεις / Απαντήσεις | 6 | 05-01-16 07:04 |
[Γενικά] Import txt στο excel | TManolis99 | Excel - Ερωτήσεις / Απαντήσεις | 3 | 13-02-14 13:03 |
[ Πίνακες ] Update τιμών Πεδίων ενός πίνακα μέσω Excel Import | Leader | Access - Ερωτήσεις / Απαντήσεις | 2 | 20-03-12 23:23 |
Export form results | spooky | Access - Ερωτήσεις / Απαντήσεις | 7 | 31-05-10 18:13 |
[ Εκθέσεις ] H εικόνα δεν βγαίνει όταν κάνουμε export σε word 2003 | jimvasiloudis | Access - Ερωτήσεις / Απαντήσεις | 1 | 17-03-10 22:10 |
Η ώρα είναι 14:34.