Εμφάνιση ενός μόνο μηνύματος
  #6  
Παλιά 05-03-11, 19:00
Το avatar του χρήστη gr8styl
gr8styl Ο χρήστης gr8styl δεν είναι συνδεδεμένος
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

Καλησπέρα σας,
όπως το κατάλαβα εγώ το προβλήμα θεώρησα ότι το ζητούμενο είναι να γράψουμε στο πρώτο κενό κελί της στήλης Α του Φύλλο2 γι'αυτό και χρησιμοποίησα xldown και όχι xlup
(Με το xlup αν το κελί Α10 είναι κενό, τότε δεν θα συμπληρωθεί ποτέ αν το Α11 δεν είναι κενό)
Το λάθος μου είναι ότι θεώρησα πως τα Α1 και Α2 ΔΕΝ είναι κενά.
Αν λοιπόν έχω καταλάβει σωστά το ζητούμενο, θα πρέπει να προστεθεί ένας έλεγχος για τα Α1 και Α2 και να χρησιμοποιηθεί xlup
Δηλαδή μέσα στην With θα έχω:
Κώδικας:
...
        If IsEmpty(.Range("A1")) Then
            .Range("A1").Value = Target.Value
        ElseIf IsEmpty(.Range("A2")) Then
            .Range("A2").Value = Target.Value
        Else
            .Cells(.Range("A1").End(xlDown).Row + 1, 1) = Target.Value
        End If
...
Από την άλλη θα ήθελα να πω ότι εγκρίνω και επαυξάνω την πρόταση χρήσης ονόματος MyCell που πρότεινε ο Τάσος. Κάνει τον κώδικα περισσότερο ανεξάρτητο, αν και υπάρχει υπάρχει εξάρτηση από το φύλλο.
Θα συμφωνήσω επίσης για το κωδικό όνομα των φύλλων σε ελληνικά, με τα οποία η VBA όχι μόνο δεν συνεργάζεται πλήρως, αλλά δημιουργεί και προβλήματα
(ένα xls φτιαγμένο σε ελληνικό Excel αν περιέχει κώδικα VBA και κατόπιν το επεξεργαστούμε με Αγγλικό Excel δεν μπορούμε να το ξαναχρησιμοποιήσουμε σε περιβάλλον με ελληνικό Excel τουλάχιστον μέχρι την έκδοση 2003)
Αυτά τα λίγα
Θανάσης.
Απάντηση με παράθεση