Avatar billede firstchoice Nybegynder
12. november 2003 - 14:18 Der er 14 kommentarer og
1 løsning

Opløsning af grupperinger af og i tekstbokse

Jeg har fået følgende kode af rvm, og den virker fint til pille tekst ud af tekstbokse, men jeg er så stødt på det problem at visse af tekstboksene er en del af en større gruppering, som først skal regroupes, ligeledes kan det forekomme at tekstboksen indeholder yderligere grupperinger. Så findes der en måde at løse grupperingerne samtidig med at teksten trækkes ud??
Hvis der forekommer en ikke opløst gruppering stopper makroen i følgende linie:
Indhold = ashape.TextFrame.TextRange.Text

Sub HentFraTekstbokse()

Dim ashape As Shape, Findwhat As String, Replacewith As String

Dok = ActiveDocument.Name

Application.Documents.Add

DokNyt = ActiveDocument.Name

Application.Documents(Dok).Activate

For Each ashape In ActiveDocument.Shapes
      Indhold = ashape.TextFrame.TextRange.Text
      længde = Len(Indhold)
      Indhold = Mid(Indhold, 1, længde - 1)
     
      Application.Documents(DokNyt).Activate
      Selection.TypeText Indhold
      Selection.TypeParagraph
      Application.Documents(Dok).Activate
Next

End Sub































Sub HentFraTekstbokse()

Dim ashape As Shape, Findwhat As String, Replacewith As String

Dok = ActiveDocument.Name

Application.Documents.Add

DokNyt = ActiveDocument.Name

Application.Documents(Dok).Activate

For Each ashape In ActiveDocument.Shapes
      Indhold = ashape.TextFrame.TextRange.Text
      længde = Len(Indhold)
      Indhold = Mid(Indhold, 1, længde - 1)
     
      Application.Documents(DokNyt).Activate
      Selection.TypeText Indhold
      Selection.TypeParagraph
      Application.Documents(Dok).Activate
Next

End Sub
Avatar billede firstchoice Nybegynder
12. november 2003 - 14:19 #1
Der er vist sket en dobbelt indsætning af macroen
Avatar billede rvm Nybegynder
12. november 2003 - 14:29 #2
Prøv at indsætte denne linie (har ikke tid lige nu til at test om det virker helt efter hensigten *S*)

ActiveDocument.StoryRanges(1).ShapeRange.Ungroup
Avatar billede rvm Nybegynder
12. november 2003 - 14:29 #3
Den skal sættes før sætningen

For Each ashape In ActiveDocument.Shapes
Avatar billede firstchoice Nybegynder
12. november 2003 - 14:43 #4
Nej den gik ikke. Macroen stopper på den nye linie
Avatar billede rvm Nybegynder
12. november 2003 - 16:01 #5
Nu har jeg testet og fundet følgende makro *S*

Sub HentFraTekstbokse()

Dim ashape As Shape, Findwhat As String, Replacewith As String

Dok = ActiveDocument.Name

Application.Documents.Add

DokNyt = ActiveDocument.Name

Application.Documents(Dok).Activate

ActiveDocument.Shapes.SelectAll
Selection.ShapeRange.Ungroup

For Each ashape In ActiveDocument.Shapes
      Indhold = ashape.TextFrame.TextRange.Text
      længde = Len(Indhold)
      Indhold = Mid(Indhold, 1, længde - 1)
     
      Application.Documents(DokNyt).Activate
      Selection.TypeText Indhold
      Selection.TypeParagraph
      Application.Documents(Dok).Activate
Next

End Sub
Avatar billede firstchoice Nybegynder
12. november 2003 - 16:44 #6
Nej det går ikke helt rigtig.
På siden er der flere tekstbokse hvori der er tekst og grafik der er grupperet. Alle tekstboksene er så tilsidst grupperet i en enhed. Jeg kan se at den store gruppering ophæves, men det galt når makroen forsøger at komme ind i de mindre tekstbokse hvor der  både tekst og grafik. Det ser ud til den får ophævet første niveau af gruppering, men der sker ingen ophævning i de enkelte tekstbokse.
Stopper i linien:
Indhold = ashape.TextFrame.TextRange.Text
Avatar billede rvm Nybegynder
12. november 2003 - 17:40 #7
Så må vi kører den nogle flere gange *S*

entFraTekstbokse()

Dim ashape As Shape, Findwhat As String, Replacewith As String

Dok = ActiveDocument.Name

Application.Documents.Add

DokNyt = ActiveDocument.Name

Application.Documents(Dok).Activate

On Error Resume Next
Do While Err = False
    ActiveDocument.Shapes.SelectAll
    Selection.ShapeRange.Ungroup
Loop
On Error GoTo 0

For Each ashape In ActiveDocument.Shapes
      Indhold = ashape.TextFrame.TextRange.Text
      længde = Len(Indhold)
      Indhold = Mid(Indhold, 1, længde - 1)

      Application.Documents(DokNyt).Activate
      Selection.TypeText Indhold
      Selection.TypeParagraph
      Application.Documents(Dok).Activate
Next

End Sub
Avatar billede rvm Nybegynder
12. november 2003 - 17:41 #8
Hvis dette ikke virker så send mig et eksemplar af dit dokument - så er det nemmere at tilpasse makroen  rvejemad@csc.com
Avatar billede firstchoice Nybegynder
13. november 2003 - 09:13 #9
Ja det var bedre nu bliver alt tekst truppet ud, men der sker det at alle sideskift i original dokumentet slettes således, at alle tekstboksene havner på en side oven i hinanden. ikke noget stort problem, men hvis det originale dokument kunne forblive uberørt ville det være bedre. Hvad mener du om det??
Avatar billede firstchoice Nybegynder
13. november 2003 - 09:31 #10
Der skulle stå trukket ud
Avatar billede rvm Nybegynder
13. november 2003 - 10:24 #11
Jeg underviser hele dagen, men vil meget gerne se på det i aften (har modtaget din fil) *S*
Avatar billede rvm Nybegynder
18. november 2003 - 14:27 #12
Hej - er løsningen tilfredstillende *S*
Avatar billede rvm Nybegynder
21. november 2003 - 09:04 #13
Hej - er løsningen tilfredstillende *S*
Avatar billede firstchoice Nybegynder
25. november 2003 - 14:18 #14
Undskyld den lange svartid
Avatar billede rvm Nybegynder
25. november 2003 - 14:22 #15
Bedre sent end aldrig *S*
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester