Visual Basic for Applications (VBA) Ερωτήσεις / Απαντήσεις σε σχέση με τη χρήση της VBA. |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Εύρεση δεδομένων σε UserForm
Αγαπημένοι και χρήσιμοι φίλοι μου, Έχω φτιάξει μία φόρμα στην οποία καταχωρώ τα δεδομένα των μελών ενός συλλόγου (Επίθετο, όνομα κ.λ.π., κ.λ.π.) και η οποία με τη σειρά της (πατώντας ένα commandbutton “Αποθήκευση”) μεταφέρει τα δεδομένα σε ένα φύλλο excel (“Αρχείο Μελών”). Παράλληλα, ήθελα να έχω τη δυνατότητα αναζήτησης των στοιχείων ενός μέλους, όχι στο φύλλο excel, αλλά στην ίδια τη φόρμα. Έχοντας λοιπόν κενά όλα τα πεδία της φόρμας, ήθελα να μπορώ πληκτρολογώντας το επίθετο στο textbox “txtSurename” και πατώντας στο πλήκτρο “cmndSearch” να συμπληρώνεται αυτόματα το Όνομα στο txtbox “Name” καθώς και τα διάφορα άλλα πεδία της φόρμας (με λίγα λόγια θέλω να κάνω κάτι σαν αυτό που κάνει το "Φιλτράρισμα με βάση τη φόρμα της Access). Επειδή όμως υπάρχει η περίπτωση δύο (ή περισσοτέρων) μελών με το ίδιο επίθετο, έπρεπε να έχω τη δυνατότητα μιας διαδικασίας «Find Next». Το μόνο που μου επέτρεπαν οι φτωχές μου γνώσεις στο αντικείμενο της vba, ήταν να googl-άρω και να βρω το εξής: Private Sub cmndSearch_Click() Dim FindValue As String FindValue = txtSurename.Text Dim Rng As Range Set Rng = Range("A2:A200") Dim FindRng As Range Set FindRng = Rng.Find(FindValue) Dim FirstCell As String txtName.Text = Sheets("Αρχείο Μελών").Cells(FindRng.Row, 2).Value . . . (Ομοίως για τα υπόλοιπα πεδία της φόρμας (ημερ. Γέννησης, διεύθυνση κ.λ.π.). Do MsgBox FindRng.Address Set FindRng = Rng.FindNext(FindRng) FirstCell = FindRng.Address txtName.Text = Sheets("Αρχείο Μελών").Cells(FindRng.Row, 2).Value Loop While FirstCell <> FindRng.Address MsgBox "Search is over" End Sub Έτσι, κάθε φορά που πατάω το πλήκτρο “OK” του MsgBox, εφόσον η διαδικασία εντοπίζει μέλη με το ίδιο επίθετο, προβάλει με τη σειρά τα στοιχεία τους στα πεδία της φόρμας. Το πρόβλημά μου (ανάμεσα στα άλλα που δεν είναι της παρούσης), είναι ότι δεν θέλω να εμφανίζεται το MsgBox, αλλά να κάνω εύρεση της επόμενης εγγραφής με το πλήκτρο cmndSearch (ή με κάποιο άλλο πλήκτρο cmndNext) και μόνον εφόσον δεν υπάρχουν άλλες εγγραφές να παίρνω το μήνυμα “Search is over”. Προσπάθησα σκληρά, αλλά ... τζίφος!!! Πάσα βοήθεια δεκτή... Υπάρχει τρόπος να γίνει εύρεση με χρήση πολλαπλών κριτηρίων (π.χ. txtSurename & txtName & txtDateOfBirth κλπ); Αν ναι, ξεφεύγει κατά πολύ από τα όρια της παραπάνω περίπτωσης; Ευχαριστώ προκαταβολικά για τη βοήθεια… |
#2
| |||
| |||
Το πρόβλημα λύθηκε. Δεν γνωρίζω αν μπορώ να διαγράψω το θέμα. Αν θέλει κάποιος διαχειριστής ας το κάνει. Ευχαριστώ |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Excel07] Επιλεκτική εύρεση και μεταφορά δεδομένων μεταξύ 2 Excel αρχείων | Menelaos | Excel - Ερωτήσεις / Απαντήσεις | 9 | 08-08-19 12:59 |
ΕΥΡΕΣΗ ΔΕΔΟΜΕΝΩΝ ΣΕ ΕΡΩΤΗΜΑ ΣΥΓΚΕΚΡΙΜΕΝΟΥ ΔΙΑΣΤΗΜΑΤΟΣ | smasak | Access - Ερωτήσεις / Απαντήσεις | 1 | 26-09-18 17:12 |
[Συναρτήσεις] εύρεση σε λίστα και μεταφορά δεδομένων | Dietlosscoffee | Excel - Ερωτήσεις / Απαντήσεις | 0 | 23-10-14 19:50 |
[Γενικά] Ευρεση και αθροιση δεδομένων | misirlis | Excel - Ερωτήσεις / Απαντήσεις | 2 | 08-05-11 17:05 |
[VBA] Εισαγωγή δεδομένων με UserForm | Flashgordon61 | Excel - Ερωτήσεις / Απαντήσεις | 2 | 02-12-10 21:19 |
Η ώρα είναι 00:25.