
25-01-12, 21:11
|
 | Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού 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.
|