Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Γενικά] Excel σε OpenOffce (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/1104-excel-se-openoffce.html)

manolis 01-05-11 13:46

Excel σε OpenOffce
 
1 Συνημμένο(α)
Καλημέρα σε όλη την παρέα και καλό μήνα

Εχω φτιάξει ενα αρχείο σε excel το οποίο περιέχει μακροεντολές.
Αυτό προσπαθώ να το δουλέψω με OpenOffice .
Εχω ενεργοποιήσει τις μακροεντολές αλλα δεν δουλευουν.
Μηπως μπορεί κάποιος να με βοηθήσει ?

Ευχαριστώ

Tasos 01-05-11 15:31

Καλησπέρα Μανώλη και καλό μήνα!

Θα σου δώσω μια γενικότερη πληροφορία/απάντηση αφού το φόρουμ δεν υποστηρίζει άλλες
εφαρμογές υπολογιστικών φύλλων εκτός από τη Microsoft Excel.

Για να εκτελεστούν μακροεντολές VBA στην εφαρμογή Calc ( και γενικότερα στο OpenOffice )
και θα χρειαστεί η εκάστοτε εφαρμογή να τεθεί σε λειτουργία συμβατότητας VBA.

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

VBASupport Option 1

πχ.:

Κώδικας:

REM  *****  BASIC  *****

Option VBASupport 1

Sub Main
    Dim rng As Range
    Set rng = ActiveWorkbook.WorkSheets("Sheet1").Range("A1:B30")
    MsgBox rng.Address
End Sub

Σημείωση: Το Οbject Μodel του Calc διαφέρει σε πολλά σημεία από το Οbject Μodel της Microsoft Excel
που σημαίνει ότι ακόμα και σε λειτουργία συμβατότητας VBA, αναλόγως τα περιεχόμενα του
κώδικα (κυρίως αναφορές σε Αντικείμενα Excel), θα παρουσιαστούν προβλήματα!


Edit:
Αναφέρομαι στις μακροεντολές του συνημμένου σου.
γράφεις:
Κώδικας:

.......
 Range("F6").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=NOW()"
    Range("F6").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ........

Μη χρησιμοποιείς Select και Copy δεν είναι απαραίτητο και προκαλεί "τρέμουλο" στην οθόνη.
Μπορείς να απλοποιήσεις τη μακροεντολή αυτή ....αρκεί να πεις στην VBA τι θέλεις να κάνεις....
Θα μπορούσες δηλαδή να χρησιμοποιήσεις: Range("F6").Value = Now

Επίσης:
Κώδικας:

    Range("G10").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-1]=0,"" "",RC[-1]-RC[-4])*RC[-1]-RC[-4]"

Θα μπορούσες να χρησιμοποιήσεις: Range("G10").FormulaR1C1 = "=IF(RC[-1]=0,"" "",RC[-1]-RC[-4])*RC[-1]-RC[-4]"

Καλή συνέχεια!

Φιλικά

Τάσος

manolis 01-05-11 16:28

Τάσο σε ευχαριστώ για τις συμβουλές σου.

Μια διευκρίνιση μόνο. Οταν λες :
"Αυτό επιτυγχάνεται με την τοποθέτηση της παρακάτω γραμμής στην κορυφή της λειτουργικής
μονάδας "
που εννοείς να τη βάλω ?

Οσο για τις παρατηρήσεις στον κώδικα.
Αυτά μου τα έχεις ξαναπει αλλα έγω ως κακός μαθητής :hammer-smilies-0002
δεν τα εφάρμοσα :whistle:

Tasos 01-05-11 17:21

Στο Calc πατάς ALT+F11 βρίσκεις τη λειτουργική μονάδα, αφαιρεις όλα τα "REM" που
υπάρχουν ανάμεσα στις μακροεντολές και στην κορυφή του κάθε Module
που έχει να κάνει με το συγκεκριμένο βιβλίο εργασίας θα περάσεις αυτό:

VBASupport Option 1

Δεν σου εγγυώμαι ότι θα δουλέψει.

Αν θέλεις τη συμβουλή μου, για να δουλέψει σωστά το αρχείο σου σε OpenOffice, χρησιμοποίησε τις μακροεντολές του OpenOffice αντί αυτές της VBA.

Φιλικά

Τάσος

manolis 01-05-11 18:01

Τάσο το έκανα αλλα δεν δουλεύει.

Οπως κατάλαβες απο το αρχείο προορίζεται για να υπολογίζει το χρόνο και το κόστος σε ένα μαγαζί με μπιλιάρδα .Σκέφτηκα να χρησιμοποιήσω το OpenOffice μήπως και γλυτώσει ο φίλος για τον οποίο το έφτιαξα την αγορά του Office.

Ευχαριστω πολύ για την ανταποκριση σου

Φιλικά
Μανώλης


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

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


Search Engine Optimization by vBSEO 3.3.2