ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [Γενικά] Πρόβλημα με πολλαπλό save σε .csv

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #11  
Παλιά 13-05-11, 08:37
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-05-2011
Περιοχή: Χαλκίδα
Μηνύματα: 26
Προεπιλογή

Εντάξει θεός! Δεν έχω λόγια!!!

Θα κάτσω να βρω τις... διαφορές τώρα από τον προηγούμενο κώδικα μπας και μάθω τίποτα!

Σ'ευχαριστώ πάρα πολύ! Θα επανέλθω σύντομα και με το έτερο ερώτημα μου...
Απάντηση με παράθεση
  #12  
Παλιά 13-05-11, 13:15
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-05-2011
Περιοχή: Χαλκίδα
Μηνύματα: 26
Προεπιλογή

Φίλε Τάσο, τελικά έχω πρόβλημα και πάλι. Ενώ... χωροταξιακά το csv βγαίνει άψογο, δυστυχώς και πάλι δεν μπορώ να το εισάγω στο πρόγραμμα που θέλω. Ο διαχωρισμός με Tab που βγαζει το αρχείο όπως είναι ο κώδικας σίγουρα δεν κάνει.
Δοκίμασα να αφαιρέσω το 2ο True όπως γράφεις στον κώδικα για να έχει διαχωρισμό με κόμματα, αλλά ανοίγοντας το csv με το εξελ μου δείχνει τετραγωνάκια, ανοίγοντας το με txt φαίνεται να έχει κενά αντί για κόμματα (επισυνάπτω φώτος).

Αν μπορέσουμε να κάνουμε τα τετραγωνάκια κόμματα νομίζω ότι τελειώσαμε!!!
Συνημμένα Thumbnails
Πρόβλημα με πολλαπλό save σε .csv-kommata.jpg   Πρόβλημα με πολλαπλό save σε .csv-txt.jpg  
Απάντηση με παράθεση
  #13  
Παλιά 13-05-11, 15:46
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Καλησπέρα Νίκο!
Από ότι βλέπω το πρόβλημα υπάρχει στις ρυθμίσεις του συστήματος σου ή ακόμα και σε γραμματοσειρά.

Δοκίμασε: =Code(A1) σε ένα κελί. Η τιμή που θα εμφανίσει θα πρέπει να είναι 59.

Το λειτουργικό σου θα πρέπει να έχει διαχωριστικό Λίστας το ερωτηματικό (στον Πίνακα Ελέγχου\Ώρα, Γλώσσα και Περιοχή) για να μπορεί να διαχωριστούν αυτόματα οι στήλες από την Excel.

Μπορείς να μας επισυνάψεις αυτό το αρχείο με μερικές γραμμές για να δούμε;

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #14  
Παλιά 13-05-11, 16:51
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-05-2011
Περιοχή: Χαλκίδα
Μηνύματα: 26
Προεπιλογή

Το φαντάστηκα ότι κάτι θα παίζει με τις ρυθμίσεις μου, αλλά δεν ξέρω τι.

Εσύ Τάσο όταν τρέχεις την μακροεντολή στο βγάζει κανονικά με κόμματα το csv?

Δοκίμασα το =Code(A1) στο csv αρχείο από το οποίο έχω επισυνάψει τις φώτος (αυτό με τα τετραγωνάκια) και βγάζει αποτέλεσμα 9!

Στον Πίνακα Ελέγχου (αν είναι αυτό που φαίνεται στην φώτο) ως seperator έχει ερωτηματικό (ελληνικό).

Ποιο αρχείο θέλεις να σου επισυνάψω? Το csv δεν με αφήνει να το ανεβάσω, εκτός κι αν βάλω κάνα λινκ από rapidshare ή κάτι τέτοιο. Να σημειώσω ότι έχω XP SP3 και office 2002 SP3 αν λέει κάτι αυτό, αν και απ'ότι θυμάμαι και σπίτι μου με win7 και office 2007 είχα το ίδιο πρόβλημα, αλλά θα το ξαναδοκιμάσω...
Συνημμένα Thumbnails
Πρόβλημα με πολλαπλό save σε .csv-date-time.jpg  
Απάντηση με παράθεση
  #15  
Παλιά 13-05-11, 20:00
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Νίκο, ο χαρακτήρας 9 είναι το Tab.

Για δοκιμή, τρέξε το παρακάτω:

Κώδικας:
Sub test()
    MsgBox Asc(vbTab)
    MsgBox Asc(";")
End Sub
Η δεν έχεις ελέγξει το σωστό αρχείο ή δεν έχεις κάνει όλες τις προσαρμογές στον κώδικα.

Οι μεταβλητές πρέπει να τροποποιηθούν και να εμφανίζονται έτσι:

Κώδικας:
    c4Seperator = ";;;;"
    c3Seperator = ";;;"
    c2Seperator = ";;"
    cSeperator = ";"


'και στη δημιουργία του αντικειμένου  oStream 

Set oStream = fso.CreateTextFile(ThePath & tmpString, True, True)

'Δοκίμασε το με, ή χωρίς το τρίτο όρισμα
'Αναφορικα η μέθοδος CreateTextFile
'object.CreateTextFile(Filename, Overwrite as Boolean, Unicode as Boolean] 
Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 13-05-11 στις 20:41.
Απάντηση με παράθεση
  #16  
Παλιά 13-05-11, 20:12
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 823
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από nikosjc Εμφάνιση μηνυμάτων
Το φαντάστηκα ότι κάτι θα παίζει με τις ρυθμίσεις μου, αλλά δεν ξέρω τι....
Καλησπέρα σας.
Αν μου επιτρέπετε να επέμβω, θα έλεγα ότι το πρόβλημα δεν νομίζω ότι είναι στις ρυθμίσεις του Νίκου, αλλά στο ότι το Excel δεν μπορεί να διαχειριστεί σωστά το οποιοδήποτε διαχωριστικό εκτός του ΤΑΒ σε unicode αρχεία.

Φίλε Νίκο ή θα πρέπει να συμβιβαστείς με το Tab σαν διαχωριστικό, ή αν δουλεύεις σε σύστημα με ελληνικά windows, θα έλεγα ότι μπορείς να ξεχάσεις το unicode και να δουλέψεις με ANSI (όχι και πολύ ορθόδοξη σαν πρόταση αυτή η τελευταία).
To .csv σαν format στο "Save as" του Excel αν παρατηρήσεις δεν σου δίνει δυνατότητα επιλογής Unicode σε αντίθεση με το .txt δηλαδή το .csv είναι συμβατό με ANSI και όχι Unicode. Το δε .txt χρησιμοποιεί το Tab σαν διαχωριστικό.

Για όποιον θέλει περισσότερες πληροφορίες μπορεί να ανατρέξει στην αγγλική wikipedia
Comma-separated values - Wikipedia, the free encyclopedia
ή να δει τα σχετικά άρθρα περί CSV
RFC 4180 - Common Format and MIME Type for Comma-Separated Values (CSV) Files

CSV Comma Separated Value File Format - How To - Creativyst - Explored,Designed,Delivered.(sm)


Ελπίζω να βοήθησα.
Θανάσης
ΥΓ για να ανεβάσεις το csv Νίκο απλά μετονόμασε το σε .txt ή συμπίεσε το σε zip
Απάντηση με παράθεση
  #17  
Παλιά 13-05-11, 22:16
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-05-2011
Περιοχή: Χαλκίδα
Μηνύματα: 26
Προεπιλογή

Τάσο τελικά όντως ήταν δικιά μου η βλακεία! Ξέχασα να σβήσω τα tabs από τα cSeperators! Για την ακρίβεια νόμιζα ότι χρησιμοποιούνται για την μετακίνηση στις στήλες και δεν κατάλαβα ότι βάζοντας το ";" δημιουργείται ο διαχωρισμός. Τώρα έμαθα!

