Θέμα: VBA Userform Listbox count!

Εμφάνιση ενός μόνο μηνύματος
  #3  
Παλιά 27-04-18, 21:14
Το avatar του χρήστη Spirosgr
Spirosgr Ο χρήστης Spirosgr δεν είναι συνδεδεμένος
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Καλησπέρα
Morpheas σε γενικές γραμμές, η απάντησή σου είναι σωστή...

Τώρα
Επειδή δεν έχουμε κάτι χειροπιαστό από τον Γιώργο, να πούμε τα εξής:
Έστω μια περιοχή σε ένα φύλλο (*Βλέπε εικόνα 1),
την οποία εισάγουμε σε μια listbox φόρμας userform1 (*Βλέπε εικόνα 2).

O κανόνας για να μετρήσουμε τις εγγραφές της λίστας και
να τις εμφανίσουμε σε ένα textbox (TextBox1) είναι:
Κώδικας:
Me.TextBox1.Value = Me.ListBox1.ListCount
Αυτή την γραμμή, θα πρέπει να την εισάγουμε σε κάποιο κώδικα,
σε κάποιο κουμπί ή όπου μας εξυπηρετεί...
Εδώ έστω ότι θέλουμε να εμφανίζεται στο άνοιγμα της φόρμας.
Στην ιδιότητα Activate ή Initialize της φόρμας έχουμε:
Κώδικας:
Private Sub UserForm_Initialize()
Me.TextBox1.Value = Me.ListBox1.ListCount
End Sub
Θα θέλαμε όμως να μετρήσουμε τις εγγραφές, μόνο της δεύτερης στήλης.
Εκεί που έχουμε τα κείμενα και είναι 4.
Αν λοιπόν στα κελιά της περιοχής (*Βλέπε εικόνα 1) έχουμε κενά, τότε:
Κώδικας:
Option Explicit

Private Sub UserForm_Initialize()
    Dim x As Long, iCount As Long

    For x = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.List(x, 1) <> "" Then
            iCount = iCount + 1
        End If
    Next

    Me.TextBox1.Value = iCount
End Sub
Αυτό σε γενικές γραμμές λέει:
Στις εγγραφές της λίστας, από μηδέν μέχρι όσα μετρήσεις -1
(Στις λίστες πρώτη γραμμή = 0, πρώτη στήλη = 0)
πήγαινε στην στήλη αρ. 1 (δηλ την 2η) και αν δεν είναι κενό, άθροισε τις εγγραφές.
Αυτό το άθροισμα, εμφάνισε το στο TextBox1
Συνημμένα Thumbnails
Userform Listbox count!-screenshot_1.jpg   Userform Listbox count!-screenshot_2.jpg  
Απάντηση με παράθεση