Εμφάνιση ενός μόνο μηνύματος
  #4  
Παλιά 12-01-14, 13:55
Το 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
Προεπιλογή

Καλησπέρα
Μια ερώτηση πολλές λύσεις...
Μια κι από εμένα με έλεγχους επιλογής και επιλογή αν θα τρέχει ή όχι ο κώδικας
Αν θέλετε διαγράψτε τις πράσινες γραμμές με τις επεξηγήσεις

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. Αιτία: Αλλαγή χρωμάτων γραμματοσειράς
Απάντηση με παράθεση