Βγαίνει μια χαρά το csv, βέβαια η δοκιμή θα γίνει τη δευτέρα στη δουλειά, αλλά νομίζω ότι είμαστε οκ. Και πάλι σ'ευχαριστώ για τον κόπο και τον χρόνο σου!!!

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

Εντελώς εγκυκλοπαιδικά τώρα, επειδή έκανα μια ψιλοτροποποίηση στον κώδικα για έναν επιπλέον έλεγχο που χρειάστηκα, και επειδή οι γνώσεις μου στον προγραμματισμό σταματάνε κάπου στα if, for, κλπ, ρίξτε μια ματιά οι πιο έμπειροι στο παρακάτω, πως θα μπορούσε να είναι πιο μαζεμένος ο κώδικας μου?

Παράθεση:
For i = Range("G1").Column To Range("G1").End(xlToRight).Column
Set d = Range(Cells(2, i), Cells(RowsCount, i))
d.Select
For r = 1 To RowsCount
If d(r) <> 0 Then
If InStr(rng(r).Offset(, 2).Text, "1001-") Then
tmpString = _
c2Seperator & _
rng(r).Text & _
c4Seperator & _
d(r).Text & _
c4Seperator & _
cSeperator & _
1 & _
c2Seperator & _
cSeperator & _
rng(r).Offset(, 2).Text & _
cSeperator & _
rng(r).Offset(, 3).Text & _
vbNewLine
strCSV = strCSV & tmpString
tmpString = vbNullString

Else
tmpString = _
c2Seperator & _
rng(r).Text & _
c4Seperator & _
d(r).Text & _
cSeperator & _
rng(r).Offset(, 2).Text & _
c4Seperator & _
1 & _
c3Seperator & _
rng(r).Offset(, 3).Text & _
vbNewLine
strCSV = strCSV & tmpString
tmpString = vbNullString
End If
End If
Next
tmpString = Cells(1, i) & ".csv"
Set fso = CreateObject("Scripting.FileSystemObject")
Στην ουσία ήθελα όταν κάποιοι κωδικοί ξεκινάνε με "1001-" αντί να μπαίνουν μαζί με τους άλλους, να μπαίνουν στην στήλη Q. Οπότε πρόσθεσα τα κόκκινα και τα μπλε. Δουλεύει κανονικά έτσι όπως το έχω (βέβαια ακόμα και τα cSeperator συνδυαστικά τα έβαλα, δεν έφτιαξα άλλα!), απλά ενημερωτικά ρωτάω αν υπάρχει κάποιος λιγότερο... μπακάλικος τρόπος για τον 2ο έλεγχο?
Απάντηση με παράθεση
Απάντηση στο θέμα

Ετικέτες
vba


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Γενικά] Απαγόρευση "save as" σε αρχείο excel Nikos Kok Excel - Ερωτήσεις / Απαντήσεις 3 23-12-14 12:58
[Excel07] Save full html Page jimrenoir Excel - Ερωτήσεις / Απαντήσεις 0 03-12-14 01:52
[Συναρτήσεις] Πολλαπλό φιλτράρισμα και διαγραφή δεδομένων pm4698 Excel - Ερωτήσεις / Απαντήσεις 6 28-02-14 13:30
[Γενικά] Πρόβλημα εισαγωγής δεδομένων σε κελιά του Excel και πρόβλημα με συνάρτηση ΣΟΦΙΑΖΩΤΟΥ Excel - Ερωτήσεις / Απαντήσεις 0 02-12-13 13:14
[VBA] Πολλαπλό άνοιγμα αρχείων και εισαγωγή δεδομένων Flashgordon61 Excel - Ερωτήσεις / Απαντήσεις 8 16-06-12 12:22


Η ώρα είναι 00:10.