Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] Αυτόματη αύξηση (κωδικού) κατά 1 σε πίνακα (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/3897-aytomati-aiksisi-kodikoi-kata-1-se-pinaka.html)

gfevran 28-10-15 16:12

Αυτόματη αύξηση (κωδικού) κατά 1 σε πίνακα
 
1 Συνημμένο(α)
Χρόνια πολλά,
Θα ήθελα τη βοήθεια σας σε αυτό που περιγράφω στον τίτλο
Ευχαριστώ.

Χρήστος 28-10-15 16:28

Μια ιδέα θα ήταν αυτή....ίσως να μπορούσε να βελτιωθεί ... δεν ξέρω....

gfevran 28-10-15 16:47

Χρήστο καλησπέρα,
Δεν μου δούλεψε σωστά!
όταν προσθέσω κάποιο όνομα στο παράδειγμα που ανέβασες,
επαναλαμβάνει δύο φορές το ίδιο νούμερο.
δοκίμασε το από εκεί που άφησες το παράδειγμα.

Χρήστος 28-10-15 16:51

Δεν το βλέπω...

Χρήστος 28-10-15 17:05

δε μου λες...όταν γράφεις (χωρίς να αφήνεις κενές γραμμές...γραμμή ανά γραμμή δηλαδή), επεκτείνεται ο πίνακας, ή έχεις διακόψει τις αυτόματες μορφοποιήσεις?

gfevran 28-10-15 17:06

όπως το έχεις φτιάξει δουλεύει σωστά.
παρέλειψα μια λεπτομέρεια, να διατυπώσω από την αρχή ότι,
η ανάπτυξη του πίνακα θέλω να γίνεται κάθε φορά που προσθέτω όνομα αυτόματα,
τι θέλω να πω δοκίμασε να προσθέσεις όνομα χωρίς να σύρεις με το ποντίκι τον πίνακα προς τα κάτω

Χρήστος 28-10-15 17:10

Μα αυτό κάνω......κάνε τα εξής:
Επιλογές Excel > Εργαλεία ελέγχου > Επιλογές αυτόματης διόρθωσης > Αυτόματη μορφοποίηση κατά την πληκτρολόγηση > Βάλε τικ σ' αυτό που δεν έχει (προσθήκη γραμμών και στηλών ....)!

gfevran 28-10-15 17:26

Έχω το office 2013 και από τις επιλογές excel δεν υπάρχει "καρτέλα εργαλεία ελέγχου"
Συγνώμη σε έχω κουράσει!.

Χρήστος 28-10-15 17:48

Ελπίζω να βοηθηθείς...

Spirosgr 28-10-15 17:59

Καλησπέρα
Αυτά τα θέματα, λύνονται μόνο με κώδικα.

Αν έχω τύπους και ο πίνακας μου είναι πχ

κωδικός | όνομα
---------------------------
101 | Όνομα 1
102 | Όνομα 2
103 | Όνομα 3
104 | Όνομα 4

Αν διαγράψω το (102 | Όνομα 2), όλα τα άλλα από κάτω θα αλλάξουν.
Δεν νομίζω να θέλει κανείς να αλλάζουν οι κωδικοί πελατών για παράδειγμα....

Χρήστος 28-10-15 18:03

Έτσι όπως το θέτεις.....σίγουρα όχι...........εγώ το αντιλήφθηκα για απλή αρίθμηση να πω την αλήθεια

gfevran 28-10-15 18:09

Είναι τικαρισμένη η επιλογή (προσθήκη γραμμών και στηλών ....)
Τι να πω δεν ξέρω,
Εκτός και στην excel 2013 διατυπώνεται διαφορετικά η συνάρτηση!.

Spirosgr 28-10-15 18:10

Στο αρχείο του ο Γιώργος, μιλάει για κωδικό...
Εκτός, αν δεν είναι κωδικός και είναι απλή αρίθμηση, όπως λές...
Αλλά σε αρίθμηση, δεν ξεκινάμε από το 101 αλλά από το 1
και δεν χρειάζεται, όλο αυτό =COUNTA($C$4:C4) αλλά
=ROW() - όσες γραμμές από 'πάνω

Spirosgr 28-10-15 18:11

