Μετάβαση στο περιεχόμενο
Ακολουθήστε τη νέα μας σελίδα στο Facebook! ×

Excel - Για όσους θέλουν να ψάξουν παραπέρα ...


gvarth

Recommended Posts

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

 

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

 

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

Link to comment
Share on other sites

Καλημέρα,

 

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

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

 

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

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

Edited by Samdreamth
Link to comment
Share on other sites

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

 

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

 

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

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

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

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

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

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

 

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

Link to comment
Share on other sites

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

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

 

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

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

Link to comment
Share on other sites

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

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

 

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

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

Βιβλίο1.zip

Link to comment
Share on other sites

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

 

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

 

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

Link to comment
Share on other sites

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

 

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

Link to comment
Share on other sites

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

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

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

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

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

Σύνδεση

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

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

Σημαντικό

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