ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [VBA] Όριο γραμμων σε TextBox

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 22-02-19, 10:31
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-04-2013
Μηνύματα: 236
Προεπιλογή Όριο γραμμων σε TextBox

Καλημέρα,
Σε μια textbox με scrollbarsvertical θέλω να ελέγχω το πλήθος των γραμμών
της textbox Π.χ. μόλις συμπληρωθούν 5 γραμμές να μη σου επιτρέπει να γράφεις άλλο!

Ευχαριστώ για όποια βοήθεια
Απάντηση με παράθεση
  #2  
Παλιά 22-02-19, 15:57
Το avatar του χρήστη ChrisGT7
Super Moderator
Όνομα: Χρήστος Ζώρζος
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 20-09-2013
Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 837
Προεπιλογή

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

Αφού θέσεις τις ιδιότητες MultiLine=True και EnterKeyBehavior=True του textbox, στο γεγονός του KeyDown δοκίμασε το εξής:

Κώδικας:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If TextBox1.LineCount >= 5 And KeyCode = 13 Then KeyCode = 0
End Sub
__________________
Your Curiosity Will Be The Death of You!
Απάντηση με παράθεση
  #3  
Παλιά 22-02-19, 17:51
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-04-2013
Μηνύματα: 236
Προεπιλογή

Καλησπέρα Χρήστο,
Σε' Ευχαριστώ για την άμεση απάντηση,
δεν ξέρω που κάνω λάθος και δεν δουλεύει,
ανεβάζω συνημμένο
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm TextBox_LimitLine.xlsm (21,4 KB, 7 εμφανίσεις)
Απάντηση με παράθεση
  #4  
Παλιά 22-02-19, 19:14
Το avatar του χρήστη ChrisGT7
Super Moderator
Όνομα: Χρήστος Ζώρζος
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 20-09-2013
Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 837
Προεπιλογή

Γιώργο,

Το textbox έχει μια ιδιότητα (EnterKeyBehavior), η οποία αν είναι True δίνει τη δυνατότητα στο κουμπί Enter να δημιουργεί νέα γραμμή, όπως στους κειμενογράφους.

Απλά δεν την είχες θέσει σε True. Δοκίμασε το συνημμένο να δεις αν λειτουργεί τώρα.
Συνημμένα Thumbnails
Όριο γραμμων σε TextBox-untitled.jpg  
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm TextBox_LimitLine(1).xlsm (19,1 KB, 6 εμφανίσεις)
__________________
Your Curiosity Will Be The Death of You!
Απάντηση με παράθεση
  #5  
Παλιά 22-02-19, 19:35
Το avatar του χρήστη 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.402
Προεπιλογή

Καλησπέρα
Χρήστο, επειδή κάποιοι χρήστες μπορεί να «ξεχάσουν» τις ιδιότητες που απαιτούνται,
γράψε ό, τι χρειάζεται στο Initialize της φόρμας, και όλα καλά.
Απάντηση με παράθεση
  #6  
Παλιά 22-02-19, 19:49
Το avatar του χρήστη 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.402
Προεπιλογή

Δείτε και μια ακόμα λύση, στο Change του TextBox.
Κώδικας:
Option Explicit
Const Rlimit As Byte = 5 'Καταχωρήστε το όριο γραμμών, ΕΔΩ
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub UserForm_Initialize()
    With Me.TextBox1
        .MultiLine = True
        .ScrollBars = fmScrollBarsVertical
        .EnterKeyBehavior = True
    End With
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub TextBox1_Change()
Dim temp As String
    With Me.TextBox1
        If .CurLine > Rlimit - 1 Then
            MsgBox "Δεν Επιτρέπονται, Περισσότερες Από: " & Rlimit  & " Γραμμές."
            temp = .Text
                If Right(temp, 2) = vbCrLf Then
                    temp = Left(temp, Len(temp) - 2)
                Else
                    temp = Left(temp, Len(temp) - 1)
                End If
            .Text = temp
        End If
        'Προαιρετικά
        .Value = Application.WorksheetFunction.Proper(TextBox1.Value)
    End With
End Sub 
Η τελευταία γραμμή ('Προαιρετικά)
εμφανίζει το κείμενο με πρώτο γραμμα κάθε λέξης κεφαλαίο.
Απάντηση με παράθεση
  #7  
Παλιά 22-02-19, 19:54
Το avatar του χρήστη ChrisGT7
Super Moderator
Όνομα: Χρήστος Ζώρζος
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 20-09-2013
Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 837
Προεπιλογή

Σπύρο,

Ναι, όντως έχεις δίκιο! Καλύτερα με τη φόρτωση της φόρμας να τροποποιούνται οι απαιτούμενες ιδιότητες των ελεγκτηρίων.

Γιώργο,

Μια μικρή παραλλαγή του προηγούμενου αρχείου. Κάθε φορά που φορτώνεται η φόρμα, οι 3 ιδιότητες του textbox που χρειάζεσαι αρχικοποιούνται σύμφωνα με τις ανάγκες σου.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm TextBox_LimitLine(2).xlsm (18,4 KB, 10 εμφανίσεις)
__________________
Your Curiosity Will Be The Death of You!
Απάντηση με παράθεση
  #8  
Παλιά 22-02-19, 19:59
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-04-2013
Μηνύματα: 236
Προεπιλογή

Χρήστο δοκίμασα το συνημμένο που ανέβασες, και πάλι,
μετά το όριο των 5 γραμμών σου επιτρέπει να γράφεις απεριόριστες γραμμές.
Απάντηση με παράθεση
  #9  
Παλιά 22-02-19, 20:17
Το avatar του χρήστη ChrisGT7
Super Moderator
Όνομα: Χρήστος Ζώρζος
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 20-09-2013
Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 837
Προεπιλογή

Γιώργο,

Τότε χρειάζεσαι τον κώδικα του Σπύρου.

Ο δικός μου κώδικας θεωρεί τη νέα γραμμή κάθε φορά που πατάς Enter.
__________________
Your Curiosity Will Be The Death of You!
Απάντηση με παράθεση
  #10  
Παλιά 23-02-19, 08:02
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-04-2013
Μηνύματα: 236
Προεπιλογή

Καλημέρα,
Χρήστο όπως το λες η πρόταση του Σπύρου είναι αυτή ακριβώς που θέλω.
Σας Υπέρ Ευχαριστώ και εσένα και το Σπύρο.

Να’ είστε καλά,
Καλή συνέχεια.
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
textBox autocomplete intefix Access - Ερωτήσεις / Απαντήσεις 0 22-02-15 13:31
[VBA] TextBox & ScrollBar gfevran Excel - Ερωτήσεις / Απαντήσεις 2 21-08-14 07:10
[VBA] TextBox gfevran Excel - Ερωτήσεις / Απαντήσεις 4 12-08-14 22:31
[Εκτύπωση] Εκτύπωση TextBox gfevran Excel - Ερωτήσεις / Απαντήσεις 10 06-02-14 22:26
Απορία σχετικά με το πως βάζω όριο στις μέρες ενοικίασης Vansel Access - Ερωτήσεις / Απαντήσεις 19 02-06-12 12:10


Η ώρα είναι 01:03.