Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [VBA] Αντιγραφή ΜΟΝΟ δεδομένων, χωρίς τύπους

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 12-05-23, 20:31
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 16-03-2015
Μηνύματα: 151
Προεπιλογή Αντιγραφή ΜΟΝΟ δεδομένων, χωρίς τύπους

Καλησπέρα σε όλους.
Σε ένα βιβλίο εργασίας δημιουργώ με κώδικα κάποιον αριθμό νέων φύλλων εργασίας με δεδομένα που υπολογίζονται από τύπους σε κάθε νέο φύλλο.
Επειδή το συγκεκριμένο βιβλίο εργασίας το χρησιμοποιώ σαν πρότυπο θα ήθελα - πιθανότατα με VBA - να δίνεται η δυνατότητα να επιλέγω ποιά φύλλα θέλω να αντιγράψω σε νέο βιβλίο και να γίνεται η αντιγραφή μόνο για την μορφοποίηση και τα δεδομένα των φύλλων αυτών, χωρίς τους τύπους που τα υπολογίζουν.
Ελπίζω να σας έδωσα να καταλάβετε τι ζητάω και να μπορέσετε να με βοήθησετε.
Καλή συνέχεια σε όλους.
Απάντηση με παράθεση
  #2  
Παλιά 12-05-23, 22:43
Το avatar του χρήστη ChrisGT7
Διαχειριστής
Όνομα: Χρήστος Ζώρζος
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 20-09-2013
Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 973
Προεπιλογή

Καλησπέρα Κώστα,

Πιστεύω πως η χρήση της VBA είναι αναπόφευκτη στην περίπτωσή σου, οπότε το αρχείο-πρότυπο θα πρέπει να είναι .xlsm για χρήση μακροεντολών.

Δοκίμασε τον παρακάτω κώδικα να δεις αν σε καλύπτει:
Κώδικας:
Sub ANTIGRAFH()
    Dim Shts() As Variant, I As Integer, Sht As Worksheet
    
    ReDim Shts(ActiveWindow.SelectedSheets.Count - 1)
    For Each Sht In ActiveWindow.SelectedSheets
        Shts(I) = Sht.Name
        I = I + 1
    Next
    Sheets(Shts).Copy
    
    For Each Sht In ActiveWorkbook.Sheets
        Sht.UsedRange.Value = Sht.UsedRange.Value
    Next
End Sub
Όλα τα επιλεγμένα φύλλα θα αντιγράφονται σε νέο βιβλίο εργασίας μόνο με τις τιμές και τις μορφοποιήσεις των κελιών.
__________________
Your Curiosity Will Be The Death Of You!

Τελευταία επεξεργασία από το χρήστη ChrisGT7 : 13-05-23 στις 01:06.
Απάντηση με παράθεση
  #3  
Παλιά 13-05-23, 19:40
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 16-03-2015
Μηνύματα: 151
Προεπιλογή

Χρήστο σ' ευχαριστώ πολύ για τον κόπο σου.
Το δοκιμάζω αμέσως και επανέρχομαι...
Απάντηση με παράθεση
  #4  
Παλιά 13-05-23, 19:56
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 16-03-2015
Μηνύματα: 151
Προεπιλογή

Χρήστο να σε ευχαριστήσω και πάλι για την βοήθειά σου.
Δοκίμασα τον κώδικά σου και πράγματι τα φύλλα αντιγράφονται σε νέο βιβλίο.
Αλλά σε δυο κελιά, στα οποία είχα δυο VLOOKUP οι οποίες επιστρέφουν κάποιες τιμές στο πρότυπο αρχείο, στο νέο βιβλίο και στις αντίστοιχες θέσεις εμφανίζεται #ΤΙΜΗ. Ενώ σε όλα τα υπόλοιπα κελιά που είχαν τύπους, εμφανίζονται αντιγραμμένες οι τιμές.
Αν έχεις κάποια ιδέα, καλώς. Αν όχι, εκτιμώ πολύ την βοήθειά σου.
Απάντηση με παράθεση
  #5  
Παλιά 13-05-23, 22:33
Το avatar του χρήστη ChrisGT7
Διαχειριστής
Όνομα: Χρήστος Ζώρζος
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 20-09-2013
Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 973
Προεπιλογή

Κώστα,

Έκανα μια δοκιμή με VLOOKUP() και λειτούργησε.

Δοκίμασε να εκτελέσεις τον κώδικα χωρίς τις τρεις γραμμές της εντολής For Each. Λογικά θα παραμείνουν οι τύποι, όπως στα αρχικά φύλλα.

Αν υπάρχει το αποτέλεσμα είναι πάλι #ΤΙΜΗ, τότε πρέπει να ελέγξεις τη VLOOKUP().

Σε περίπτωση που δεν τα καταφέρεις, ανέβασε το αρχείο με δοκιμαστικά δεδομένα να το ελέγξω.
__________________
Your Curiosity Will Be The Death Of You!
Απάντηση με παράθεση
  #6  
