papazaf Δημοσ. 24 Ιανουαρίου 2005 Δημοσ. 24 Ιανουαρίου 2005 εχω μια μεγαλη λιστα στο excel με την μορφη:ονομα επωνυμο τηλεφωνο ονομα επωνυμο τηλεφωνο δηλαδη καθε στοιχειο ανα γραμμη πως μπορω να την κανω (μαζικα ,οχι ενα ενα) ονομα επωνυμο τηλεφωνο ονομα επωνυμο τηλεφωνο δηλ καθε στοιχειο ανα κολωνα?
grigas Δημοσ. 24 Ιανουαρίου 2005 Δημοσ. 24 Ιανουαρίου 2005 Δημιουργείς ένα νέο sheet. Επιλέγεις την πρώτη γραμμή (με τα ονόματα), κάνεις copy, πας στο νέο sheet που δημιούργησες, paste special και επιλέγεις transpose. Tην ίδια διαδικασία ακολουθείς με τις υπόλοιπες γραμμές. Σε περίπτωση που έχεις ελληνικό Excel το transpose λέγεται αντιμετάθεση αν δεν κάνω λάθος.
md_agis Δημοσ. 24 Ιανουαρίου 2005 Δημοσ. 24 Ιανουαρίου 2005 'Auto isws na kanei > Dim objExcel Dim wbook1 Dim wbook2 dim i Set objExcel = CreateObject("Excel.Application") Set wbook2 = objExcel.Workbooks.Add Set wbook1 = objExcel.Workbooks.Open("test.xls") 'To onoma arxeiou pou tha alakseis i = 1 do while ( wbook1.ActiveSheet.Cells(i,1) <> "") wbook2.ActiveSheet.Cells(1 + cint(i/3), 1) = wbook1.ActiveSheet.Cells(i, 2) wbook2.ActiveSheet.Cells(1 + cint(i/3), 2) = wbook1.ActiveSheet.Cells(i+1, 2) wbook2.ActiveSheet.Cells(1 + cint(i/3), 3) = wbook1.ActiveSheet.Cells(i+2, 2) i = i + 3 msgbox cstr(i) loop objExcel.Visible = True Set objExcel = Nothing
papazaf Δημοσ. 24 Ιανουαρίου 2005 Μέλος Δημοσ. 24 Ιανουαρίου 2005 με transpose δεν γινεται γιατι ειναι 9500 γραμμες md_agis η macro δεν δουλευει, δεν κανει copy paste, εξηγησε μου σε παρακαλω πως λειτουργει
md_agis Δημοσ. 24 Ιανουαρίου 2005 Δημοσ. 24 Ιανουαρίου 2005 Μην τη βάλεις σαν macro. Κάνε copy paste το κείμενο σε έναν text editor, σώστο με κατάληξη .vbs. και τρέξτο. Είναι vb script. Το αρχείο ανα τρεις γραμμές θα δημιουργεί μια γραμμή με τρις στήλες γι’ αυτό φρόντισε η σειρά να είναι πάντα : ονομα επωνυμο τηλεφωνο ονομα επωνυμο τηλεφωνο Η original φόρμα excel θα πρέπει να μην έχει κενά Άλλαξε το όνομα Test.xls με το όνομα του δικού σου αρχείου
grigas Δημοσ. 24 Ιανουαρίου 2005 Δημοσ. 24 Ιανουαρίου 2005 Κάτσε γιατί μάλλον δεν κατάλαβα καλά πως έχεις διατάξει τα δεδομένα σου...Ένα screenshot είναι εύκολο??
grigas Δημοσ. 24 Ιανουαρίου 2005 Δημοσ. 24 Ιανουαρίου 2005 Λοιπόν τώρα που είδα το screenshot νομίζω ότι βρήκα τι θες... Για δες στο δικό μου screenshot αν κατάλαβα καλά. Αυτό που έκανα είναι το εξής: Πρώτα πρώτα έβαλα μία στήλη με τον αύξοντα αριθμό της γραμμής ώστε το κάθε δεδομένο σου να έχει έναν ας πούμε κωδικό. Στην συνέχεια έφτιαξα δίπλα 5 στήλες α/α Ονομα Διευθυνση Πολη Τηλεφωνο Εφόσον τώρα το κάθε ένα έχει τον "κωδικό" του είναι εύκολο με την εντολή vlookup να μας κάνει την ταξινόμηση. Θα χρειαστεί να περάσεις την εντολή χειροκίνητα για την πρώτη γραμμή και στην συνέχεια τραβώντας κάτω θα συμπληρωθούν όλα. Εάν τα κελιά που θα δημιουργήσεις είναι όπως φαίνονται στο screenshot μου τότε οι εντολές που χρειάζεσαι είναι οι εξής > Ε2 : =VLOOKUP($D2*5-4;$A$1:$B$65;2;0) F2 : =VLOOKUP($D2*5-3;$A$1:$B$65;2;0) G2 : =VLOOKUP($D2*5-2;$A$1:$B$65;2;0) H2 : =VLOOKUP($D2*5-1;$A$1:$B$65;2;0) Όπου Β65 στις παραπάνω εντολές θα βάλεις το κελί όπου τελειώνουν τα δεδομένα σου (πχ Β9500) Eλπίζω να σε βοήθησα.... υ.γ. Ναι δεν έχω αξιωθεί να μάθω VBA και λατρεύω τέτοιους "μπακάλικους" τρόπους!!!!
akatanohtos Δημοσ. 24 Ιανουαρίου 2005 Δημοσ. 24 Ιανουαρίου 2005 re esy papazaf egine tpt giati me endiaferei kai emena pos to elyses telika
papazaf Δημοσ. 24 Ιανουαρίου 2005 Μέλος Δημοσ. 24 Ιανουαρίου 2005 δεν το ελυσα, το παλευω ακομα, εκανα καποιες παραλαγες στον τροπο του grigas ,αλλα δεν μου δουλεψε....διαπυστωσα οτι σε καποιες καταχωρησεις ςχω 3 γραμμες ονομα επωνυμο τηλεφωνο , και σε καποιες 4 γραμμες ονομα επωνυμο περιοχη τηλεφωνο...... ο τροπος του φιλου grigas εχει δυνατοτητα να δουλεψει, εγω παιξα με τις τιμες των $D2*5-4;....... μαλλον δεν υπαρχει λυση στο προβλημα μου.....αν καποιος εχει καμια ιδεα....
UserXP Δημοσ. 25 Ιανουαρίου 2005 Δημοσ. 25 Ιανουαρίου 2005 @papazaf, ποια έκδοση excel έχεις; Κάθε καινούργια καταχώρηση ξεκινάει με τον αύξοντα αριθμό της;
UserXP Δημοσ. 25 Ιανουαρίου 2005 Δημοσ. 25 Ιανουαρίου 2005 Αν κάθε καινούργια καταχώρηση ξεκινάει με τον αύξοντα αριθμό της, τότε άνοιξε VBA (Tools - Macro - "Visual Basic Editor"), Double click at "This Workbook" και ένα νέο παράθυρο κώδικα ανοίγει. Κάνε paste εκεί τον παρακάτω κώδικα. Υποθέτω ότι οι αύξοντες αριθμοί αρχίζουν από το 1 και ότι οι καταχωρήσεις είναι 4 ή 5 γραμμές μαζί με τον αύξ. αριθμό (τελευταίο πάντα το τηλέφωνο). > Sub DoJob() Dim ref As Range, DestRange As Range Dim i as Long, StartFrom As Long, CountCols As Long Set ref = Selection Set DestRange = ref.Cells(0, 2) StartFrom = 1 For i = 1 To ref.Rows.Count If Val(ref.Cells(i, 1)) = StartFrom Then If CountCols = 4 Then DestRange.Cells(, 2).Value = DestRange.Value DestRange.Value = "" End If Set DestRange = Cells(DestRange.Row + 1, ref.Column + 1) DestRange.Value = ref.Cells(i, 1) StartFrom = StartFrom + 1 CountCols = 1 Else Set DestRange = DestRange.Cells(, 2) DestRange.Value = ref.Cells(i, 1) CountCols = CountCols + 1 End If Next i If CountCols = 4 Then DestRange.Cells(, 2).Value = DestRange.Value DestRange.Value = "" End If End Sub Τέλος, μάρκαρε όλη την περιοχή της λίστας, πήγαινε πάλι στη Visual Basic και πάτα F5.
papazaf Δημοσ. 25 Ιανουαρίου 2005 Μέλος Δημοσ. 25 Ιανουαρίου 2005 μου βγαζει λαθος στο Set DestRange = ref.Cells(0, 2)
UserXP Δημοσ. 26 Ιανουαρίου 2005 Δημοσ. 26 Ιανουαρίου 2005 Πρέπει να έχεις παλαιότερη έκδοση excel. Άλλαξε την γραμμή σε Set DestRange = Cells(ref.Row, ref.Column + 1)
dioptra999 Δημοσ. 28 Ιανουαρίου 2005 Δημοσ. 28 Ιανουαρίου 2005 O userXP exei dikio! einai i palia ekdosi excel
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.