Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Αυτοματη συμπληρωση textbox συμφωνα με 2 combobox (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/5771-aytomati-symplirosi-textbox-symfona-me-2-combobox.html)

Rodokanator 19-02-21 21:15

Απλα αψογο! Ευχαριστω πολυ Χρηστο νομιζω το τερματισαμε!!! Πλεον κανει τα παντα!

Rodokanator 11-03-21 15:00

Επιστρέφω μετά από αρκετό καιρό εργασίας με το φύλλο και μπορώ να πω ότι αν και έχει μεγαλώσει αρκετά σε μέγεθος και δεδομένα παραμένει ελαφρυ και γρήγορο. Προέκυψε όμως ένα νέο πρόβλημα. Ο αριθμός των ΚΑΕ έχει γίνει μεγάλος με αποτέλεσμα να μην μπορείς να θυμάσαι εύκολα σε τι αντιστοιχεί το κάθε ένα. Υπάρχει τρόπος χωρίς να αλλάξουμε πολύ τη μορφή του φύλλου ( όπως είπα δεν το χρησιμοποιώ εγώ) να προσθέσουμε μια αναζήτηση για το ΚΑΕ βασισμένο σε περιγραφή?

ChrisGT7 11-03-21 20:29

1 Συνημμένο(α)
Καλησπέρα Γιώργο,

Έβαλα αναζήτηση ΚΑΕ στην καρτέλα. Πατώντας το μεγεθυντικό φακό, εμφανίζεται η φόρμα αναζήτησης ΚΑΕ, όπου μπορείτε να ψάχνετε είτε με τον ΚΑΕ είτε με την περιγραφή τους. Ο αστερίσκος (*) είναι ο χαρακτήρας μπαλαντέρ.

Στο φύλλο ΚΑΕ έχω κρύψει τις στήλες D:H, οι οποίες χρησιμοποιούνται για το προηγμένο φίλτρο και τα αποτέλεσμα των κριτηρίων που χρησιμοποιεί η φόρμα αναζήτησης.

Ελπίζω να σας διευκολύνει αυτή η πρόταση.

Rodokanator 12-03-21 17:28

Όπως πάντα άμεσος και αποτελεσματικός. Μια παρατήρηση μόνο. Μπορούμε το list box να ξεκινάει άδειο και να δείχνει μόνο αποτελέσματα αφού πατήσουμε την αναζήτηση? Ρωτάω γιατί κάθε φορά που κάνει καθαρισμό η φόρμα επειδή ξαναφορτωνει τα πάντα καθυστερεί πολύ.

ChrisGT7 12-03-21 19:09

Από τη φόρμα χρήστη (User Form) FrmSearch, διέγραψε τελείως την υπορουτίνα UserForm_Initialize().

Rodokanator 12-03-21 19:25

Το εκανα αλλα οταν εχει αποτελεσματα απο αναζητηση και πατησεις καθαρισμο το listbox παραμενει γεματο. Προσθεσα την εντολη LsBx.Clear οταν πατιεται το κουμπι καθαρισμου αλλα παραμενει γεματο οποτε κατι κανω λαθος.

ChrisGT7 12-03-21 19:34

1 Συνημμένο(α)
Για δοκίμασε το συνημμένο αρχείο.

Rodokanator 13-03-21 21:03

Τέλεια σε ευχαριστώ πάρα πολύ!!!!

Rodokanator 15-03-21 20:04

Προσθεσα μερικα κουμπια για να επιβεβαιωσω οτι αυτοι που χρησιμοποιουν το φυλλο δεν θα τα κανουν μπαχαλο. Εφτιαξα ενα κουμπι για καταχωρηση νεων ΚΑΕ, ενα για διαγραφη και ενα για εξοδο απο τη φορμα. Η εγγραφη και η εξοδος δουλευουν μια χαρα. Στο κουμπι διαγραφης εβαλα τον εξης κωδικα

Private Sub CmdDelete_Click()
Dim i As Integer
For i = 1 To Range("A65356").End(xlUp).Row - 1
If LsBx.Selected(i) Then
Rows(i + 1).Select
Selection.Delete
End If
Next i

