Θέμα: Γενικά Αντιμετάθεση

Εμφάνιση ενός μόνο μηνύματος
  #4  
Παλιά 25-01-12, 21:11
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.030
Προεπιλογή

Αγαπητέ Σπύρο, το ζητούμενο δεν μπορεί να επιτευχθεί με απλό τρόπο με τα μέσα που μας παρέχει η Excel.

Θα χρειαστεί κώδικας VBA.

Τι προτείνω λοιπόν:
Πρώτα θα πρέπει να μετατρέψεις το βιβλίο σου σε *.xlsm για να μπορεί να εκτελέσει κώδικα VBA.

Δώσε στην περιοχή A1:J13 το όνομα: TransposeArea

Συμπλήρωση: Μπορείς να μετακινήσεις τη περιοχή αυτή σε όποιο σημείο του φύλλου θελήσεις.

Κάνε δεξί κλικ στη καρτέλα του φύλλου που περιέχει την περιοχή TransposeArea και επίλεξε: Προβολή κώδικα.

Στο παράθυρο που θα εμφανιστεί (VBE), πέρασε τον παρακάτω κώδικα:

Κώδικας:
Option Explicit
Dim TargetColumn As Integer, TargetRow As Integer, rng As Range

Private Sub Worksheet_Change(ByVal Target As Range)
    Set rng = Me.Range("TransposeArea")
    If Not Intersect(Target, rng) Is Nothing Then
        If Target.Count = 1 Then
            TargetColumn = Target.Column - rng.Column + 1
            TargetRow = Target.Row - rng.Row + 1
            'Αν αφαιρέσεις την παρακάτω γραμμή _
             η αντιμετάθεση θα πραγματοποιείται σε όλη την περιοχή "TransposeArea"
            '---------------------------------------------------------------------
            If TargetColumn <> 1 And TargetRow <> 1 Then Exit Sub
            '---------------------------------------------------------------------
            On Error Resume Next
            Application.EnableEvents = False
            rng.Cells(TargetColumn, TargetRow) = Target
            Application.EnableEvents = True
        End If
    End If
End Sub
Δοκίμασε και τα λέμε.

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 25-01-12 στις 22:44.
Απάντηση με παράθεση