Παλιά 15-05-23, 00:44
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 16-03-2015
Μηνύματα: 151
Προεπιλογή

Καλημέρα Χρήστο.
Σ' ευχαριστώ και πάλι για το ενδιαφέρον σου.
Επειδή δεν κατάφερα να βγάλω άκρη, έφτιαξα ένα δοκιμαστικό αρχείο - με πολύ λιγότερα δεδομένα φυσικά - και το ανεβάζω.
Ελπίζω να βρεις άκρη...
Καλή συνέχεια.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm Βιβλίο5.xlsm (46,0 KB, 11 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 15-05-23, 16:53
Το avatar του χρήστη ChrisGT7
Διαχειριστής
Όνομα: Χρήστος Ζώρζος
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 20-09-2013
Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 973
Προεπιλογή

Καλησπέρα και καλή εβδομάδα Κώστα,

Η VLOOKUP() φέρνει #ΤΙΜΗ λόγω της αδυναμίας της CELL() να επιστρέψει το όνομα του αρχείου.

Το νέο αρχείο που δημιουργείται μέσω του παραπάνω κώδικα, είναι "στον αέρα" και δεν έχει αποθηκευτεί ακόμα. Μόλις αποθηκευτεί και γίνει επαναϋπολογισμός (πατώντας F9), η CELL() θα επιστρέψει το όνομα του αρχείου.
__________________
Your Curiosity Will Be The Death Of You!
Απάντηση με παράθεση
  #8  
Παλιά 16-05-23, 10:52
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 16-03-2015
Μηνύματα: 151
Προεπιλογή

Καλημέρα Χρήστο.
Πριν από λίγο είδα το μήνυμά σου. Αν καταλαβαίνω σωστά, εκτελώ τον κώδικα που έγραψες και στην συνέχεια αποθηκεύω το αρχείο που δημιουργείται και πατάω F9.
Αν αυτή είναι η σειρά, το δοκίμασα και παραμένει το #ΤΙΜΗ. Μάλλον κάτι δεν κατάλαβα σωστά, αφού σε εσένα δούλεψε όπως αναφέρεις.
Μπορείς να μου επιβεβαιώσεις την σειρά των ενεργειών;
Ευχαριστώ πολύ.
Απάντηση με παράθεση
  #9  
Παλιά 17-05-23, 01:04
Το avatar του χρήστη ChrisGT7
Διαχειριστής
Όνομα: Χρήστος Ζώρζος
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 20-09-2013
Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 973
Προεπιλογή

Χρήστο,

Αντί να χρησιμοποιείς την CELL(), θα σου πρότεινα να βάζεις το μάθημα μέσω κώδικα στο Ε15. Το δοκίμασα και λειτούργησε. Δηλαδή:

Στην υπορουτίνα CreateSheetsFromList και κάτω από τη γραμμή κώδικα ActiveSheet.Name = c.Value, γράψε την εντολή: Range("E15").Value = c.Value.

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

Ό,τι πρόβλημα προκύψει, με ενημερώνεις.
__________________
Your Curiosity Will Be The Death Of You!
Απάντηση με παράθεση
  #10  
Παλιά 17-05-23, 09:44
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 16-03-2015
Μηνύματα: 151
Προεπιλογή

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

Υ.Γ.: Επειδή καταλαβαίνω ότι ο χρόνος του καθενός είναι και περιορισμένος και πολύτιμος για να απασχολείται κάθε φορά με τα θέματα που αντιμετωπίζουμε όσοι θέλουμε να πετύχουμε κάτι στο Excel, αλλά δεν έχουμε τις γνώσεις, θα ήθελα, αν είναι εύκολο, να προτείνεις κάποια βιβλία ή online μαθήματα για την VBA, ώστε να μάθω κάποιες έστω βασικές γνώσεις σύνταξης και να μην απασχολώ για το παραμικρό το forum.

Καλή συνέχεια.
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Συναρτήσεις] Σύνολα δεδομένων, ανά μήνα ή έτος, χωρίς Pivot table dealer_xm Excel - Ερωτήσεις / Απαντήσεις 5 22-12-18 19:25
[Συναρτήσεις] Σύνολα δεδομένων, ανά μήνα ή έτος, χωρίς Pivot table Spirosgr Excel samples - Χρήσιμα αρχεία & παραδείγματα 0 28-08-18 12:35
[Συναρτήσεις] Σύνολο κελιών που περιέχουν τύπους stam75 Excel - Ερωτήσεις / Απαντήσεις 3 18-02-16 18:23
[Συναρτήσεις] Βοήθεια για τους κατάλληλους τύπους jimrenoir Excel - Ερωτήσεις / Απαντήσεις 3 09-12-12 14:04
[Excel07] Αντιγραφή/Επικόλληση χωρίς να χάνεται η εντολή mtheristis Excel - Ερωτήσεις / Απαντήσεις 2 15-08-11 20:26


Η ώρα είναι 05:34.