Γιώργο, άσε τις ρυθμίσεις και πες μας ... τελικά είναι κωδικός ή αρίθμηση;

Χρήστος 28-10-15 18:13

Ας προσπαθήσουμε να δώσουμε λύση με VBA...όπως πολύ σωστά λέει ο Σπύρος..που κοιτάει πιο μπροστά....
(σκέψη: ίσως θα μπορούσε να βρίσκει την μέγιστη τιμή και να την αυξάνει κατά 1...)
Δεν το είχα σκεφτεί....
Row()-γραμμές από πάνω

Spirosgr 28-10-15 18:22

Αν βρίσκει, την μέγιστη τιμή, όπως λες,
έστω 201 Όνομα Χ και η αμέσως προηγούμενη, 200 Όνομα Ψ
αν χρειαστεί να διαγραφεί η μέγιστη, τι θα γίνει;
Ο επόμενος, (νέα εγγραφή) Όνομα Ζ θα έχει πάλι κωδικό 201;

και το υπάρχον ιστορικό (εγγραφές-υπολογισμοί) με τον 201 Όνομα Χ;

Χρήστος 28-10-15 18:25

βραδυνή εργασία...

Spirosgr 28-10-15 18:28

Πριν ενάμιση χρόνο είχα ανεβάσει αυτό...
Ένας από τους κώδικες, που κάνει όμως, αξιόπιστα την δουλειά...


http://www.ms-office.gr/forum/excel-...istobject.html

gfevran 28-10-15 19:18

Σπύρο καλησπέρα,
πολύ σωστά το επισήμανες δεν είναι κωδικός,
αλλά απλή αρίθμηση.
Αυτό με το =Row(),
κάποιο παράδειγμα ίσως? για να μπορέσω να το καταλάβω.
Ευχαριστώ.

Spirosgr 28-10-15 19:23

και γιατί Γιώργο μου, από την αρχή, δεν λες αρίθμηση, αλλά λες κωδικός;
Από την άλλη, δεν θα περίμενα από σένα μια τέτοια ερώτηση...
Υποτίθεται, έχεις αρκετή εμπειρία σε πιο σύνθετα ζητήματα...

gfevran 28-10-15 19:27

Σπύρο μου συγνώμη,
Λάθος μου.

Χρήστος 29-10-15 17:31

Στο συνημμένο παρουσιάζω την εργασία μου με ότι έχω καταφέρει έως τώρα, στην προσπάθειά μου να δίνω στο ID έναν αριθμό (με διαδοχική αύξηση κατά 1).
Θα εκτιμούσα αν με βοηθούσατε να διαχειρίζομαι και την περίπτωση (δεν το κάνω τώρα) που παρεμβάλλεται μια νέα γραμμή, ώστε να παίρνει αυτόματα το ID τον επόμενο αριθμό (επαυξημένο κατά 1).

Spirosgr 29-10-15 22:47

Καλησπέρα
1
Εφ' όσον πρόκειται για ID, η δεύτερη περίπτωση, αποκλείεται ...
Καμία βάση δεδομένων (ακόμα και οι επίπεδες) δεν έχουν κενές γραμμές, κι αν έχουν για κάποιο λόγο (πολύ σπάνια), ποτέ δεν πρέπει να είναι, χωρίς ID

2
Καλύτερα να υιοθετήσεις, τον κώδικα που έχω πιο πάνω...

3
Ο κώδικας διαγραφής, έχει λαθάκια και θέλει βελτίωση...

Σημείωση:
Να αποφεύγεις, τα Select.
Τα On Error, δεν χρησιμοποιούνται, με τον καλύτερο τρόπο.
Αντί για Set Table θα ήταν καλύτερα κάτι σαν Set tbl
H Ονομασία κελιού offset θα ήταν καλύτερα να μην υπάρχει
Δοκίμασε για παράδειγμα, κάτι σαν NumCell...

Χρήστος 30-10-15 07:42

