yiah Δημοσ. 13 Ιουλίου 2007 Δημοσ. 13 Ιουλίου 2007 γεια χαρα σε ολους!! θελω κατι πολυ απλο (νομιζω) σε μια παραγραφο word 2003 σαν αυτη α > 555 β> 555 γ> 555 δ> 555 να την κανω καπως ετσι βαλε κωδικο <εδω> , να βαζεις πχ 333 α > 333 β> 333 γ> 333 δ> 333 και να μπαινουν οι τιμες αυτοματα και να μη κανω replace <εδω> me 333 ευχαριστω!!!
ezhrorh Δημοσ. 13 Ιουλίου 2007 Δημοσ. 13 Ιουλίου 2007 Μπορείς να το κάνεις σε Excel και μετά να κάνεις εισαγωγή του αρχείου αυτού στο Word.
yiah Δημοσ. 13 Ιουλίου 2007 Μέλος Δημοσ. 13 Ιουλίου 2007 το θεμα ειναι οτι ειναι να γινετε αυτοματα και γρηγορα και να γλιτωνω το αντιγραφη επικολληση και επιπλεον δεν θελω πινακα αλλα 1 γραμμη η 1 κελι σε Excel κατι τετοιο 'Party ' = "TIMH" OR ' Reference' = "TIMH" OR 'Extension' = "TIMH" OR Priority' = "TIMH" OR 'Reference' = "TIMH" OR 'Telephone' = "TIMH" OR 'Location' = "TIMH" OR 'Name' = "TIMH" OR 'Organisation' = "TIMH" OR 'Summary' = "%TIMH%" OR 'Phone No' = "TIMH" OR 'First Name' = "TIMH" θελω να χρησιμοποιησω το παραπανω ως template για αναζητηση σε αλλο προγραμμα για αυτο θελω να ειναι 1 γραμμη
bilco Δημοσ. 13 Ιουλίου 2007 Δημοσ. 13 Ιουλίου 2007 Γίνεται με πεδία με όχι όμως τόσο βολική εισαγωγή του αριθμού. Ένας τρόπος είναι: Ορίζεις ένα Bookmark και του δίνεις το όνομα num. Κατόπιν γράφεις το κείμενο και τα πεδία Ο αριθμός που επαναλαμβάνεται είναι ο {SET num 13}{REF num} a>{REF num} b>{REF num} Τις αγκύλες δεν πρέπει να τις πληκτρολογήσεις αλλά να τις βάλεις με ctrl+F9. Με alt+F9 εναλλάσουμε την προβολή του κώδικα των πεδίων με την προβολή της τιμής των πεδίων. Άρα για να γίνει εισαγωγή μιας νέας τιμής πρέπει με alt+F9 να εμφανίσουμε τον κώδικα των πεδίων και να αλλάξουμε τον αριθμό 13. Ένα άλλο ενοχλητικό σημείο είναι ότι η ανανέωση δεν γίνεται αυτόματα. Στο παραπάνω παράδειγμα αν πατήσω alt+F9 για να μου εμφανίσει τους αριθμούς, δεν θα δω κανέναν αριθμό. Πρέπει να επιλέξω όλα τα πεδία (ctrl+A) και να πατήσω F9 για να γίνει update. Ένας άλλος πιο βολικός τρόπος είναι αντί για το πεδίο SET να χρησιμοποιήσω το {ASK num} Εδώ δεν χρειάζεται να δημιουργήσω εγώ το bookmark num, το δημιουργεί η ΑSK. Πάλι τα επιλέγω όλα και με F9 μου βγάζει ένα κουτάκι εισαγωγής για να βάλω τον νέο αριθμό. Δεν χρειάζεται τίποτα άλλο. Προσωπική επιλογή: αν έχω μια επαναλαμβανόμενη μεταβλητή η 2η λύση, αν έχω πολλές η 1η.
yiah Δημοσ. 14 Ιουλίου 2007 Μέλος Δημοσ. 14 Ιουλίου 2007 ευχαριστω bilco!! βασικα ενας αριθμος ειναι που μπαινει σε διαφορετικα πεδια, οποτε θα προσπαθησω τη δευτερη λυση αλλα απο Δευτερα... ελπιζω να τα καταφερω! και κατι ακομα μπορω να φταξω 1 μακρο που να αντιγραφει τον αριθμο απο πχ email να κανει επιλογη ολα τα πεδια να βαζει τον αριθμο και μετα να κανει αντιγραφη αυτη τη φορμα σε αλλο προγραμμα; ευχαριστω !!!
bilco Δημοσ. 14 Ιουλίου 2007 Δημοσ. 14 Ιουλίου 2007 Ισχύουν τα της πρώτης περίπτωσης για το έγγραφο. Το mail που θα διαβάσω είναι το πρώτο στα εισερχόμενα του Office Outlook και περιέχει το κείμενο "Ο αριθμός 154 θα εισαχθεί αυτόματα". Δημιουργώ μια μακροεντολή με όνομα replace_number. Στον VB editor από Tools->References τσεκάρω το Microsoft Outlook 10.0 Object Library (ή 11 ή 12 ανάλογα με την έκδοση), οκ. Στην μακροεντολή βάζω τον κώδικα >Sub replace_number() On Error GoTo errTrap Dim fieldSet As Field Dim inFolder As Object Dim mapiNS As Outlook.NameSpace Dim msg As Outlook.MailItem Dim strMsg As String Dim splitMsg() As String 'παίρνω το πρώτο μήνυμα απο τα εισερχόμενα του Office Outlook Set mapiNS = Outlook.Application.GetNamespace("MAPI") Set inFolder = mapiNS.GetDefaultFolder(olFolderInbox) Set msg = inFolder.Items(1) 'το κείμενο του μηνύματος strMsg = msg.Body 'το χωρίζω σε λέξεις με βάση τα κενά και παίρνω 'μόνο τις τρείς πρώτες αφού η τρίτη λέξη είναι ο αριθμός splitMsg = Split(strMsg, " ", 3) 'παίρνω το πρώτο πεδίο στο έγγραφο Set fieldSet = Word.ActiveDocument.Fields.Item(1) 'και του αλλάζω τον κώδικα fieldSet.Code.Text = "SET num " & splitMsg(2) 'τέλος ανανεώνω όλα τα πεδία Word.ActiveDocument.Fields.Update Exit Sub errTrap: MsgBox "Error", vbCritical End Sub Φυσικά το πεδίο set μπορεί να μην είναι το πρώτο πεδίο στο έγγραφο, γι αυτό καλύτερο είναι να το αναζητάς, να ψάχνεις δηλαδή το πεδίο με κώδικα "SET num" (το substring). Αντίστοιχα και για το mail, ίσως και κάτι παραπάνω (μια φόρμα να εμφανίζει όλα τα mail στο inbox για να επιλέγεις ή να παίρνεις τα mail με ένα φίλτρο άμα είναι πάρα πολλά κλπ). Και πιο σοβαρό error handling επίσης
yiah Δημοσ. 17 Ιουλίου 2007 Μέλος Δημοσ. 17 Ιουλίου 2007 bilco!! σε ευχαριστω παρα πολυ!! προτιμησα τη δευτερη λυση που ζηταει αριθμο γιατι μου φαινετε πιο βολικη. επισης εγραψα (record) μια μακρο που κανει επιλογη και ζηταει ανανεωση των πεδιων και αντιγραφει > Selection.MoveUp Unit:=wdLine, Count:=13 Selection.HomeKey Unit:=wdLine Selection.MoveDown Unit:=wdLine, Count:=9, Extend:=wdExtend Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Fields.Update Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.MoveUp Unit:=wdLine, Count:=5, Extend:=wdExtend Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Copy End Sub οποτε με αλτ+ρ (εβαλα και μια συντομευση στη μακρο) μου ζηταει τον αριθμο τον κανω επικολληση και αντιγραφει την παραγραφο που θελω το προβλημα που εχω με αυτη τη μακρο ειναι πως επειδη διαλεγει συγκριμενες γραμμες αν ο αριθμος ειναι πχ 10 ψηφιος οι γραμμες γινονται περισσοτερες οποτε δεν επιλεγονται! υπαρχει τροπος να επιλεξω 1 παραγραφω ολοκληρη, να ειναι κατι σαν απο εδω εως εδω ανεξαρτητα το ποσες γραμμες ειναι
bilco Δημοσ. 17 Ιουλίου 2007 Δημοσ. 17 Ιουλίου 2007 Αφού θέλεις μόνο να δίνεις έναν αριθμό και να γίνεται ανανέωση με μάκρο χρησιμοποίησε τον πρώτο τρόπο (επιμένω) και γράψε την παρακάτω μακροεντολή > Sub Change_Number() ' ' Change_Number Μακροεντολή ' Δημιουργία μακροεντολής 17/7/2007 από bill ' Dim strNum As String Dim strField() As String Dim f As Field Dim strInput As String strNum = "num" For Each f In Word.ActiveDocument.Fields strField = Split(Trim(f.Code.Text)) If ((StrComp(strField(0), "SET", vbTextCompare) = 0) And _ (StrComp(strField(1), strNum, vbTextCompare) = 0)) Then strInput = InputBox("Δώστε αριθμό: ", "Εισαγωγή αριθμού") If (strInput = "") Then Exit Sub End If f.Code.Text = "SET " & strNum & " " & strInput Word.ActiveDocument.Fields.Update Exit Sub End If Next f MsgBox "Δεν βρέθηκε πεδίο SET " & strNum, vbInformation End Sub Βάλε και ένα κουμπί σε ένα toolbar για να την εκτελείς και είσαι εντάξει
yiah Δημοσ. 17 Ιουλίου 2007 Μέλος Δημοσ. 17 Ιουλίου 2007 οκ αφου επιμενεις θα δοκιμασω και αυτον τον τροπο θα προσπαθησω να βαλω και κανα κουμπι και θα σου πω εντυπωσεις!! ευχαριστω πολυ!!!
yiah Δημοσ. 17 Ιουλίου 2007 Μέλος Δημοσ. 17 Ιουλίου 2007 κατσε λιγο γιατι μπερδευτικα λιγο.:???: απο το αντιγραφη επικολληση στον κωδικα σε μια μερα η παραγραφος (γραμμη στην ουσια) ειναι αυτη 'Party ' = "55" OR 'Reference' = "55" OR 'Extension' = "55" OR 'Priority' = "55" OR 'Reference' = "55" OR 'Telephone' = "55" OR 'Location' = "55" OR 'Name' = "55" OR 'Organisation' = "55" OR 'Problem' = "%55%" OR 'Phone No' = "55" OR 'First Name' = "55" αυτο δε ανηκει στο Προσωπική επιλογή: αν έχω μια επαναλαμβανόμενη μεταβλητή η 2η λύση αφου η μεταβλητη ειναι ενας αριθμος πχ 55 σε πολλα πεδια;; συγνωμη αλλα ειμαι ασχετος!!
bilco Δημοσ. 17 Ιουλίου 2007 Δημοσ. 17 Ιουλίου 2007 κατσε λιγο γιατι μπερδευτικα λιγο.:???: απο το αντιγραφη επικολληση στον κωδικα σε μια μερα η παραγραφος (γραμμη στην ουσια) ειναι αυτη 'Party ' = "55" OR 'Reference' = "55" OR 'Extension' = "55" OR 'Priority' = "55" OR 'Reference' = "55" OR 'Telephone' = "55" OR 'Location' = "55" OR 'Name' = "55" OR 'Organisation' = "55" OR 'Problem' = "%55%" OR 'Phone No' = "55" OR 'First Name' = "55" αυτο δε ανηκει στο αφου η μεταβλητη ειναι ενας αριθμος πχ 55 σε πολλα πεδια;; συγνωμη αλλα ειμαι ασχετος!! Ανήκει αλλά με μακροεντολή βολεύει με τον άλλο τρόπο Αν θέλεις pm το mail σου να σου στείλω το αρχείο γιατί είναι μεγάλο για συνημμένο εδώ. p.s. αν είναι για access έπρεπε να το πεις να το κάνουμε στην access
yiah Δημοσ. 19 Ιουλίου 2007 Μέλος Δημοσ. 19 Ιουλίου 2007 φιλε βασιλη!! καταρχας σε ευχαριστω πολυ!! με τη βοηθεια σου καταφερα να κανω κατι τουλαχιστον βολικο για εμενα. μπορει απο πλευρας προγραμματισμου να μπαζει αλλα προς το παρον με βολευει! τελικα προτιμισα τη λυση αλτ+ρ με ζητηση αριθμου. το προβληματακι που εχω τωρα ειναι πως μεσα στο κουτι θελω να ειναι δυνατον να κανεις επικιλληση μονο μια γραμμη και οχι παραγραφο λεπτομερεια βεβαια και εννοειτε πως θελω αφου η γραμμη ειναι αντεγραμμενη να πηγαινει κατευθειαν στο τριτο προγραμμα αλλα θα πρεπει να το ψαξω γιατι δεν εχω ιδεα για το που να αρχισω! > Selection.WholeStory Selection.Fields.Update Selection.MoveDown Unit:=wdLine, Count:=1 Selection.MoveUp Unit:=wdLine, Count:=5 Selection.MoveDown Unit:=wdLine, Count:=5 Selection.GoTo What:=wdGoToTable, Which:=wdGoToFirst, Count:=1, Name:="" Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.MoveDown Unit:=wdScreen, Count:=1, Extend:=wdExtend Selection.Copy Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="1" Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With End Sub υγ μη βαρατε οι ειδικοι, ετσι με βολευει προς το παρον αν εχετε να προτεινετε κατι καλυτερο ευχαριστως
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.