| Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Καλημέρα στην παρέα Φώτη, αν κατάλαβα καλά θέλεις να καταχωρείς ακέραιους αριθμούς (πχ 12345678, 56, 1) αλλά να αποθηκεύεται το πηλίκο τους με το εκατό (πχ 123456,78 0,56 0,01). Θέλεις επίσης στη μορφοποίηση να εμφανίζεται και το διαχωριστικό των χιλιάδων. Στο αρχείο που επισυνάπτω (είναι το αρχείο με τις λύσεις που πρότεινε ο Θανάσης) έχω διαμορφώσει τη στήλη K ώστε να έχει αυτές τις ιδιότητες. Φιλικά/Γιώργος |
|
#2
| ||||
| ||||
|
Καλησπέρα σε όλους! Μπορούμε ακόμα να ρυθμίσουμε προγραμματιστικά (με VBA) την Αυτόματη Εισαγωγή Υποδιαστολής και τις θέσεις της πριν από το τέλος του αριθμού όπως μας υπέδειξε ο Γιώργος. Έτσι, στον κώδικα του βιβλίου έχουμε: Κώδικας: Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.FixedDecimalPlaces = GetSetting("xlApp", "Settings", "FixedDecimalPlaces", 2)
.FixedDecimal = GetSetting("xlApp", "Settings", "FixedDecimal", False)
End With
End Sub
Private Sub Workbook_Open()
With Application
SaveSetting "xlApp", "Settings", "FixedDecimalPlaces", .FixedDecimalPlaces
SaveSetting "xlApp", "Settings", "FixedDecimal", .FixedDecimal
If .FixedDecimalPlaces <> 2 Then .FixedDecimalPlaces = 2
End With
End Sub
Κώδικας: Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.FixedDecimal = Not Intersect(Target, Range("A1:A29")) Is Nothing
End Sub
![]() Να είστε πάντα καλά! Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 26-06-11 στις 10:05. |
|
#3
| |||
| |||
|
Καλησπέρα! Φίλε Γιώργο η λύση σου είναι τόσο απλή που κάνει την αμάθεια μου ακόμη πιο μεγάλη. ![]() Όσο για τις λύσεις σε VBA από τον Θανάση και τον Τάσο.... ![]() Σας ευχαριστώ όλους για την άμεση λύση του προβλήματος και για τις υποδείξεις σας. ΥΓ Δούλεψαν όλες ρολόϊ. |
|
#4
| |
| Παράθεση:
![]() Το μόνο μειονέκτημα σε σχέση με το συγκεκριμένο ερώτημα είναι ότι αφορά ολόκληρο το φύλλο και όχι περιορισμένη περιοχή. Θα έλεγα λοιπόν ότι ο κανόνας "Πάντα μαθαίνουμε... Κανείς δεν τα γνωρίζει όλα" επιβεβαιώνεται για μια ακόμα φορά. Ευχαριστώ τον Φώτη για το ερώτημα του αλλά και τον Γιώργο για την μετάδοση της γνώσης. Θανάσης |
|
#5
| |||
| |||
|
Καλημέρα στην παρέα Η ρύθμιση των «σταθερών δεκαδικών» είναι βολική, αλλά, αν δεν προσέξουμε, μπορεί να οδηγήσει σε λάθη. Τα βασικά που πρέπει να έχουμε υπόψη μας είναι: 1. Η ρύθμιση αφορά ολόκληρο το βιβλίο εργασίας και αποθηκεύεται μαζί του. Αυτό σημαίνει ότι, αν πληκτρολογήσουμε έναν ακέραιο σε οποιοδήποτε κελί του βιβλίου, στο κελί θα αποθηκευτεί το πηλίκο του ακέραιου με το 100. Αντιθέτως, αν πληκτρολογήσουμε ένα δεκαδικό, ο δεκαδικός δε θα αλλάξει και θα αποθηκευτεί όπως τον πληκτρολογήσαμε (δε θα διαιρεθεί με το 100). 2. Αν αφαιρέσουμε τη ρύθμιση των «σταθερών δεκαδικών», ότι έχει αποθηκευτεί στα κελιά δε θα αλλάξει. Απλά από το σημείο αυτό το excel θα συμπεριφέρεται φυσιολογικά (δε θα διαιρεί τους ακέραιους με το 100). Κατά τη γνώμη μου, για να αποφύγουμε τα λάθη, μετά από την καταχώρηση ενός συνόλου ακεραίων ,που θέλουμε να διαιρούνται αυτόματα με το 100, θα πρέπει να αφαιρείται η ρύθμιση των «σταθερών δεκαδικών» για να επανέρχεται το excel στη συμπεριφορά με την οποία είμαστε εξοικειωμένοι. Φυσικά, αν θέλουμε να καταχωρήσουμε νέα ομάδα ακεραίων, δεν μας εμποδίζει τίποτα να επαναφέρουμε τη ρύθμιση. Φιλικά/Γιώργος ΥΓ Σας ευχαριστώ όλους για τα καλά λόγια |
|
#6
| ||||
| ||||
|
Καλησπέρα στην παρέα! Γιώργο μου, νομίζω ότι με τον κώδικα του προηγούμενου μηνύματος μου ελέγχεται πλήρως η κατάσταση. Δεν επηρεάζει καμία ρύθμιση της εφαρμογής αφού με το κλείσιμο της επαναφέρει τις προηγούμενες ρυθμίσεις που ίσως έχει κάνει ο χρήστης. Επίσης με το συμβάν Worksheet_SelectionChange() μπορούμε να καθορίσουμε την/τις περιοχές όπου θα επιτρέπεται η αυτόματη Εισαγωγή Υποδιαστολής. Για παράδειγμα: Κώδικας: Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' If Target.Count > 1 Then Exit Sub
' If Target.Row > 20 Or Target.Row < 5 Then Exit Sub
Select Case Target.Column
Case 1, 2, 3, 4
Application.FixedDecimal = True
Case Else
Application.FixedDecimal = False
End Select
End Sub
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
|
#7
| |||
| |||
|
Καλησπέρα στην παρέα Τάσο μου, συμφωνώ ότι με τον κώδικα έχουμε καλύτερο έλεγχο στη ρύθμιση «Αυτόματη Εισαγωγή Υποδιαστολής» (σταθερών δεκαδικών), οπότε περιορίζουμε και τον κίνδυνο λαθών. Στο προηγούμενο μήνυμά μου έγραφα ότι «Η ρύθμιση αφορά ολόκληρο το βιβλίο εργασίας». Το σωστότερο είναι ότι η ρύθμιση είναι επιπέδου εφαρμογής και συνεπώς, όταν γίνεται χειροκίνητα, υπάρχει περίπτωση (όταν κλείσουμε το excel) να είναι ενεργοποιημένη οπότε, αν μετά ανοίξουμε ένα βιβλίο εργασίας ή δημιουργήσουμε νέο, μπορεί να μη προσέξουμε ότι οι ακέραιοι που πληκτρολογούμε διαιρούνται με το 100. Στο αρχείο που επισυνάπτω προσπάθησα να δοκιμάσω τον κώδικα του Θανάση και του Τάσου. Το αποτέλεσμα παρουσιάζει ενδιαφέρον και ομολογώ ότι δεν το περίμενα. Φιλικά/Γιώργος Τελευταία επεξεργασία από το χρήστη kapetang : 26-06-11 στις 21:11. Αιτία: Αλλαγή συνημμένου |
![]() |
| Ετικέτες |
| vba, μορφοποίηση, συναρτήσεις |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| Εργαλεία Θεμάτων | |
| Τρόποι εμφάνισης | |
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [Συναρτήσεις] Αναζήτηση συνάρτησης:"If then do στο κελί τάδε αυτό και στο κελί τάδε το άλλο..." | vagpte | Excel - Ερωτήσεις / Απαντήσεις | 4 | 08-05-13 11:23 |
| [Γενικά] αυτόματη προσαρμογή αριθμου σε κελί | misirlis | Excel - Ερωτήσεις / Απαντήσεις | 2 | 24-03-11 05:04 |
| [Excel07] Εισαγωγή κελιού σε άλλο κελί με διπλό κλικ του ποντικιού | ΠΑΥΛΟΣ | Excel - Ερωτήσεις / Απαντήσεις | 4 | 22-09-10 10:05 |
| [Γενικά] Κελί που να ενημερώνεται από την εισαγωγή δεδομένων σε ένα άλλο κελί? | dancer_69 | Excel - Ερωτήσεις / Απαντήσεις | 4 | 19-03-10 12:04 |
| Εισαγωγή formula σε κελί μέσω VBA... | ChryssaV | Access - Ερωτήσεις / Απαντήσεις | 4 | 09-10-09 10:05 |
Η ώρα είναι 00:17.








Υβριδικός τρόπος

