gvarth Δημοσιεύτηκε Φεβρουάριος 22 , 2011 Συγγραφέας Δημοσιεύτηκε Φεβρουάριος 22 , 2011 επειτα ειδα οτι απο την μια πλευρα υπαρχει το προβλημα της αναγνωρισης των οριων εκτυπωσης τα οποια αλλαζουν συνεχως που μπορει να λυθει με τις κεφαλιδες και τα υποσελιδα αλλα μετα το θεμα που προεκυψε ειναι πως μπορω να βαλω να εκτελουνται πραξεις εντος του χωρου στις κεφαλιδες και υποσελιδα Δοκίμασε κάτι σαν το παρακάτω : > ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" [b] .RightHeader = "Από Μεταφορά : " & Format$(Num1,"######0.00")[/b] .LeftFooter = "" .CenterFooter = "" .[b]RightFooter = "Σε Μεταφορά :" & Format$(Num2,"######0.00")[/b] .LeftMargin = Application.InchesToPoints(0.75) .RightMargin = Application.InchesToPoints(0.75) .TopMargin = Application.InchesToPoints(1) .BottomMargin = Application.InchesToPoints(1) .HeaderMargin = Application.InchesToPoints(0.5) .FooterMargin = Application.InchesToPoints(0.5) End With Οι μεταβλητές Num1 & Num2 κρατούν ανά σελίδα , τα σύνολα που μεταφέρονται. Υπολογίζονται μέσω κατάλληλης υπορουτίνας σε VBA. Θέλει μελέτη βέβαια αλλά κάπως έτσι φαντάζομαι να διαχειριστείς μεταβλητές στις κεφαλίδες και τα υποσέλιδα. Κοίταξέ το , κάνε τις προσπάθειές σου και επανερχόμαστε. Δόξα τω Θεώ , μπόλικο το διάβασμα 1
apostolos55 Δημοσιεύτηκε Φεβρουάριος 22 , 2011 Δημοσιεύτηκε Φεβρουάριος 22 , 2011 :):)αλλα σε διαφορετικες σελιδες εκτυπωσης αναλογα που ειναι τα ορια της εκτυπωσης να μπαινει το "απο μεταφορα" πρωτο πρωτο στην αρχη και τελευταιο κατω κατω το "σε μεταφορα" επειτα ειδα οτι απο την μια πλευρα υπαρχει το προβλημα της αναγνωρισης των οριων εκτυπωσης τα οποια αλλαζουν συνεχως που μπορει να λυθει με τις κεφαλιδες και τα υποσελιδα αλλα μετα το θεμα που προεκυψε ειναι πως μπορω να βαλω να εκτελουνται πραξεις εντος του χωρου στις κεφαλιδες και υποσελιδα απο την αλλη όμως μπορει πολυ ευκολα να γινει η πραξη και μετα να πρεπει να βρεθει καποιος τροπος αυτη η πραξη να ακολουθει την οριζοντια γραμμη της περιοχης εκτυπωσης Ιδέα! α) κάνεις όλες τις γραμμές ισοπαχείς (πχ row heigh=15 ) β) διορθώνεις τις πάνω πάνω που έχουν τις επικεφαλίδες (ωσ και τα νούμερα στήλης) γ) ορίζεις εκτύπωση με τις γραμμές του β) ως επικεφαλίδες (page setup / sheet / [rows at top]=$1:$8 ) δ) κάνεις δοκιμαστική εκτύπωση ή προεπισκόπηση για να δείς που κόβει. Λογικά το κόψιμο θα είναι ανά σταθερό αριθμό γραμμών ε) πας vba (Alt+F11) και New Module ... copy paste το παρακάτω Sub MakeMySheets() Dim RowI As Long, ApoI As Long, seI As Long, RowsInSheet As Long, InPageI As Long Dim Ka8arh As Double, Posofpa As Double, Synolo As Double Dim Cellval As Double ' Dwse tis dikes sou times sta tria epomena RowI = 9: InPageI = 9 RowsInSheet = 40 Do Cellval = Cells(RowI, 9) If Cellval = 0 Then Exit Do Ka8arh = Ka8arh + Cells(RowI, 9) Posofpa = Posofpa + Cells(RowI, 10) Synolo = Synolo + Cells(RowI, 12) If InPageI = RowsInSheet Then Rows(RowI + 1).Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Cells(RowI + 1, 8 ) = "Se metafora": Cells(RowI + 1, 9) = Ka8arh: Cells(RowI + 1, 10) = Posofpa: Cells(RowI + 1, 12) = Synolo Cells(RowI + 2, 8 ) = "Apo metafora": Cells(RowI + 2, 9) = Ka8arh: Cells(RowI + 2, 10) = Posofpa: Cells(RowI + 2, 12) = Synolo RowI = RowI + 3: InPageI = 1 Else RowI = RowI + 1 InPageI = InPageI + 1 End If Loop End Sub ζ) Σώζεις με 2 διαφορετικά ονόματα (ότι αλλαγές γίνονται με VBA δεν έχουν undo) η) μέσα στο VBA SUB αλλάζεις το "' Dwse tis dikes sou times sta tria epomena ... " από 40 σε ότι βρήκες με βήμα δ), και αντίστοιχα τα RowI, InPageI θ) τρέχεις και τσεκάρεις... ...ελπιζω να σου κάνει κάτι τέτοιο 2
st2 Δημοσιεύτηκε Φεβρουάριος 23 , 2011 Δημοσιεύτηκε Φεβρουάριος 23 , 2011 @apostolos55 σε ευχαριστω αλλα υπαρχουν μερικα προβληματακια με τις επικεφαλιδες ενεργοποιημενες δεν μπορουσα να υπολογισω των πληθος των γραμμων για να το γραψω στην sub οποτε το δοκιμασα χωρις επικεφαλιδες αλλα προκυπτουν προβληματακια στην δικια μου περιπτωση αφου τα τακτοποιησα (υψος γραμμων κλπ) απο προεπισκοπηση αλλαγων σελιδας ειδα οτι αλλαγη γινεται ανα 32 γραμμες (1ως33,34ως66,67ως99,100ως τελος) και πετυχαινω την σωστη εισαγωγη αλλαζοντας το 40(δικο σου) σε 32 αλλα σωστα μονο στην 1-2 σελιδα μετα μπερδευεται στην 2-3 παει στην 3 και εισαγει τις 2γραμμες apo metafora και se metafora πανω πανω στην αρχη της 3 και οχι το apo metafora στο τελος 2 και το se metafora στην αρχη 3 αλλα και τις δυο στην 3 και στις 3-4 παει και κανει την εισαγωγη μετα απο μια γραμμη με τιμολογιο απο οτι καταλαβαινω το 40 το δικο σου(32στην δικια μου περιπτωση) πρεπει να αποκτησει μια μεταβλητοτητα του τυπου : (40*(αριθμος σελιδας) - 1) ή καπως ετσι θα το ψαξω σε ευχαριστω πολυ που ασχοληθηκες ----------------------------------- χτες βραδυ σκεφτομουν και εγω μηπως μπορουσα να παιξω με τις επαναλαμβανομενες επικεφαλιδες ανα σελιδα εκτυπωσης και απο το planetexcel.gr βρηκα τα επισυναπτομενα εδω ο συντακτης χρησιμοποιει μονο functions του excel και απο το λιγο που τις διαβασα η κρισιμη πρεπει να ειναι η INDIRECT (gousgounis ) αλλα και αυτος παιζει με τα ορια εκτυπωσης γιατι εχει εντος του χωρου εργασιας κουμπακι για εκτυπωση (κρυβει μεσα του VBA) ενω αν χρησιμοποιηθει του excel δεν βγαινει το επιθυμητο http://rapidshare.com/files/449417444/apo___se_metafora.rar
apostolos55 Δημοσιεύτηκε Φεβρουάριος 23 , 2011 Δημοσιεύτηκε Φεβρουάριος 23 , 2011 Ασχολήθηκα λίγο ακόμα, και ιδού! νομίζω ότι λύνει τέλεια το ζητούμενο αφού μετά τις προσθήκες μεταφορών φτιάχνει και τα PageBreaks (τα οποία είναι πολύ δύστροπα!!!) Δες επισυναπτόμενο. Πατάει στο προηγούμενο αλλά με βελτιώσεις και προσθήκες, οπότε καλύτερα φτιάξε τα κελιά όπως σου είπα (δες πως τα έχω στο επισυναπτόμενο) και αντικατέστησε ολόκληρη τη ρουτίνα Αλλαγές στη VBA κάνεις μόνο στα αρχικά "HeaderPrntLines" και "RowsInSheet" όπως σε βολεύει (καλύτερα να βάλεις λίγο μικρότερα από τα μέγιστα). Ο κώδικας ήταν ελλιπής, βλέπεις με pagebreaks δεν έχω ξαναδουλέψει... Τώρα νομίζω είναι ΟΚ και για πολύ μεγάλα αρχεία, και σε Landscape Στη VBA αλλάξτε την προτελευταία γραμμή στη Sub MakeMySheets από ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1 σε If ActiveSheet.VPageBreaks.Count > 0 Then ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1 Michanikos - Page transitions etc Office 07.zip Michanikos - Page transitions etc Office 03.zip 1
deminio Δημοσιεύτηκε Απρίλιος 5 , 2011 Δημοσιεύτηκε Απρίλιος 5 , 2011 Καταρχας καλησπερα. Το θέμα ειναι πολύ ενδιαφέρον και επειδη βλέπω ότι ξέρετε πολλά θα ηθελα να ρωτησω κατι. Εχω μια στήλη στο excel που ειναι της μορφης =Χ+Υ και εμφανίζετε το αποτέλεσμα. θέλω όμως να κάνω έναν ελεγχο για τυχων λαθη στη καταχωρηση και θα ηθελα να μου πειτε αν υπαρχει τροπος να εμφανιζετε στο κελι ολόκληρη η πράξη και όχι το συνολο. δηλαδη χωρις το = Ευχαριστώ εκ των προτερων
Gousgounis Δημοσιεύτηκε Απρίλιος 5 , 2011 Δημοσιεύτηκε Απρίλιος 5 , 2011 Για έλεγχο μπορείς να κάνεις το εξής: >=A1&" + "&B1&" = "&(A1+B1) όπου Α1 το Χ και Β1 το Υ Το αποτέλεσμα θα είναι της μορφής "Χ + Υ = Σ"
st2 Δημοσιεύτηκε Απρίλιος 5 , 2011 Δημοσιεύτηκε Απρίλιος 5 , 2011 σωστος ο gousgounis μια ερωτηση σχετικη το 2010 εχει την εντολη concatenate υπαρχει η αντιστροφη σε VBA ή κατι αλλο το ξερω οτι το πιο πιθανο ειναι να μην υπαρχει τιποτα αλλα μια ερωτηση δεν ηταν κακο
Gousgounis Δημοσιεύτηκε Απρίλιος 5 , 2011 Δημοσιεύτηκε Απρίλιος 5 , 2011 H Concatenate υπάρχει και σε παλαιότερες εκδόσεις αν και το "&" το βρίσκω πιο εύχρηστο. Αν θέλεις να χωρίσεις μια φράση με μία λέξη ή χαρακτήρα κλειδί μπορείς να χρησιμοποιήσεις τις Left και Right παράδειγμα: Έχεις στη στήλη Α δεδομένα της μορφής "Όνομα - Τηλέφωνο" Στη στήλη Β βάζεις: >=LEFT(A1,FIND("-",A1,1)-2) Στη στήλη C: >=RIGHT(A1,LEN(A1)-LEN(B1)-1) Σε VBA μάλλον θα έπρεπε να χρησιμοποιήσεις την split: >newVar = Split(Range("A1").Value, "-") 1
deminio Δημοσιεύτηκε Απρίλιος 6 , 2011 Δημοσιεύτηκε Απρίλιος 6 , 2011 Gousgouni δεν το πιασα. που το βαζω το =A1&" + "&B1&" = "&(A1+B1) ? Η στηλη ειναι σημπληρωμενη και δεν θελω να την πειραξω γιατι ειναι παρα πολλα. απλα θα ηθελα με καποιο τροπο να φυγει το = και να μου εμφανιζει πχ 10+5 και οχι το 15 που ειναι το συνολο
st2 Δημοσιεύτηκε Απρίλιος 6 , 2011 Δημοσιεύτηκε Απρίλιος 6 , 2011 αν τα δεδομενα σου ειναι εστω στισ στηλες Α και Β βαζεις αυτο =A1&" + "&B1&" = "&(A1+B1) στην C και γινεται αυτο που θες
Recommended Posts
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε προκειμένου να αφήσετε κάποιο σχόλιο
Πρέπει να είστε μέλος για να μπορέσετε να αφήσετε κάποιο σχόλιο
Δημιουργία λογαριασμού
Κάντε μια δωρεάν εγγραφή στην κοινότητά μας. Είναι εύκολο!
Εγγραφή νέου λογαριασμούΣύνδεση
Εάν έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα