Μιας και γράφτηκα στο forum λέω να εκφράσω σήμερα όλες μου τις απορίες και προβλήματα!!!
Έχω φτιάξει μια μακροεντολή που παίρνει δεδομένα από ένα φύλλο και δημιουργεί αρκετά άλλα φύλλα με κάποιες από τις τιμές του πρώτου. Τα δεδομένα αυτά τα βάζει σε διάφορες στήλες στο κάθε φύλλο. Οι στήλες στα νέα φύλλα δεν γεμίζουν όλες αλλά μόνο κάποιες, πχ οι D,E,H,K και L. Οι υπόλοιπες μένουν κενές.
Εγώ χρειάζομαι αυτά τα νέα φύλλα να τα σώνω ένα-ένα σε μορφή .csv. Έτσι, για να γίνεται "αυτόματα" το save, πρόσθεσα μέσα στην Μακροεντολή σε μια ρουτίνα επαναληψης που έχω για να κάνει την αντιγραφή των δεδομένων σε κάθε φύλλο, το εξής:
μια μεταβλητή που διαβάζει το όνομα του κάθε φύλλου...
name = Worksheets(1).Cells(1, j)
και τον κώδικα για την αποθήκευση του κάθε φύλλου με την αντίστοιχη ονομασία...
ActiveWorkbook.SaveAs Filename:="E:\Save" + name + ".csv", _
FileFormat:=xlCSV, CreateBackup:=False
Ποιο είναι το πρόβλημα όμως. Ενώ αν δεν έχω το αυτόματο save, αλλά πηγαίνω σε κάθε φύλλο και το σώνω ένα-ένα όλα πηγαίνουν -σχεδόν- ρολόι και το csv σώνεται κανονικά (όταν το ανοίγω και πάλι με το excel είναι όλα στην σωστή θέση), όταν κάνω το αυτόματο save, ενώ τα σώνει όλα μαζί, δυστυχώς δεν τα σώνει σωστά. Δηλαδή μαζεύει όλες τις πληροφορίες κάθε γραμμής στην πρώτη στήλη (Α) σε αυτή τη μορφή:
Πχ. Ροδέλα Μ25x1,5 - PG11,,,,,1,0501-07-1125,,,,,1,,,,25/02/2011
πράγμα που στη συνέχεια μου προκαλεί προβλήματα.
Το "-σχεδόν- ρολόι" πήγαινε στο άλλο προβληματάκι που αντιμετωπίσω. Σε κάποιες περιπτώσεις (δεν έχω καταλάβει πως και γιατί) ακόμα και στο σώσιμο κάθε φύλλου ξεχωριστά (χειροκίνητα), μπορεί να μου κρατάει τις στήλες όπως θα έπρεπε να είναι, αλλά αντί να ξεκινάνε από την στήλη D ας πούμε που είναι η πρώτη με δεδομένα (γιατί θέλω τις προηγούμενες κενές), μετά από το save τα δεδομένα ξεκινάνε από τη στήλη Α. Για αυτό έχω προσπαθήσει τουλάχιστον στην πρώτη γραμμή και στην πρώτη στήλη (Α1) να κάνω εισαγωγή απλά ενός κενού " ", και έτσι διορθώνεται το πρόβλημα.
Είναι λίγο ειδική περίπτωση, αν κάποιος γνωρίζει κάτι ας βοηθήσει please...
Ευχαριστώ!