Προς το περιεχόμενο

ms word βοηθεια νομιζω fields


yiah

Προτεινόμενες αναρτήσεις

Δημοσ.

γεια χαρα σε ολους!!

 

θελω κατι πολυ απλο (νομιζω)

 

σε μια παραγραφο word 2003 σαν αυτη

 

α > 555

β> 555

γ> 555

δ> 555

 

να την κανω καπως ετσι

 

βαλε κωδικο <εδω> , να βαζεις πχ 333

 

α > 333

β> 333

γ> 333

δ> 333

 

και να μπαινουν οι τιμες αυτοματα και να μη κανω replace <εδω> me 333

 

ευχαριστω!!!

Δημοσ.

το θεμα ειναι οτι ειναι να γινετε αυτοματα και γρηγορα και να γλιτωνω το αντιγραφη επικολληση

 

και επιπλεον δεν θελω πινακα αλλα 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 γραμμη

Δημοσ.

Γίνεται με πεδία με όχι όμως τόσο βολική εισαγωγή του αριθμού.

Ένας τρόπος είναι:

Ορίζεις ένα 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η.

Δημοσ.

ευχαριστω bilco!!

 

βασικα ενας αριθμος ειναι που μπαινει σε διαφορετικα πεδια, οποτε θα προσπαθησω τη δευτερη λυση αλλα απο Δευτερα...

ελπιζω να τα καταφερω!

 

και κατι ακομα μπορω να φταξω 1 μακρο που να αντιγραφει τον αριθμο απο πχ email να κανει επιλογη ολα τα πεδια να βαζει τον αριθμο

και μετα να κανει αντιγραφη αυτη τη φορμα σε αλλο προγραμμα;

 

ευχαριστω !!!

Δημοσ.

Ισχύουν τα της πρώτης περίπτωσης για το έγγραφο. Το 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 επίσης

Δημοσ.

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 παραγραφω ολοκληρη, να ειναι κατι σαν απο εδω εως εδω ανεξαρτητα το ποσες γραμμες ειναι

Δημοσ.

Αφού θέλεις μόνο να δίνεις έναν αριθμό και να γίνεται ανανέωση με μάκρο χρησιμοποίησε τον πρώτο τρόπο (επιμένω) και γράψε την παρακάτω μακροεντολή

>
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 για να την εκτελείς και είσαι εντάξει

Δημοσ.

οκ αφου επιμενεις θα δοκιμασω και αυτον τον τροπο θα προσπαθησω να βαλω και κανα κουμπι και θα σου πω εντυπωσεις!!

 

ευχαριστω πολυ!!!

Δημοσ.

κατσε λιγο γιατι μπερδευτικα λιγο.:???: απο το αντιγραφη επικολληση στον κωδικα σε μια μερα

 

η παραγραφος (γραμμη στην ουσια) ειναι αυτη

 

'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 σε πολλα πεδια;;

 

συγνωμη αλλα ειμαι ασχετος!!:mrgreen:

Δημοσ.
κατσε λιγο γιατι μπερδευτικα λιγο.:???: απο το αντιγραφη επικολληση στον κωδικα σε μια μερα

 

η παραγραφος (γραμμη στην ουσια) ειναι αυτη

 

'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 σε πολλα πεδια;;

 

συγνωμη αλλα ειμαι ασχετος!!:mrgreen:

Ανήκει αλλά με μακροεντολή βολεύει με τον άλλο τρόπο

Αν θέλεις pm το mail σου να σου στείλω το αρχείο γιατί είναι μεγάλο για συνημμένο εδώ.

 

p.s. αν είναι για access έπρεπε να το πεις να το κάνουμε στην access

Δημοσ.

φιλε βασιλη!!

 

καταρχας σε ευχαριστω πολυ!!

με τη βοηθεια σου καταφερα να κανω κατι τουλαχιστον βολικο για εμενα. μπορει απο πλευρας προγραμματισμου να μπαζει αλλα προς το παρον με βολευει!

 

τελικα προτιμισα τη λυση αλτ+ρ με ζητηση αριθμου.

 

το προβληματακι που εχω τωρα ειναι πως μεσα στο κουτι θελω να ειναι δυνατον να κανεις επικιλληση μονο μια γραμμη και οχι παραγραφο

λεπτομερεια βεβαια

 

και εννοειτε πως θελω αφου η γραμμη ειναι αντεγραμμενη να πηγαινει κατευθειαν στο τριτο προγραμμα αλλα θα πρεπει να το ψαξω γιατι δεν εχω ιδεα για το που να αρχισω!

 

> 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

 

υγ μη βαρατε οι ειδικοι, ετσι με βολευει προς το παρον αν εχετε να προτεινετε κατι καλυτερο ευχαριστως

Αρχειοθετημένο

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

  • Δημιουργία νέου...