
12-01-14, 13:55
|
 | Συντονιστής Όνομα: Σπύρος Τσιλιγιάννης Έκδοση λογισμικού 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
| |
Καλησπέρα
Μια ερώτηση πολλές λύσεις...
Μια κι από εμένα με έλεγχους επιλογής και επιλογή αν θα τρέχει ή όχι ο κώδικας Αν θέλετε διαγράψτε τις πράσινες γραμμές με τις επεξηγήσεις
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Όπου Sheet1,Sheet2 οι κωδικές ονομασίες των φύλλων
'Όπου Range("A2:A25") η περιοχή που θέλουμε να εκτελείται ο κώδικας
'------------------------------------------------------------------
'Επειδή θέλουμε να εκτελείται με απλή επιλογή
'και δεν θα μπορούμε να επιλέξουμε κάποιο κελί της περιοχής A2:A25
'για να το επεξεργαστούμε χωρίς να τρέξει ο κώδικας
'τότε βάζουμε στο κελί b1 μια λίστα με true, false και επιλέγουμε ανάλογα
'Αν το κελί b1 δεν είναι true τότε δεν κάνει τίποτε
If Range("b1").Value = False Then
Exit Sub 'άλλως
Else 'ΕΛΕΓΧΟΙ
'δεν εκτελείται ο κώδικας αν από λάθος:
'1. δεν επιλέξουμε κελί της περιοχής A2:A25 του Sheet1
'2. επιλέξουμε περισσότερα του ενός κελιά στην περιοχή A2:A25 του Sheet1
'3. επιλέξουμε κελί της περιοχής A2:A25 του Sheet1 αλλά είναι κενό
If Intersect(Target, Sheet1.Range("A2:A25")) Is Nothing Then Exit Sub
If Target.CountLarge > 1 Then Exit Sub
If Target.Value = vbNullString Then Exit Sub 'αν όλα οκ τότε αντιγράφει την τιμή του κελιού επιλογής στο A1 του Sheet2
Sheet2.Range("A1").Value = Target.Value
End If 'τέλος ενεργοποιεί το φύλλο Sheet2 για να δούμε το αποτέλεσμα
'Αυτήν την γραμμή μπορούμε να την απενεργοποιήσουμε
'αν θέλουμε να παραμείνει στην οθόνη το Sheet1
Sheet2.Activate
End Sub
Τελευταία επεξεργασία από το χρήστη Spirosgr : 12-01-14 στις 14:17.
Αιτία: Αλλαγή χρωμάτων γραμματοσειράς
|