Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Μορφοποίηση] Κλείδωμα κελιού με βάση το περιεχόμενο ενός άλλου. (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/4186-kleidoma-kelioi-me-basi-periexomeno-enos-alloy.html)

dimharos 26-05-16 09:31

Κλείδωμα κελιού με βάση το περιεχόμενο ενός άλλου.
 
Καλημέρα σε όλους. Με την πρώτη μου επαφή ομολογώ πως έχω εντυπωσιαστεί από τη δουλειά εδώ! (γι' αυτό και ήρθα στην παρέα!)
Το πρόβλημά τώρα για το οποίο ζητώ τη βοήθειά σας: Σε ένα φύλλο excel 2003 προσπαθώ να ελέγξω πως θα κλειδώνει ένα κελί με βάση την τιμή ενός άλλου. Πρόκειται για μια καταχώρηση εγγράφων (κάτι σαν πρωτόκολλο) όπου αν στο κελί πχ Α1 το περιεχόμενο είναι <<Εξερχόμενο>>, στο κελί Β1 που καταχωρώ ημερομηνία εισαγωγής να μην επιτρέπεται η καταχώρηση τιμής.
Έχω δοκιμάσει την ...μπακαλική με επικύρωση κλπ αλλά δεν έμεινα ικανοποιημένος)
Αν καταφύγουμε σε VBA παρακαλώ και για μια ελαφρά εξήγηση του κώδικα γιατι οι γνώσεις μου εινα...ίσα -ίσα.
Σας ευχαριστώ όλους!

Spirosgr 28-05-16 06:06

1 Συνημμένο(α)
Καλημέρα
Αν στο έγγραφό μας, έχουμε την διάταξη της εικόνας, (κατά το ζητούμενο) βάζουμε τον κώδικα:

Κώδικας:

Option Explicit
Const Dscrpt As String = "Εξερχόμενο"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count > 1 Then Exit Sub
If Target.Columns.Count > 1 Then Exit Sub
    If Target.Column = 2 Then
        If Target.Offset(0, -1).Value = Dscrpt Then Target.Offset(0, 1).Select
    End If
End Sub

στην μονάδα του φύλλου (συμβάν Selection Change).

Πως λειτουργεί:
Κάθε φορά που πληκτρολογούμε στην στήλη A,
έναν χαρακτηρισμό για έγγραφο, δεν μας επιτρέπει να επιλέξουμε, στην λάθος στήλη ένα κελί
αλλά μας «πετάει» στην σωστή στήλη.

Σημειώσεις:
1
Αν εμφανίζεται ήδη το Option Explicit στον vba editor, δεν το βάζουμε 2η φορά.
2
If Target.Column = 2 Then
όπου 2,
ο αριθμός της στήλης, που δεν πρέπει να γράφουμε αν ...

Αλλάξτε το 2, με τον αριθμό που θέλετε (πχ 3 για στήλη c, 4 για στήλη d κλπ)
3
If Target.Offset(0, -1).Value
όπου -1
το offset κελί με τον χαρακτηρισμό Εξερχόμενο

Αλλάξτε το -1, αν είναι σε άλλο σημείο (πχ -2 αν είναι 2 στήλες αριστερά)
4
Then Target.Offset(0, 1).Select
όπου 1
το offset κελί που πρέπει να μπεί η ημερομηνία για το Εξερχόμενο

Αλλάξτε το 1, αν είναι σε άλλο σημείο (πχ 2 αν είναι 2 στήλες δεξιά)


Η ώρα είναι 06:33.

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


Content Relevant URLs by vBSEO 3.3.2