Centrare caractere
Re: Centrare caractere
Incercam, cum sa nu!
Dar as vrea sa-mi dati toate elementele. De unde pornim, unde vrem sa ajungem, cu toate elementele, cu toate amanuntele posibile si imposibile.
Adica, dupa ce am gasit, sa zicem, textul "sectiunea", vreau sa fie inlocuit cu... "Capitol" cu un CR(^13) inainte, si tot asa.
Si o scoatem noi la capat!
Dar as vrea sa-mi dati toate elementele. De unde pornim, unde vrem sa ajungem, cu toate elementele, cu toate amanuntele posibile si imposibile.
Adica, dupa ce am gasit, sa zicem, textul "sectiunea", vreau sa fie inlocuit cu... "Capitol" cu un CR(^13) inainte, si tot asa.
Si o scoatem noi la capat!
Re: Centrare caractere
Pornim de la:
- XP, Word 2003 si VB care stie wildcards.
- un text "nepaginat", aliniat stanga, New Times Roman, size 10, ca cel atasat.
- CONTINE DIACRITICE !!!
- Trebuie sa fie "caps senzitive", ca altfel centreaza "capitolul" care se afla in mijlocul unui rand si nu UN "capitol".
- dupa prelucrare se exporta in html de catre Word.
- in tot textul trebuie gasit : Capitolul 6 sau VI, Sectiunea 6 sau VI, Titlul 6 sau VI, etc. si randul imediat urmator (descrierea), introdus cate un rand nou deasupra la "Capitolul" si alt rand nou sub "descriere".
Apoi Capitolul si descrierea trebuie centrate.
In macro, modific eu "Capitolul" in "CAPITOLUL" sau in "Secţiunea", "SECŢIUNEA", "Titlul" etc.
Sau il salvez eu de X ori, in functie de cate Capitol, Sectiune, Titlu etc. am si imi fac butone pt. fiecare.
- XP, Word 2003 si VB care stie wildcards.
- un text "nepaginat", aliniat stanga, New Times Roman, size 10, ca cel atasat.
- CONTINE DIACRITICE !!!
- Trebuie sa fie "caps senzitive", ca altfel centreaza "capitolul" care se afla in mijlocul unui rand si nu UN "capitol".
- dupa prelucrare se exporta in html de catre Word.
- in tot textul trebuie gasit : Capitolul 6 sau VI, Sectiunea 6 sau VI, Titlul 6 sau VI, etc. si randul imediat urmator (descrierea), introdus cate un rand nou deasupra la "Capitolul" si alt rand nou sub "descriere".
Apoi Capitolul si descrierea trebuie centrate.
In macro, modific eu "Capitolul" in "CAPITOLUL" sau in "Secţiunea", "SECŢIUNEA", "Titlul" etc.
Sau il salvez eu de X ori, in functie de cate Capitol, Sectiune, Titlu etc. am si imi fac butone pt. fiecare.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Re: Centrare caractere
Buna seara,
Se pare ca avem un mod de a privi lucrurile un pic diferit. Am observat o oarecare reticenta in utilizarea stilurilor, chiar pentru problema dumneavoastra.
Haideti sa va prezint puncul meu de vedere si sa prezint pe intelesul tuturor ce anume doriti de la aceasta automatizare. (Cu tot respectul pentru cititori, nu toti utilizatorii acestui forum lucreaza la nivel de cod ASCII)
Avem urmatoarele date:
-o lista de cuvinte (aici ar fi fost minunat daca mi-ati fi dat- o pe toata) -Capitolul, Sectiunea si/sau Titlu si dorim sa le "clasificam" ca titluri
- paragraful imediat urmator ("linia urmatoare"), care am dori sa fie un fel de subtitlu
-tot textul este neformatat, nu are stiluri si este alineat la stanga
Vrem sa obtinem:
-titlurile centrate cu un paragraf(linie goala) deasupra, ingrosate
-subtitlurile centrate si ele (aici nu stiu daca le doreati si ingrosate)
Cum am gandit rezolvarea:
Deoarece e complicat sa identificam la nivel de caracter toate aceste informatii, si cum Word-ul ne permite sa utilizam proprietatile paragrafelor, clasificarea tuturor acelor paragrafe ce contin cuvintele cerute o facem aplicandu-le tuturor stilul Heading1. Acest lucru ne va permite selectia simultana si clasificarea tuturor paragrafelor "de nivel 2" (randul urmator) carora le aplicam stilul Heading 2, iar pe cele care le preced le clasificam Heading 3.
Vom putea astfel sa selectam simultan toate caracterele ^13 (^p - "paragraph mark" in word) care au stilul heading 3 si sa le inlocuim cu doua ^P^P ceea ce inseamna ca am introdus cate un rand nou "inaintea " titlurilor
Apoi selectam toate caracterele ^p care au stilul heading2 si facem acelasi lucru (introducem o "linie" dupa subtitlu)
Si acum, nu mai ramane decat sa transformam stilul heading 3 in normal, stilul heading1 in normal, centrat si bold, si heading 2 in normal... nu mai stiu cum.
Acesta este modul in care am gandit problema si am pus-o in codul urmator:
Rulati find_capitol si.. sper ca este ceea ce v-ati dorit.
Problema cu codul dumneavoastra este ca Nu se lucreaza simultan in Word si cu wildcards si cu caractere speciale intr-o instanta find-replace si , cand facem un program, incercam sa facem mai putine operatii decat daca le-am executa "manual".
Daca doriti sa introduceti un "alineat" va trebui sa faceti acest lucru abia dupa ce ai transformat heading 3 in normal. Va trebui scindat codul.
Asta e tot ce am putut face pentru aceasta problema. Din pacate, mai mult de atat nu stiu ce-as sa mai putea sa fac.
Daca exista si alte opinii.. orice solutie e binevenita!
Oricum, si codul curent mai necesita imbunatatiri, dar, din pacate, nu ma pot dedica doar unui subiect. Mai asteapta cativa "candidati" cate o sugestie.
Va doresc numai bine!
Se pare ca avem un mod de a privi lucrurile un pic diferit. Am observat o oarecare reticenta in utilizarea stilurilor, chiar pentru problema dumneavoastra.
Haideti sa va prezint puncul meu de vedere si sa prezint pe intelesul tuturor ce anume doriti de la aceasta automatizare. (Cu tot respectul pentru cititori, nu toti utilizatorii acestui forum lucreaza la nivel de cod ASCII)
Avem urmatoarele date:
-o lista de cuvinte (aici ar fi fost minunat daca mi-ati fi dat- o pe toata) -Capitolul, Sectiunea si/sau Titlu si dorim sa le "clasificam" ca titluri
- paragraful imediat urmator ("linia urmatoare"), care am dori sa fie un fel de subtitlu
-tot textul este neformatat, nu are stiluri si este alineat la stanga
Vrem sa obtinem:
-titlurile centrate cu un paragraf(linie goala) deasupra, ingrosate
-subtitlurile centrate si ele (aici nu stiu daca le doreati si ingrosate)
Cum am gandit rezolvarea:
Deoarece e complicat sa identificam la nivel de caracter toate aceste informatii, si cum Word-ul ne permite sa utilizam proprietatile paragrafelor, clasificarea tuturor acelor paragrafe ce contin cuvintele cerute o facem aplicandu-le tuturor stilul Heading1. Acest lucru ne va permite selectia simultana si clasificarea tuturor paragrafelor "de nivel 2" (randul urmator) carora le aplicam stilul Heading 2, iar pe cele care le preced le clasificam Heading 3.
Vom putea astfel sa selectam simultan toate caracterele ^13 (^p - "paragraph mark" in word) care au stilul heading 3 si sa le inlocuim cu doua ^P^P ceea ce inseamna ca am introdus cate un rand nou "inaintea " titlurilor
Apoi selectam toate caracterele ^p care au stilul heading2 si facem acelasi lucru (introducem o "linie" dupa subtitlu)
Si acum, nu mai ramane decat sa transformam stilul heading 3 in normal, stilul heading1 in normal, centrat si bold, si heading 2 in normal... nu mai stiu cum.
Acesta este modul in care am gandit problema si am pus-o in codul urmator:
Cod: Selectaţi tot
Sub findCapitol()
'
'Dr.Word
'
Dim i As Integer
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Normal")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Heading 1")
With Selection.Find
.Text = "CAP*"
.Replacement.Text = ""
.Forward = True
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "SEC*"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
findhead
h213
h1
h2
h3
End Sub
Sub findhead()
Dim i As Integer
For i = 2 To ActiveDocument.Paragraphs.Count
If ActiveDocument.Paragraphs(i).Style = "Heading 1" Then
ActiveDocument.Paragraphs(i + 1).Style = "Heading 2"
ActiveDocument.Paragraphs(i - 1).Style = "Heading 3"
End If
Next i
End Sub
Sub h213()
'
' dr.word
'
'
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Heading 2")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Heading 2")
With Selection.Find
.Text = "^p"
.Replacement.Text = "^p^p"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Heading 3")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Heading 3")
With Selection.Find
.Text = "^p"
.Replacement.Text = "^p^p"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Sub h3()
'
' h1 Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Heading 3")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Normal")
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Sub h1()
'
' h1 Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Heading 1")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Normal")
Selection.Find.Replacement.Font.Bold = True
Selection.Find.Replacement.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Sub h2()
'
' h2 Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Heading 2")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Normal")
Selection.Find.Replacement.Font.Bold = True
Selection.Find.Replacement.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Problema cu codul dumneavoastra este ca Nu se lucreaza simultan in Word si cu wildcards si cu caractere speciale intr-o instanta find-replace si , cand facem un program, incercam sa facem mai putine operatii decat daca le-am executa "manual".
Daca doriti sa introduceti un "alineat" va trebui sa faceti acest lucru abia dupa ce ai transformat heading 3 in normal. Va trebui scindat codul.
Asta e tot ce am putut face pentru aceasta problema. Din pacate, mai mult de atat nu stiu ce-as sa mai putea sa fac.
Daca exista si alte opinii.. orice solutie e binevenita!
Oricum, si codul curent mai necesita imbunatatiri, dar, din pacate, nu ma pot dedica doar unui subiect. Mai asteapta cativa "candidati" cate o sugestie.
Va doresc numai bine!
Re: Centrare caractere
Nu am nici un fel de reticente, daca la final se obtine ce doresc !
Pana una alta ....
" Compmpile error:
Ambigous name detected: findCapitol"
Daca sterg "find" ruleaza pe un singur "caz". Adica un singur "Capitol".
Dar introduce 3 randuri noi deasupra la Capitol si sub descriere.
Fac copy-paste de 4-5 ori la ce exista in fisierul A.doc trimis ca exenplu, ca sa vad cum ruleaza pe mai multe "Capitole" si nu mai face nimic.
Nici macar nu da eroare.
Pana una alta ....
" Compmpile error:
Ambigous name detected: findCapitol"
Daca sterg "find" ruleaza pe un singur "caz". Adica un singur "Capitol".
Dar introduce 3 randuri noi deasupra la Capitol si sub descriere.
Fac copy-paste de 4-5 ori la ce exista in fisierul A.doc trimis ca exenplu, ca sa vad cum ruleaza pe mai multe "Capitole" si nu mai face nimic.
Nici macar nu da eroare.
Re: Centrare caractere
Am refacut o parte.
Incercati acum, va rog, macro titluri. Posibil sa mai fi avut un macro cu acelasi nume (find_capitol!) de aceea a aparut eroarea de nume.
Incercati acum, va rog, macro titluri. Posibil sa mai fi avut un macro cu acelasi nume (find_capitol!) de aceea a aparut eroarea de nume.
Cod: Selectaţi tot
Sub titluri()
'
'dr.word
'
'
Dim i As Integer
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Normal")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Heading 1")
With Selection.Find
.Text = "CAP*"
.Replacement.Text = ""
.Forward = True
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "SEC*"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
findantet
h213
h3
h2
h1
End Sub
Sub findantet()
Dim i As Integer
For i = 2 To ActiveDocument.Paragraphs.Count
If ActiveDocument.Paragraphs(i).Style = "Heading 1" Then
ActiveDocument.Paragraphs(i + 1).Style = "Heading 2"
ActiveDocument.Paragraphs(i - 1).Style = "Heading 3"
End If
Next i
End Sub
Sub h213()
'
' diana tanase
'
'
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Heading 2")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Heading 2")
With Selection.Find
.Text = "^p"
.Replacement.Text = "^p^p"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Heading 3")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Heading 3")
With Selection.Find
.Text = "^p"
.Replacement.Text = "^p^p"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Sub h1()
'
' h1 Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Heading 1")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Normal")
Selection.Find.Replacement.ParagraphFormat.Alignment = wdAlignParagraphCenter
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Sub h2()
'
' h2 Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Heading 2")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Normal")
Selection.Find.Replacement.ParagraphFormat.Alignment = wdAlignParagraphCenter
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Sub h3()
'
' h3 Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Heading 3")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Normal")
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Re: Centrare caractere
Ok !!!!!
Acum merge !
Face exact ce vroiam, minus boldarea la "descriere". (al doilea rand)
Credeti ca se poate adauga undeva la sfarsit ceva de genul
Selection.Find.Replacement.Font.Bold = True ?
Acum merge !
Face exact ce vroiam, minus boldarea la "descriere". (al doilea rand)
Credeti ca se poate adauga undeva la sfarsit ceva de genul
Selection.Find.Replacement.Font.Bold = True ?
Re: Centrare caractere
In macro h1 si in macro h2, dupa end with.
De bucurie ca le-am identificat, centrat si adaugat paragrafe am uitat de bold-uire.
Astept sa-mi spuneti daca va merge cu aceste modificari. La mine a mers.
De bucurie ca le-am identificat, centrat si adaugat paragrafe am uitat de bold-uire.
Astept sa-mi spuneti daca va merge cu aceste modificari. La mine a mers.
D. Tanase
MCT, MCTS
MOS Master Instructor
MCT, MCTS
MOS Master Instructor
Re: Centrare caractere
Numai in h2 trebuia ! La descriere.
Merge perfect !
Multumesc foarte mult !
Merge perfect !
Multumesc foarte mult !
Re: Centrare caractere
Scripturile functioneaza dar exista niste bug-uri !
Primul si cel mai deranjant ar fi ca inainte de fiecare :
Capitol (Sectiune, Titlu, etc.) centrat si boldat,
paragraful superior pierde alinierea initiala.
Adica se muta inapoi cu un "tab".
Primul si cel mai deranjant ar fi ca inainte de fiecare :
Capitol (Sectiune, Titlu, etc.) centrat si boldat,
paragraful superior pierde alinierea initiala.
Adica se muta inapoi cu un "tab".