Format se excel me macroentoles?

VB Script και κολπάκια, Excel macro, Word, Powerpoint, κτλ

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
stratos_chm
Δημοσιεύσεις: 22
Εγγραφή: 12 Σεπ 2005 19:01

Format se excel me macroentoles?

Δημοσίευση από stratos_chm » 27 Νοέμ 2005 18:09

Exw mia lista i opoia einai tis morfis:

1 FGF:00002 0.45 90 12
2 dimitris .... ..
3 maria
4 xristos .... ..

5 FGF:00003 0.47 96 10
6 manos .. ..
7 giorgos .. ..

8 FGF:00003 0.67 76 19
9 panos .. ..
10 giorgos .. ..
11 viki .. ..
12 eleni .. ..


Ayto poy thelo einai oles seires oi opoies sti proti stili exoun to xaraktiristiko, na ksekinane apo to string 'FGF:' ,oles oi stiles tis grammis autis na ginontai me mple font xroma.

dld oi seires 1,5 kai 8 thelo gia oles tis sthles tous na exoun mple font xroma.

dld na ginei etsi:

1 FGF:00002 0.45 90 12
2 dimitris .... ..
3 maria
4 xristos .... ..

5 FGF:00003 0.47 96 10
6 manos .. ..
7 giorgos .. ..

8 FGF:00003 0.67 76 19
9 panos .. ..
10 giorgos .. ..
11 viki .. ..
12 eleni .. ..

prospathisa na to kano me to menu format tou excel alla de ginetai.

Mporei kapoios na grapsei mia macro giauto to provlima?

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Format se excel me macroentoles?

Δημοσίευση από dva_dev » 27 Νοέμ 2005 23:49

Μια πρόχειρη λύση χωρίς μακροεντολές είναι η εξής:
Μαρκάρεις όλα τα κελιά που έχεις τη λίστα σου.
Πας στο μενού Format -> Conditional Formatting και βάζεις στο condition
"Cell value is" "equal to" "FGF;", πατάς το κουμπί Format, πας στο tab Font, και βάζεις στο χρώμα "Automatic".
Μετά προσθέτεις ένα δεύτερο condition
"Cell Value is" "between" "FGF:" και "FGF;"
Μετά πατάς το κουμπί Format και στο tab font διαλέγεις μπλε χρώμα.

Με αυτό τον τρόπο (2o condition) θα χρωματίζει με μπλε όλα τα κελιά που έχουν κάποια τιμή από το "FGF:"+οτιδήποτε μέχρι και το "FGF;" Αυτή η τελευταία τιμή εξαιρείται επειδή την πιάνει το 1o condition.
Συνημμένα
CndFmt.gif
(6.25 KiB) Μεταφορτώθηκε 645 φορές

Άβαταρ μέλους
stratos_chm
Δημοσιεύσεις: 22
Εγγραφή: 12 Σεπ 2005 19:01

Format se excel me macroentoles?

Δημοσίευση από stratos_chm » 28 Νοέμ 2005 09:51

Katarxhn s eyxaristo gia tin apantisi dva_dev.

Mayto to tropo omos ginetai mono i proti stili me mple grammatoseira

dld ginetai auto:

1 FGF:00002 0.45 90 12
2 dimitris .... ..
3 maria
4 xristos .... ..

Oi treis diplanei arithmoi einai o kathenas se alli stili.
Me to conditional formating de mporo na to kano giati oi teleies parapano
anaparistoun paromoious arithmous me autous pou einai dipla sto FGF:00002.

Opote nomizo oti einai upoxreotiko na grapseis mia makroentoli.
An mporeis na boithise me ligo akoma...

Άβαταρ μέλους
alkisg
Δημοσιεύσεις: 265
Εγγραφή: 03 Ιουν 2005 11:53
Τοποθεσία: Ιωάννινα
Επικοινωνία:

Format se excel me macroentoles?

Δημοσίευση από alkisg » 28 Νοέμ 2005 13:59

Άμα έχεις απλά ένα συγκεκριμένο κείμενο να κάνεις, τότε:
1) Βάλε στην 6 στήλη συνεχόμενους αριθμούς, π.χ. 1, 2, 3, 4, 5, 6...
2) Κάνε μια ταξινόμηση όλων των γραμμών. Έτσι τα FGF κτλ θα μαζευτούν όλα στο ίδιο σημείο.
3) Τα επιλέγεις και τα κάνεις μπλε.
4) Ξανακάνεις ταξινόμηση με βάση την 6η στήλη, οπότε να ξαναγυρίσουν όπως τα είχες.
5) Σβήνεις την 6η στήλη. Δεν χρειάζεται πλέον.