Καλημέρα...γράφοντας "παρεμβάλλεται μια νέα γραμμή" δεν εκφράστηκα με τον καλύτερο τρόπο. Όταν εισάγεται μια νέα γραμμή δεν φροντίζω να παίρνει το ID αρίθμηση...και βέβαια θέλω να παίρνει!
προσπαθώντας να το διαχειριστώ (μέσω των IF) μου δίνει τον μεθεπόμενο αριθμό!!
με το 1ο κλικ (για να κάνω εισαγωγή) το bank αυξάνεται κατά 1 και με το 2ο (selection change) κατά ένα, οπότε το ID γίνεται μεγαλύτερο κατά 2!!
"Σ' αυτό" το σημείο θα ήθελα βοήθεια αν είναι δυνατόν...πάντως θα μελετήσω την πρότασή σου...καλημέρα...

gfevran 30-10-15 13:55

Καλησπέρα,
Σπύρο η πρόταση σου (Γενική μέθοδος αυτόματης εισαγωγής ID)
είναι μια καλή ιδέα για αυτό που θέλω να κάνω,
θα ήθελα κάνοντας κλικ, για εισαγωγή γραμμών χωρίς να υπάρχει "όνομα, επώνυμο",
να ακυρώνεται η ενέργεια και να παίρνω μήνυμα (msgBox) προσθήκης ονόματος κ.τ.λ.
"Σε αυτό" το σημείο θα ήθελα βοήθεια.

Φιλικά, Γιώργος

Χρήστος 01-11-15 22:47

Σπύρο, στο αρχείο σου διαπυστώνω ότι αν διαγράψω ένα ID και κατόπιν προσθέσω νέα γραμμή γίνεται μεγάλο μπέρδεμα, διότι ξαναπαίρνει τιμή το σβησμένο και μπορεί να υπάρχουν διπλοεγγραφές στα IDs....

ή αν εισάγω μια νέα γραμμή δίχως κουμπί και διαδοχικά μια νέα με το κουμπί τότε και οι 2 παίρνουν το ίδιο ID...

Είμαι σίγουρος ότι τα γνωρίζεις αλλά δεν θα έπρεπε να προβλέπονται όλες αυτές οι ενέργειες;

Spirosgr 01-11-15 23:41

Πρώτο
Όταν έχουμε ένα έργο - πρόγραμμα,
όπου πρέπει να πατάμε κουμπί, για να εισαχθεί γραμμή,
πατάμε το κουμπί πάντα και δεν βάζουμε γραμμές, ποτέ με το χέρι...
Το συγκεκριμένο έργο,
«θέλει» εισαγωγή, νέας γραμμής πάντα με κουμπί και πάντα στην θέση 1
Δεύτερο
Στα σοβαρά προγράμματα, ποτέ δεν διαγράφουμε, αλλά κρατάμε ιστορικό.
Το έργο αυτό, (δεν διάβασες το παράδειγμα καλά), προβλέπει
στήλη status με χαρακτηρισμό, «Ενεργός», «Ανενεργός»
Ο χρήστης, δεν διαγράφει αλλά θέτει ανενεργό, ό,τι δεν ισχύει...
Τρίτο
αναφέρεις...
«αν εισάγω μια νέα γραμμή δίχως κουμπί και διαδοχικά μια νέα με το κουμπί τότε και οι 2 παίρνουν το ίδιο ID...»
Έβαλες γραμμή με το χέρι και πήρε μόνη της ID;
Δεν νομίζω...
Τέταρτο
αναφέρεις...
«ότι αν διαγράψω ένα ID και κατόπιν προσθέσω νέα γραμμή γίνεται μεγάλο μπέρδεμα,
διότι ξαναπαίρνει τιμή το σβησμένο και μπορεί να υπάρχουν διπλοεγγραφές στα IDs....»
Δεν υπάρχει, ούτε μια στο εκατομμύριο να διαγραφεί γραμμή και να υπάρξει, επόμενη με ήδη χρησιμοποιημένο ID

Χρήστος 02-11-15 00:59

Αυτό που κατάλαβα είναι ότι πρέπει να είναι ξεκάθαρο τι κάνει το πρόγραμμα και τι αναμένουμε απ' τον χρήστη (δεν μπορεί να κάνει ότι θέλει...με κάποιον τρόπο θα πρέπει να περιορίζεται)...αυτό δεν είχα αντιληφθεί....Φίλε Σπύρο καληνύχτα...


Η ώρα είναι 10:26.

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


Search Engine Optimization by vBSEO 3.3.2