Μετάβαση στο περιεχόμενο

Recommended Posts

Δημοσιεύτηκε

Έγινες κατανοητός .

 

Απλά , αφ'ενός μου λείπει ο χρόνος και αφ' ετέρου , είμαι ντεφορμέ . Τα έχω ψιλοαφήσει λόγω άλλων προτεραιοτήτων.

 

Όλο και κάποιος που τα γνωρίζει θα απαντήσει.

Δημοσιεύτηκε (edited)

Καλημέρα,

 

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

Το λέω αυτό γιατί με μια πρόχειρη ματιά που έριξα μου φαίνεται ότι πλέκεται πολύ το πράγμα χωρίς ενδεχομένως να χρειάζεται (pivot tables κλπ).

 

Τα παραπάνω τα λέω με επιφύλαξη γιατί δεν μπορώ να ξέρω τι έχετε κατά νου.

Συνήθως, η λογική που ακολουθούμε σε θέματα σχετικά με excel είναι keep it simple…

Edited by Samdreamth
Δημοσιεύτηκε

Kαλημέρα σας και συγχαρητήρια γα την πολύ καλή δουλειά που έχει γίνει στο topic αυτό!

 

Εχώ μια απορία η οποία με καθυστερεί πολύ στη δουλειά..δείχνει κάτι απλό αλλά δε μπορώ να βρω λύση!

 

Το πρόβλημα έχει ως εξής:

Έχω δύο sheets στο ένα έχω κάνει σε μια στήλη τα κελιά merge ανά 10 (π.χ) κάθετα,

τις τιμές που προκύπτουν θέλω να τις κάνω copy-paste στο άλλο sheet αλλά σε κελία με κανονική μορφή (που δεν είναι merged δηλαδή) και να τα εμφανίζει κανονικά με την σείρα χωρίς κενά!

Αυτό πως μπορούμε να το κάνουμε?

Δημοσιεύτηκε (edited)

Tripitis, παρακάτω έχω γράψει μια μακροεντολή που κάνει αυτό που θες αν και λίγο μπακάλικα.

Δηλαδή, αντιγράφει τις τιμές των merged cells σε ένα καινούργιο φύλλο, αφαιρεί τις κενές γραμμές και επικολλά το νέο Range

στο επιλεγμένο target range. Τέλος σβήνει και το νέο φύλλο που δημιούργησε.

 

Για να το χρησιμοποιήσεις αλλάζεις δυο γραμμές:

Εκεί που λέει Set MergedRange βάλε το φύλλο και το range που έχεις τα δεδομένα.

Εκεί που λέει Set TargetRange βάλε το φύλλο και την θέση που θες να επικοληθούν τα δεδομένα από τα merged κελιά.

 

πχ αν τα δεδομένα σου είναι στο 3ο φύλλο, στα κελιά Β1:Β25 θα βάλεις:

Set MergedRange = Sheet3.Range("B1:B25")

 

Ομοίως, αν το κελί που θες να τα επικολήσεις είναι πχ στο 5ο φύλλο το C50, τότε θα βάλεις:

Set TargetRange = Sheet5.Range("C50")

 

Πρόσεξε να βάλεις τα επιθυμητά range γιατί σε οποιαδήποτε περίπτωση άλλη περίπτωση (πχ αν δεν υπαρχει το sheet 5) θα βγάλει error.

 

Τον έγραψα λίγο πρόχειρα τον κώδικα αλλά ελπίζω να σε βοηθήσει.... :???:

 

 

>
Option Explicit

Sub CopyMergedCells()

Application.ScreenUpdating = False

Dim MergedRange As Range
Dim HelpingRange As Range
Dim TargetRange As Range
Dim LastRow As Long

Set MergedRange = Sheet1.Range("A1:A20")
Set TargetRange = Sheet2.Range("G4")

MergedRange.Copy

Sheets.Add After:=Sheets(Sheets.Count)
Range("A1").PasteSpecial Paste:=xlPasteValues
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
Selection.End(xlUp).Select

Sheets(Sheets.Count).Activate
With ActiveSheet
	LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With

Set HelpingRange = Range("A1:A" & LastRow)
HelpingRange.Copy
TargetRange.PasteSpecial xlPasteValues

Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True

TargetRange.Activate

End Sub

Edited by Samdreamth
  • Upvote 1
Δημοσιεύτηκε

Γιατί απλά δε κάνεις μία συσχέτιση;

πχ στο μονό κελί του Φύλλου2 γράφεις "=Φύλλο1!F1" όπου το F1 είναι το 1ο απο τα συγχωνευμένα και μετά τραβάς προς τα κάτω για να πάρει και τις άλλες τιμές.

 

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

Δημοσιεύτηκε

Γιατί απλά δε κάνεις μία συσχέτιση;

πχ στο μονό κελί του Φύλλου2 γράφεις "=Φύλλο1!F1" όπου το F1 είναι το 1ο απο τα συγχωνευμένα και μετά τραβάς προς τα κάτω για να πάρει και τις άλλες τιμές.

 

Δεν γίνεται αυτό που λες... Όταν θα τραβήξει προς τα κάτω το κελί στο Φύλλο2 θα εμφανιστούν μηδενικά...

Δυστυχώς δεν είναι τόσο απλό...

Δημοσιεύτηκε

Ναι δυστυχώς δε γίνεται έτσι...το είχα δοκιμάσει παλαιότερα!

 

Samdreamth θα δοκίμασω την λύση που μου προτείνεις και θα επανέλθω!

Ευχαριστώ πολύ και τους δύο!

Δημοσιεύτηκε

Δεν γίνεται αυτό που λες... Όταν θα τραβήξει προς τα κάτω το κελί στο Φύλλο2 θα εμφανιστούν μηδενικά...

Δυστυχώς δεν είναι τόσο απλό...

 

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

Ανέβασα ένα απλό παράδειγμα.

Βιβλίο1.zip

Δημοσιεύτηκε

Σωστό αυτό που κάνεις αλλά ο Tripitis έγραψε ότι εχει merged cells γραμμών.

 

Δηλαδή, το πρώτο κελί είναι πχ το A1:A7, το δεύτερο Α8:Α14 κλπ.

 

Γι' αυτό και έγραψα τον παραπάνω κώδικα. Δεν ξέρω αν υπάρχει τρόπος να γίνει χωρίς VBA...

Δημοσιεύτηκε

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

 

Σε ένα κουτάκι (π.χ. F18) εμφανίζεται αριθμητικό αποτέλεσμα. Μπορώ στο F19 να εμφανίσω ολογράφως το αποτέλεσμα? (είναι ποσό σε ευρώ με χιλιάδες και δεκαδικά)

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε προκειμένου να αφήσετε κάποιο σχόλιο

Πρέπει να είστε μέλος για να μπορέσετε να αφήσετε κάποιο σχόλιο

Δημιουργία λογαριασμού

Κάντε μια δωρεάν εγγραφή στην κοινότητά μας. Είναι εύκολο!

Εγγραφή νέου λογαριασμού

Σύνδεση

Εάν έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
×
×
  • Create New...

Σημαντικό

Χρησιμοποιούμε cookies για να βελτιώνουμε το περιεχόμενο του website μας. Μπορείτε να τροποποιήσετε τις ρυθμίσεις των cookie, ή να δώσετε τη συγκατάθεσή σας για την χρήση τους.