End Sub

ωστε οτι επιλεγει πανω στο ListBox να διαγραφει αλλα δεν μου δουλευει. Που εχω κανει το λαθος???

ChrisGT7 16-03-21 00:07

Καλημέρα Γιώργο,

Επειδή δε γνωρίζω τον τρόπο που γεμίζει το ListBox, δοκίμασε να δεις αν λειτουργεί ο παρακάτω κώδικας:
Κώδικας:

Private Sub CmdDelete_Click()
    Dim I As Long
    For I = LsBx.ListCount To 1 Step -1
        If LsBx.Selected(I) Then Rows(I + 1).Delete
    Next
    LsBx.RowSource = "A2:A" & Range("A" & Rows.Count).End(xlUp).Row
End Sub

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

Rodokanator 16-03-21 10:04

1 Συνημμένο(α)
Το αρχειο ειναι αυτο που μου ειχες στειλει. Σε αυτό έχω κάνει αλλαγές.

ChrisGT7 16-03-21 16:02

Γιώργο,

Δοκίμασε τον παρακάτω κώδικα διαγραφής:
Κώδικας:

Private Sub CmdDelete_Click()
    Dim R As Long
    If LsBx.ListIndex < 1 Then Exit Sub
    R = Sheets("KAE").Range("A:A").Find(LsBx.List(LsBx.ListIndex)).Row
    Sheets("KAE").Rows(R & ":" & R).Delete
    CmdSearch_Click
    LsBx.Selected(LsBx.ListIndex) = True
End Sub


Rodokanator 16-03-21 16:18

Μου βγαζει σφαλμα στη γραμμη
LsBx.Selected(LsBx.ListIndex) = True

ChrisGT7 16-03-21 16:46

Για δοκίμασε αυτό:

Κώδικας:

Private Sub CmdDelete_Click()
    If LsBx.ListIndex < 1 Then Exit Sub
    Dim R As Long
    R = Sheets("KAE").Range("A:A").Find(LsBx.List(LsBx.ListIndex), _
        LookIn:=xlFormulas, LookAt:=xlWhole).Row
    Sheets("KAE").Rows(R & ":" & R).Delete
    CmdSearch_Click
End Sub


Rodokanator 16-03-21 17:09

Τελεια ολα καλα!!!!

Rodokanator 05-04-21 21:48

καλησπερα και παλι!
Ανεβαζω ενα δειγμα του αρχειου μαζι με μια ερωτηση:
Οταν ερχεται ενα αντικειμενο στην αποθηκη πολλες φορες δεν εχει serial number και ειναι σε μεγαλο αριθμο. Καποια απο αυτα λοιπον τα χρεωνουμε στους εργαζομενους. Μπορουμε με καποιο τροπο να βλεπουμε ποσα απο αυτα ειναι χρεωμενα? Σκεφτομουν να βαλω στο φυλλο ΚΑΕ στη πρωτη στηλη τους αριθμους των ταυοτητων και στη περιγραφη το ονοματεπωνυμο και μετα με τα φυλλο ΚΙΝΗΣΕΙΣ ΚΩΔΙΚΩΝ να κανω χρεωσεις κανονικα. Ομως κατι τετοιο θα οδηγησει σε λαθος αποτελεσματα γιατι ο αριθμος αυτων που εχω στην αποθηκη δεν αλλαζει αλλαζουν τα χρεωμενα.

ChrisGT7 05-04-21 23:46

Καλημέρα Γιώργο,

Λείπει το αρχείο! Για δοκίμασε πάλι να το ανεβάσεις.

Rodokanator 06-04-21 12:43

Εχω ενα προβλημα το μεγεθος του αρχειου ειναι 3,06mb και αν το συμπιεσω παει στα 1,2mb οποτε και παλι δεν μπορω να το στειλω, Αν το σπασω σε πολλα κομματια μετα την αποσυμπιεση βγαζει σφαλμα και δεν το τρεχει. Υπαρχει αλλος τροπος να το στειλω?

Rodokanator 06-04-21 12:47

Βασικα το δικο σου αρχειο ειναι με καποιες οπτικες αλλαγες οποτε....

