Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Διαγραφή περιεχομένων διατηρώντας τις συναρτήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/6659-diagrafi-periexomenon-diatirontas-tis-synartiseis.html)

Λάμπρος Τ 26-12-25 19:12

Διαγραφή περιεχομένων διατηρώντας τις συναρτήσεις
 
Γεια σας.
Θα ήθελα τη βοήθειά σας για ένα θέμα που όσο κι αν έψαξα δε βρήκα απάντηση στο site, το πιθανότερο είναι βέβαια να μην έψαξα καλά.
Πώς θα κάνω διαγραφή περιεχομένων σε ορισμένα κελιά χωρίς να διαγράψω τις συναρτήσεις;
Η εντολή, π.χ. Range("a4:d15").ClearContents διαγράφει τα πάντα.
Μία λύση είναι η διαγραφή των κελίων προέλευσης των δεδομένων αλλά τότε είναι γεμάτα τα κελιά με το #ΤΙΜΗ
Σας ευχαριστώ.

ChrisGT7 26-12-25 19:37

Καλησπέρα και Χρόνια πολλά Λάμπρο,

Για να διαγράψεις όλα τα περιεχόμενα σ' ένα εύρος, όπως σωστά αναφέρεις, γίνεται με τη μέθοδο ClearContents.

Αν όμως θέλεις πιο συγκεκριμένες διαγραφές, όπως π.χ. μόνο τα κελιά με τις συναρτήσεις, τότε μπορείς να δοκιμάσεις τη μέθοδο Range(A4:D15).SpecialCells().ClearContents. Στη συγκεκριμένη μέθοδο, μόλις ανοίξεις την παρένθεση, ο επεξεργαστής της VBA θα σου προτείνει αυτές τις ιδιότητες.

Ίσως να χρειάζεσαι την xlCellTypeConstants (επιλογή των κελιών που περιέχουν μόνο σταθερά δεδομένα), αλλά θα σου πρότεινα να ανεβάσεις ένα υπόδειγμα του αρχείου μήπως δεν έχω καταλάβει σωστά το ζητούμενό σου.

ChrisGT7 26-12-25 21:31

1 Συνημμένο(α)
Λάμπρο,

Απλά δε χρειάζεται να καθαρίσεις την περιοχή των συναρτήσεων και να ορίσεις μονάχα τις περιοχές που δίνει τιμές ο χρήστης.

Ρίξε μια ματιά στο συνημμένο αρχείο.

Λάμπρος Τ 26-12-25 21:39

1 Συνημμένο(α)
Χρήστο,

Είσαι ταχύτατος, δεν πρόλαβα να ανεβάσω το σωστό αρχείο και απάντησες.
Στο δεύτερο πίνακα έχω κάνει αυτό που προτείνεις, αλλά δε με ικανοποιεί επειδή αφήνει το 0 και σε περίπλοκες συνσρτήσεις αφήνει το #ΤΙΜΗ.
Σε ευχαριστώ.

ChrisGT7 26-12-25 22:02

Το μηδέν στις πράσινες στήλες μπορείς να το αντιμετωπίσεις με δύο τρόπους:

1. Αλλαγή του τύπου στο κελί Q9 με τον παρακάτω:
Κώδικας:

=IF(P9-O9<>0;P9-O9;"")
Τον αντιγράφεις και στα υπόλοιπα κελιά.

2. Στη μορφοποίηση κελιών (δεξί κλικ > Μορφοποίηση κελιών > Αριθμός > Προσαρμογή) των πράσινων κελιών πληκτρολόγησε: ;;"";
Η συγκεκριμένη μορφοποίηση μορφοποιεί με τη σειρά των ";" τα εξής: θετικοί; αρνητικοί; μηδέν; κείμενο

Σε ποιες περιπτώσεις σου βγάζει σφάλμα ο τύπος;

Λάμπρος Τ 26-12-25 22:37

Χρήστο,

Σ' ευχαριστώ πάρα πολύ για το χρόνο που διαθέτεις για να μου απαντήσεις και θα πρέπει να ζητήσω συγγώμη επειδή αδυνατώ να ανεβάσω το πραγματικό αρχείο.
Αυτούς τους τρόπους τους έχω ήδη σκεφτεί και εφαρμόσει σε ορισμένες περιοχές του Φύλλου, αλλά είναι αρκετά επίπονο να μεγαλώνεις τις υπάρχουσες συναρτήσεις σε κάθε κελί, γι' αυτό αναζητούσα κάτι σαν το ClearContents.

Όπως και νά 'χει, είσαι θυσαυρός.
Σε ευχαριστώ πολύ.

ChrisGT7 27-12-25 19:36

Σ' ευχαριστώ για τα καλά σου λόγια! :001_smile:

Μπορείς να μου στείλεις το αρχείο στο chrzgt7@hotmail.com για περαιτέρω έλεγχο.

Επίσης, αν συμπεριλάβεις τον τύπο σου σε IFERROR(), μπορείς να αντικαθιστάς τα σφάλματα των τύπων με το κείμενο ή τον αριθμό που επιθυμείς.


Η ώρα είναι 14:22.

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


Search Engine Optimization by vBSEO 3.3.2