Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 14-05-18, 08:54
Το 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
Προεπιλογή

Καλημέρα
Σε πρώτη ανάγνωση, αν αλλάξει η γραμμή:
c.Offset(0, 1).Value = cell.Value
σε:
c.Offset(0, 1).Value = c.Value
ο κώδικας δουλεύει.

Παρατήρηση:
Ο κώδικας λειτουργεί με την επιλογή (Selection).
Αυτό, σίγουρα θα δημιουργήσει προβλήματα,
αν ο χρήστης ξεχαστεί και επιλέξει ένα κελί η περιοχή,
σε στήλη διαφορετική από την 1 (A) στην οποία ίσως θέλει να εργάζεται.
Αν και δεν γνωρίζουμε πως χρησιμοποιείς την εντολή,
καλό θα ήταν να προσδιοριστεί το που θα εκτελείται.
Παράδειγμα:
Κώδικας:
Sub MoveRedText1()
    Dim c As Range, rng As Range
    Set rng = Φύλλο1.Range("a1:a12")
    For Each c In rng
        If c.Font.Color = vbRed Then
          c.Offset(0, 1).Value = c.Value
            c.Offset(0, 1).Font.Color = vbRed
            c.ClearContents
            c.Font.Color = vbBlack
        End If
    Next c
End Sub
Αυτό λειτουργεί πάντα στο Φύλλο1 (κωδικό όνομα)
και στην περιοχή a1:a12, ανεξάρτητα επιλογής.

Από την άλλη, ένα ακόμα μειονέκτημα, είναι ότι τα χρώματα γραμματοσειράς,
θα πρέπει να είναι κόκκινο καθαρό (255,0,0) και μαύρο αυτόματο (0,0,0)
Απάντηση με παράθεση