Άβαταρ μέλους
stratos_chm
Δημοσιεύσεις: 22
Εγγραφή: 12 Σεπ 2005 19:01

Format se excel me macroentoles?

Δημοσίευση από stratos_chm » 28 Νοέμ 2005 14:26

Ευχαριστω alkisg.

Και αυτο γινεται.Αλλα φαντασου να εχεις 50 τετοιες λιστες με 200 FGF.

Τελοσπαντων αν καποιος θα μπορουσε να γραψει 5 γραμμες κωδικα στη vB θα με βοηθουσε ιδαιτερα.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Format se excel me macroentoles?

Δημοσίευση από dva_dev » 28 Νοέμ 2005 18:56

Να σε βοηθήσουμε λίγο ακόμα... :)

Ανοίγεις το xls που έχεις τις λίστες και πηγαίνεις στο μενού Tools | Macro | Visual Basic Editor.
Στο tree control που βγαίνει στην πάνω αριστερή μεριά του παραθύρου που ανοίγει διαλέγεις το workbook "ThisWorkbook" με διπλό κλίκ (όχι κάποιο από τα sheets) ώστε να σου ανοίξει νέο παράθυρο για να γράψεις κώδικα.
Αντιγράφεις το παρακάτω κομμάτι.
Πηγαίνεις στο μενού Debug | Compile VBAProject για να επιβεβαιώσεις ότι ο κώδικας έχει γίνει σωστά copy/paste και δεν έχει λάθη. (Τον έχω ελέγξει σε Αγγλικό Excel 2002 SP3, για το ελληνικό δεν μπορώ να υποσχεθώ τίποτα, γιατί έχουν δει πολλά τα ματάκια μου).
Κλείνεις το παράθυρο της VBA.
Εχεις πλέον διαθέσιμη την macro ThisWorkbook.MyFormatCells.

Κώδικας: Επιλογή όλων

Option Explicit

Const szTestValue As String = "FGF:"

Public Sub MyFormatCells()
    Dim selRange As Range
    Dim xRow As Range
    Dim nTestValueLen As Integer
    
    nTestValueLen = Len(szTestValue)

    Set selRange = ActiveSheet.UsedRange
    
    For Each xRow In selRange.Rows
        If (Left(xRow.Cells(1, 1).Value, nTestValueLen) = szTestValue) Then
            'xRow.Cells.Font.Color = vbBlue
            xRow.Cells.Font.ColorIndex = 5
        Else
            'xRow.Cells.Font.Color = vbBlack
            xRow.Cells.Font.ColorIndex = xlColorIndexAutomatic
        End If
    Next xRow

    Set selRange = Nothing
End Sub
Χρήσιμο θα ήταν να βάλεις στην toolbar ένα κουμπάκι που να καλεί αυτή τη macro.

Αν έχεις security πρόβλημα με το να εκτελέσεις τον κώδικα τότε πρέπει να μειώσεις σε Medium ή Low το επίπεδο ασφάλειας που αφορά τα macros από το Tools | Macro | Security

Άβαταρ μέλους
stratos_chm
Δημοσιεύσεις: 22
Εγγραφή: 12 Σεπ 2005 19:01

Format se excel me macroentoles?

Δημοσίευση από stratos_chm » 30 Νοέμ 2005 10:38

thx και πάλι dva_dev

Αυτές οι λίστες βγαίνουν απο το Matlab. Είναι το μόνο λογισμικό με το οποίο έχω άσχοληθει προγραμματιστικά. Αυτό γιατί με όλες τις άλλες γλώσσες (VB Java C) πρέπει να δήλωνεις εξ' αρχής τις μεταβλητές σου. Αύτο είναι κάτι που έμενα δε μ' άρεσει στον προγραμματισμό. Τώρα τελευταία όμως έχω αρχίσει να ασχολούμαι λίγο και μ'αύτες τις γλώσσες γιάτι είναι πάρα πολύ χρήσιμες σε ορισμένα θέματα.

Απάντηση

Επιστροφή στο “Office, Excel, Word VB Scripts και Tips”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες