Μετάβαση στο περιεχόμενο

apostolos55

Members
  • Περιεχόμενα

    72
  • Εντάχθηκε

  • Τελευταία επίσκεψη

  • Days Won

    5

Δημοσιεύσεις δημοσιεύτηκε από apostolos55

  1. ST2:

    Το Αρχείο ενημερώθηκε γιατί οι αλλαγές ήταν αρκετές. Ξανακατεβάστε παρακαλώ.

    για το 101.000,01 έχεις δίκιο, δεν το είδα καθόλου. Με παίδεψε λιγάκι αλλά είναι οκ τώρα. Το ...και ένα ή και δέκα εξαρτάται από την ακρίβεια (μπορεί κάποιος να θέλει χιλιοστά) οπότε δεν είναι λάθος

    Επίσης έκανα την πλήρη OlografwsFull και έβαλα τις "μικρότερες" olografws, olografwsEurw, olografwsM-Cm. Παραπάνω ο καθείς ότι χρειάζεται γιατί οι δυνατότητες δέν έχει νόημα να εξαντληθούν εδώ... Απλά καλείς την OlografwsFull όπως αγαπάς κάθε φορά πχ:

    public function Kalwopws8elw(Ari8mos_mou)

    Kalwopws8elw=OlografwsFull(Ari8mos_mou,Epilogh Monadas, typikes monades,dekadikoi)

    end function

     

    PS1: Τώρα θα πρέπει να παρακαλέσω τους Admin να ενημερώσουν με το ανανεωμένο αρχείο και το Olografws στην 11.1

    PS2: Κάτι πήγε στραβά προηγουμένως και το αρχείο μολις το ξαναανέβασα. Συγνώμη για το μπέρδεμα αλλά ειλικρινά δεν ξέρω πως έγινε. Μέγεθος 48.7Kb με 2 αρχεία μέσα, ~12:36 ώρα δημιουργίας.

    • Upvote 1
  2. Χαίρετε φίλοι και συνάδελφοι

    Επειδή το Ολογράφως ήταν χαοτικό, έκανα μια πιο "εξελιγμένη" έκδοση με πιο συμαζεμένο κώδικα και σχόλια.

    Περιλαμβάνει δυνατότητα προσδιορισμού δεκαδικών, προσθήκης ή όχι μονάδων και αλλαγής μονάδων! Όλα αυτά από το κάλεσμα της συνάρτησης, χωρίς να μπαίνουμε σε κώδικα... Δέχεται ως αριθμό: αριθμό ή κείμενο.

    Το ανέβασα και στο Λογισμικό 11.1 (νομίζω) αλλά το στέλνω και εδώ για πιο ειδικά. Για χρήση αρκεί η αντιγραφή του module1 σε οποιοδήποτε φύλλο (sheet) σας...

     

    Γενικά η VBA αναφέρει ότι για να ληφθούν υπόψη Regional Settings επιβάλεται χρήση της CDBL=string ... Εμένα μου δουλέυει αλλά δοκιμάστε το και εσείς.

     

    Φυσικά αναμένω σχόλια, προτάσεις κλπ

    No 2 Text - Olografws.zip

    • Upvote 1
  3. υπαρχει καποιος συνδυασμος που να ειναι κοινος και στα αγγλικα και ελληνικα πληκτρα για διευκολυνση

     

    το ctrl+insert σκέφτομαι

    δυστυχώς δεν παίρνει νούμερα :( που θα βόλευε.

    κάνε νέα ρουτίνα (sub) Που να καλεί αυτή που θες και αντιστοίχισε την στο αλλόγλωσσο πλήκτρο!

    πχ. αν καλείς macro2 με ctrl+x τότε:

     

    Sub Call_Macro2()

    ' Keyboard Shortcut: Ctrl+χ

    macro2()

    End Sub

     

    και alt+f8 ...

  4. καλησπέρα, μια γρήγορη απάντηση και ελπίζω να σε καλύψω (γίνεται χρήση μακροεντολής που ίσως να μην τη θες...):

    alt+F11 --> VBA Editor

    στο VBAProject(paradeigma.xls) δεξί κλικ πάνω σε κάποιο sheet και "add module"

    στο module μέσα (με κλικ πάνω του ή δεξί κλικ και view code) copy-paste το παρακάτω (SUB ... μέχρι και END SUB):

    --------------------

    Sub Macro2()

    '

    ' Macro2 Macro

    '

    ' Keyboard Shortcut: Ctrl+x

    '

    a = ActiveCell.Row

    Rows(a + 1).Select

    Selection.Insert

     

    End Sub

    ----------------------

    Alt+F8 --> Macro

    επιλέγεις το macro2 και Options και βάζεις το x ή όποιο πλήκτρο θες για να το καλείς (shortcut key). Οκ....

     

    τώρα επιλέγεις το κελί και ctrl+x (ή ότι έβαλες)... και ιδού

    προσοχή! το πλήκρο εξαρτάται από την γλώσσα, ίσως και από το άν είναι κεφαλαία-μικρά

     

    PS: ελπίζω να κρατάει κανείς χρόνο απάντησης...

    • Upvote 2
  5. Στο από 25-06-2010, 09:16 μήνυμα έχω κάνει μια διορθωσούλα με χρήση “formulaR1C1” η οποία λύνει το θεματάκι. Κάνε πάλι copy-paste τις συναρτήσεις και διάβασε τα σχόλια στην δεύτερη για φύλλα και ελληνικό Excel

    Η Sumif() είναι στάνταρ συνάρτηση του Excel εδώ και πολλά χρόνια… (σαμιφ)

    Όπως ανέφερα κοιτώντας τα προγράμματά μου για ΙΚΑ με τα σχόλιά τους θα βρείς ακριβώς αυτό που θέλεις… με λίγο υπομονή και επιμονή (απαντώντας σε σχόλια ως 28/6)

    Η Getif() είναι η εξής (κάντη copy-paste σε module για να φαίνεται με complete-help από excel):

    ' Syntasetai akribws opws h SUMIF, dhladh "GetIf (Range1;Criteria;Range2)"

    ' kai briskei range2(i) wste range1(i)=criteria

    ' Pi8ano na doyleuei kai se sthles alla to egrapsa gia grammes

    ' Genikhs xrhshs xwris opoiondhpote elegxo h beltistopoihsh

    '

    ' Goylandris Apostolos, Apr 2008

    '

    Public Function GetIf(a, b, c)

     

    GetIf = "-": counter = 0: counter2 = 0

    For Each dum1 In a ' Search for index

    counter = counter + 1

    If b = Trim(dum1) Then Exit For

    Next

     

    If b = Trim(dum1) Then

    For Each dum1 In c ' Use index to find equivalent

    counter2 = counter2 + 1

    If counter2 = counter Then GetIf = dum1: Exit For

    Next

    End If

     

    End Function

  6. @st2 και γενικότερα

    Αυτό που ζητάς είναι εξαιρετικά δύσκολο. Το εύκολο (αλλά με δουλίτσα για στήσιμο) είναι να φορμάρεις πλήρως μια γραμμή, να κάνεις χρήση της GetIf() (από τα προγράμματά μου για ΙΚΑ) ή της ...vlookup ώστε κάθε φορά που θα προσθέτεις παίχτη να συμπληρώνονται όλα αυτόματα. Για να επεκτείνεις της μορφοποιήσεις θα κάνεις copy-paste προ-μορφοποιημένα κελιά και θα διορθώνεις το Link στον παίχτη.

    Δες καλά τα προγραμματάκια και τα σχολιά τους. Κάνουν αυτό που θες... αλλά με άλλη προσέγγιση

     

    Την vlookup δεν την έχω δουλέψει αλλά έχω δεί ότι κάνει ~ αυτό που θες. Η getif() το κάνει ακριβώς, συντάσεται πανεύκολα (σαν την sumif) και ...την δίνω και Δωρεάν :D

  7. @georgecv

    Γίνεται! Το κάνεις "trap" με vba στο sheet (1) ή workbook (2)

    πάτα Alt+F11 (για VBA Editor)

    (1) copy-paste το παρακάτω στο worksheet:

     

    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Row = 15 And Target.Column = 3 Then

    Cells(22, 6).formular1c1 = "="+Target.Value

    End If

    End Sub

     

    ---| δηλαδή αλλαγές στο κελί Cell(15,3) ή C15 μεταφέρονται στο cell(22,6) ή F22

     

    (2) copy-paste το παρακάτω στο thisworkbook:

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

    If LCase(Sh.Name) = "sheet1" And (Target.Row = 15 And Target.Column = 6) Then

    Sh.Cells(22, 8 ).formular1c1 = "=" + Target.Value

    End If

    End Sub

    ---| Πρόσεξε ότι εδώ κάνουμε trap σε φύλλο και σε κελί!!! και συγκεκριμένα sheet1.F15 --> sheet1.H22

    Ίσως σε Ελληνικό excel χρειαστεί "φύλλο1" αντί sheet1 αλλά δεν είμαι 100% σίγουρος. Αν δε δουλέψει κάνε παγίδευση με Sh.Index=1 ή 2 ... {αντί του LCase(Sh.Name) = "sheet1"}

    Εννοείται ότι η παγίδευση μπορεί να αλλάξει κατά βούληση και η αντιστοίχηση να γίνεται σχετικά (relative)

    sh και target είναι το φύλλο και κελί που προκάλεσαν την αλλαγή

     

    Αυτονόητο είναι ότι παγίδευση σε πολλαπλά κελιά με αυτόματες αλλαγές αναμεταξύ τους (από VBA και Excel formulas) μπορεί να προκαλέσει σύγχηση και εξαιρετικά "βαρύ" πρόγραμμα...

  8. Ωραίο Θέμα

    Ασχολούμαι πολλά πολλά χρόνια με QBasic, Vb και VBA οπότε θα προσπαθήσω όσο μπορώ να συνεισφέρω.

    Για Αρχή, αλλά όχι για αρχάριους, μπορείτε να δείτε τον κώδικα στο αρχείο http://www.michanikos.gr/downloads.php?do=file&id=1031 που παίρνει δεδομένα από πολλά sheets και δημιουργεί αρχείο για το ΙΚΑ. Έχω πολλά σχόλια σε Γκρικλισ και θα κατανοήσετε εύκολα τι παίζει.

    Στο "Module 1" οπωσδήποτε δείτε την Getif (θα έπρεπε να την είχε το Excel) και τις τελευταίες που γλιτώνουν κόπο και χώρο...

    Στο "sheet5 (ΑΠΔ gen)" φαίνεται τρόπος να καλέσω συνάρτηση από αλλαγή σε κελί

    Στο "ThisWorkbook" φαίνεται εργασίες που εκκινούν σε "κατάλληλο" sheet

     

     

    Και μερικά Links για πιο προχωρημένους

    http://www.java2s.com/Code/VBA-Excel-Access-Word/Excel/CatalogExcel.htm

    http://spreadsheetpage.com/index.php/tips

    http://www.xtremevbtalk.com/forumdisplay.php?f=14

    http://www.eggheadcafe.com/searchform.aspx?search=Excel%20macro

    και φυσικά της "μαμάς" http://msdn.microsoft.com/en-us/library/bb979621(v=office.12).aspx

     

     

    Παρατήρηση: Μην κάνετε διαδοχικές δημοσιεύσεις. Για να πραγματοποιήσετε οποιαδήποτε αλλαγή στο περιεχόμενο του κειμένου ή για να συμπληρώσετε το μήνυμα που δημοσιεύσατε, χρησιμοποιείστε την εντολή "Edit".

    Παρακαλώ διαβάστε τους Κανόνες Συμμετοχής!

    Ευχαριστώ, ilias

×
×
  • Create New...

Σημαντικό

Χρησιμοποιούμε cookies για να βελτιώνουμε το περιεχόμενο του website μας. Μπορείτε να τροποποιήσετε τις ρυθμίσεις των cookie, ή να δώσετε τη συγκατάθεσή σας για την χρήση τους.