ChrisGT7 06-04-21 22:02

Θα σου πρότεινα να χρησιμοποιήσεις τη στήλη C (φύλλο ΚΑΕ) για να βάζεις τον υπάλληλο που είναι αυτή τη στιγμή χρεωμένος ο κάθε ΚΑΕ.

Μια άλλη πρόταση είναι όταν κάποιος ΚΑΕ δεν έχει S/N, μπορείτε να χρησιμοποιείτε ως "S/N" τον αριθμό ταυτότητας ή τον ΑΦΜ του υπαλλήλου που έχει χρεωθεί το αντίστοιχο αντικείμενο. Μ' αυτόν τον τρόπο θα βλέπετε τις κινήσεις του ΚΑΕ ανά υπάλληλο, όπως ακριβώς με τα S/N. Όταν έρθει το σωστό S/N, με μια απλή αντικατάσταση (Ctrl+H) αλλάζετε τον ΑΦΜ ή ΑΔΤ με το S/N.

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

Rodokanator 06-04-21 23:02

Θα προσπαθησω να σου εξηγησω με ενα παραδειγμα. Εστω οτι εχω στο ΚΑΕ 01 001 500 τεμαχια. Τοτε στο φυλλο ΚΙΝΗΣΕΙΣ θα γραψω το ΚΑΕ, το ειδος της μεταφορας, την ημερομηνια και στη στηλη + τον αριθμο 500. Εστω τωρα οτι θελω 50 απο αυτα τα τεμαχια να τα χρεωσω σε ατομο. Αν προσθεσω στο φυλλο ΚΑΕ τον αριθμο ταυτοτητας στη στηλη Α και στη στηλη Β το ονοματεπωνυμο θα μπορω να τον αναζητησω στο φυλλο ΚΑΡΤΕΛΑ. Πως ομως μπορω να κανω τη χρεωση? Ελπιζω να το περιεγραψα σωστα...

ChrisGT7 06-04-21 23:42

Θα γράψεις δύο γραμμές με ακριβώς τα ίδια στοιχεία, πλην της ποσότητας:

Η πρώτη γραμμή θα έχει 450 και η άλλη 50 τεμάχια. Στη γραμμή με τα 50 τεμάχια μπορείς να χρησιμοποιήσεις την ταυτότητα του υπαλλήλου αντί για S/N.

Αν τώρα στο φύλλο ΚΑΕ έχεις ως στήλες ΑΔΤ, ΟΝΟΜ/ΜΟ, ΚΑΕ, ΠΕΡΙΓΡΑΦΗ ΚΑΕ, τότε στην στήλη Ε μπορείς να χρησιμοποιήσεις μια SUMIF() να σου αθροίζει ανά υπάλληλο το σύνολο των τεμαχίων από το φύλλο KINHSEIS.

Κάτι τέτοιο χρειάζεσαι;

Rodokanator 07-04-21 12:19

Βασικα αυτο που θελω ειναι να τα ενοποιησω ολα. Δηλαδη στο φυλλο ΚΑΡΤΕΛΑ οταν θα βαλω στο C2 τον αριθμο της ταυτοτητας να μπορω να δω τα χρεωμενα ειδη στον υπαλληλο. Το προβλημα μου ειναι πως θα καταχωρω τις χρεωσεις αυτες ωστε για παραδειγμα οταν θα ψαχνω ενα ΚΑΕ διπλα στο κελι που λεει το υπολοιπο να υπαρχει π.χ. αλλο ενα κελι που να αναγραφει ποσα ειναι τα χρεωμενα. Και παλι δεν ξερω αν το περιγραφω σωστα....
Στις κινησεις S/N αυτο ειναι πιο ευκολο γιατι αναγραφονται και το s/n και το ΚΑΕ και ο αριθμος ταυτοτητας. Στις κινησεις κωδικων ομως αν βαλω τον αριθμο της ταυτοτητας δεν αναγραφεται το ΚΑΕ του ειδους που χρεωνω......
μπερδεμα.....


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

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


Search Engine Optimization by vBSEO 3.3.2