Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] msgBox Μήνυμα (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/2959-msgbox-minyma.html)

Spirosgr 02-02-14 15:15

Και μια ολοκληρωμένη πρόταση με στοιχεία του πιο πάνω κώδικα αλλά και επιπλέον ελέγχους

Κώδικας:

Private Sub Worksheet_Change(ByVal Target As Range)
'Ονομασία περιοχής G2:G20 = rngData
'Ονομασία κελιού A1 = CheckCell
'Ονομασία της κεφαλίδας κελί G1 = Header
'Έλεγχος αν επιλέξουμε την κεφαλίδα από λάθος
    If Target.Row = Range("Header").Row Then Exit Sub
  'Έλεγχος αν επιλέξουμε περισσότερα του ενός κελιά από λάθος
    If Target.Cells.Count > 1 Then Exit Sub
    'Έλεγχος αν επιλέξουμε κελί της περιοχής με τιμή (όχι κενό)
    If Target <> vbNullString Then
        Αν όλα Ok τότε
        'Αν η επιλογή είναι "μέσα" στην περιοχή rngData
        If Not Intersect(Target, Range("rngData")) Is Nothing Then
            'και έχουμε αριθμό ενώ ΤΑΥΤΌΧΡΟΝΑ το A1 δεν έχει αριθμό ή έχει μηδενικό μήκος
            If IsNumeric(Target) And _
              (Not IsNumeric(Range("CheckCell")) Or Len(Range("CheckCell")) = 0) Then
              'Τότε μήνυμα
                MsgBox ("Έχετε πληκτρολογήσει αριθμητική τιμή" & vbLf & _
                        "και το κελί A1 δεν περιέχει αριθμό." & vbLf & _
                        "Παρακαλώ δοκιμάστε ξανά."), vbInformation, "Spirosgr_INFO!"
            End If
        End If
    End If
End Sub


gfevran 02-02-14 18:00

Σπύρο σ' ευχαριστώ
Με κάλυψε πλήρως η πρώτη πρόταση σου τη δεύτερη,
τη φύλαξα για άλλες περιπτώσεις.

Spirosgr 02-02-14 18:10

Να 'σαι καλά Γιώργο
Πάντως έχε υπ' όψιν σου ότι αν θελήσεις να επιλέξεις
πχ 3 κελιά από την περιοχή και να τα διαγράψεις όλα μαζί
θα χτυπήσει ο κώδικας....
Συνιστώ να χρησιμοποιήσεις τον δεύτερο

gfevran 02-02-14 22:00

Τελικά είχες δίκιο Σπύρο,
χρησιμοποίησα το δεύτερο.
Σ' Ευχαριστώ.


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

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


Search Engine Optimization by vBSEO 3.3.2