Avatar billede firstchoice Nybegynder
20. december 2001 - 20:45 Der er 17 kommentarer og
1 løsning

Kopiering af celler med nummeropstillinger i Word

Jeg har et word dokument med nummeropstillinger, dette dokument har jeg konvertering ind i en 1 kolonne tabel med afsnitstegn som skille parameter. Nu vil gerne kopierer cellerne ind i en kolonne til højre for originalen, således at jeg får en 2 kolonne tabel hvor teksten og nummereringen er ens i både venstre og højre kolonne. Dette gå også fint, men nummereringen ændre sig nu til også at omfatte højre kolonne. Altså hvis der står 1 i venstre så bliver den tilsvarende tekst i højre kolonne mærket med nummer 2 og derefter den venstre som nummer 3. Jeg ønsker at nummereringen skal være 1,2,3 osv i både venstre og højre kolonne.
Avatar billede sukos Juniormester
20. december 2001 - 20:48 #1
Fjern numereringen inden du kopiere, og efter siden er sat op, så tilføj numereringen!?
Avatar billede rvm Nybegynder
21. december 2001 - 12:22 #2
Hej firstchoice

Det er rigtig at du kan fjerne nummereringen før du kopierer, men hos mig afhjælper det ikke problemet, da jeg når jeg sætter nummerreringen på igen igen får den frotsatte nummerrækefølge.

Løsning:
I kolonne 2 markerer du al tekst.
Vælg Formater/Punktopstilling på menulinien
Vælg punkter \"Start forfra\" i venstre hjørne (i Word 2000)

Mvh

Richardt
Avatar billede firstchoice Nybegynder
23. december 2001 - 11:50 #3
Det er mere kompliceret, da dokumentet der er på ca 50 sider består af flere uafhængige nummer- og punktopstillinger. Det jeg har brug for er noget i retning af Excel funktionen Paste special hvor det kun er værdierne der indsættes og ikke formlerne. Altså hvor jeg kan \"fryse\" formateringen og derved slå automatikken fra.
Avatar billede rvm Nybegynder
23. december 2001 - 12:25 #4
OK *S*

Der er faktisk en funktion noget lignende i Word, men den indsætter den nye tekst som et objekt - dvs at den faktisk indsætter et nyt dokument magen til det gamle (altså det du har markeret) i højre kolonne. Prøv og se om ikke dette kunne være løsningen - ellers må vi lave noget VBA kode :-)

Metode:
Marker teksten i venstre kolonne
Vælg Kopier
Gå til højre kolonne
Vælg Rediger/Indsæt speciel fra menulinien
I dialoogboksen vælges Microsoft Word-dokument-objekt

Nu bliver hele din formatering og punktopstillinger magen til venstre kolonne

Håber det virker *S*

Mvh

Richardt
Avatar billede firstchoice Nybegynder
26. december 2001 - 12:04 #5
De to kolonner skal være identiske, således at modstående celler er ens i formateringen, og med samme punktnummer.
Avatar billede rvm Nybegynder
26. december 2001 - 20:49 #6
Ja - det virker ikke hvis du har flere celler, da wordobjektet bliver indsat i samme celle.

Nu er der kun programmering tilbage, hvor du markerer hver enkelt celle i venstre kolonne og kopierer dem over i højre kollonne og indsætter dem som objekt.

Mvh

Richardt
Avatar billede firstchoice Nybegynder
30. december 2001 - 16:27 #7
Det går ikke: Når jeg indsætter som et object så mister jeg punktnummereringen, og de de to kolonner opfylder ikke betingelsen, at de skal være identiske også hvad angår formateringen.
Avatar billede rvm Nybegynder
01. januar 2002 - 22:42 #8
Hej firstchoice

Opgaven er vist lidt kompliceret *S*

Hvad med om du sender dokumentet til mig (hvis ikke der er noget hemmeligt i det), så laver jeg en makro, der kan kopiere fra venstre til højre. Jeg har allerede leget lidt med een, men mangler at se strukturen i dit dokument.

Min email er rvejemad@sca.csc.com

Mvh

Richardt
Avatar billede rvm Nybegynder
02. januar 2002 - 10:53 #9
Hej firstchoice

Jeg er åbenbart den eneste, der tør give mig i kast med din problemstilling *S*

Nu har fundet på endnu en metode - og denne gang tror jeg den virker *S*

Hele problemet har været at der på en eller anden måde bliver oprettet en kæde mellem cellerne (også mellem celler i forskellige tabeller), hvorved nummeropstillingen bliver videreført. Jeg har nu fundet en måde at bryde denne kæde via en tekstboks:

Marker og kopier hele din tabel
Indsæt en Tekstboks via Tegneværktøjslinien
Indsæt din tabel i tekstboksen.

Nu bevares både nummeropstillinger og typografier *S*


NB - en tekstboks kan placeres, hvor du har lyst i dokumentet - også ved siden af en tabel...

Mvh

Richardt


Avatar billede firstchoice Nybegynder
03. januar 2002 - 20:21 #10
Nej den går ikke med tekstbox. Jeg skal have en 2 kolonners tabel hvor cellerne overfor hinanden er identiske i indhold og formatering.
Grunden hertil er at, jeg skal brugen tabellen som input i et specielt oversættersystem.
Avatar billede rvm Nybegynder
04. januar 2002 - 08:25 #11
Hej firstchoice

Så må vi tilbage til programmering. Hvis du sender du mig en kopi af dit dokument, så vil jeg udarbejde en kode til dig. Min adresse står højere oppe.

Mvh

Richardt

Avatar billede rvm Nybegynder
04. januar 2002 - 16:32 #12
Selv om du ikke sendte en kopi har jeg udarbejdet et forslag til en kode:

Sub Tabel()
\' Makro udarbejdet den 04-01-2002 af Richardt Veje Madsen

\'Tæller antal tabeller i dokumentet
AntalTabeller = ActiveDocument.Tables.Count

\'Denne løkke kører går igennem alle tabellerne
For n = 1 To AntalTabeller
   
    \'Vælger en tabel
    Selection.GoTo What:=wdGoToTable, Which:=wdGoToFirst, Count:=n, Name:=\"\"
    Selection.Tables(1).Select
    \'Rækker tælles
    AntalRækker = Selection.Information(wdEndOfRangeRowNumber)
    Selection.MoveLeft Unit:=wdCharacter, Count:=1

    \'Genneløber alle cellerne i den valgte tabel
    For i = 1 To AntalRækker
        Flag = False
       
        \'Vælger og kopierer indholdet af en celle
        Selection.SelectCell
        Selection.Copy
        Selection.MoveRight Unit:=wdCell
       
        \'Opretter et nyt dokument til at tjekke om cellens indhold er en punktopstilling
        Documents.Add DocumentType:=wdNewBlankDocument
        Selection.Paste
       
        \'Hvis cellens indhold er et dokument sættes et flag
        If ActiveDocument.ListTemplates.Count > 0 Then
            Flag = True
        End If
           
        \'Punktopstillingen konverteres til tekst
        If Flag = True Then
            Selection.MoveUp Unit:=wdLine, Count:=1
           
            For x = 1 To ActiveDocument.Lists.Count
              ActiveDocument.Lists(x).ConvertNumbersToText
            Next x
           
            Selection.SelectCell
            Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
            Selection.Copy
        End If
       
        \'Det nye dokument lukkes uden at det gemems
        ActiveWindow.Close (wdDoNotSaveChanges)
       
        \'Det fra cellen kopierede sættes ind i cellen til højre
        Selection.SelectCell
        Selection.Paste
       
        \'Formattet fra den venstre celle kopieres til den højre så de er ens
        If Flag = True Then
            Selection.SelectCell
            Selection.MoveLeft Unit:=wdCharacter, Count:=1
            Set paraFormat = Selection.ParagraphFormat.Duplicate
            Selection.SelectCell
            Selection.Paragraphs.Format = paraFormat
        End If
           
        Selection.MoveRight Unit:=wdCell
   
    \'Næste celle vælges
    Next i
\'Næste tabel vælges
Next n

End Sub

Den er nok lidt avanceret, men virker fint hos mig *S*

Mvh

Richardt

Avatar billede rvm Nybegynder
06. januar 2002 - 12:18 #13
Hej firstchoice

Jeg glemte lige at sige at det virker i Word 2000 - ikke i Word 2002 (XP), da objektmodellen er lidt ændret. Jeg har dog også det det til at virke i Word 2002 med nogel få ændringer.

Mvh

Richardt
Avatar billede rvm Nybegynder
09. januar 2002 - 11:04 #14
Hej firstchoice

Løste mit sidste svar dit problem ?

Mvh

Richardt
Avatar billede firstchoice Nybegynder
16. januar 2002 - 20:39 #15
Hej Richardt
Jeg har nu testet din løsning, og jeg har det problem at den sætter den nye celle ind under den kopierede celle, og ikke i en ny celle til højre for originalen, så bortset fra at den nye celle er placeret forkert så ser det ud til at virke. Flot nok
Jeg har forsøgt med forskellige retteleler, men uden det store held.
Nild Erik
Avatar billede rvm Nybegynder
17. januar 2002 - 08:57 #16
Hej Nils Erik (regner med at du skrev forkert - håber det er ok *S*)

Jeg gik ud fra i min løsning at du havde en tabel med 2 kolonner, hvor cellerne til venstre skulle kopieres over i de højre, men det er måske ikke rigtigt? Mit tilbud med at se dit dokument står stadig ved magt *S*

/Richardt
Avatar billede rvm Nybegynder
23. januar 2002 - 09:19 #17
Hej Nils-Erik

Nu har jeg kikket på sagen og den indbyggede kæde mellem punktopstillinger i en tabel kan ikke brydes, men...

Jeg kan lave punktopstillingen om til tekst (det vil ikke ændre på lauoutet) og derefter kopiere teksten over i den højre kolonne:

Sub Tabel()
' Makro udarbejdet den 23-01-2002 af Richardt Veje Madsen

'Tæller antal tabeller i dokumentet
AntalTabeller = ActiveDocument.Tables.Count

'Denne løkke kører går igennem alle tabellerne
For n = 1 To AntalTabeller
   
    'Vælger en tabel
    Selection.GoTo What:=wdGoToTable, Which:=wdGoToFirst, Count:=n, Name:=""
    Selection.Tables(1).Select
       
    'Rækker tælles
    Antalrækker = Selection.Information(wdEndOfRangeRowNumber)
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
   
    'Punktostillinger konverteres til tekst
    For x = 1 To ActiveDocument.Lists.Count
        ActiveDocument.Lists(ActiveDocument.Lists.Count).ConvertNumbersToText
    Next x
   
    'Indsætter kolonner til højre
    Selection.InsertColumnsRight
    Selection.MoveUp Unit:=wdLine, Count:=1
    Selection.GoTo What:=wdGoToTable, Which:=wdGoToFirst, Count:=n, Name:=""
   
    'Genneløber alle cellerne i den valgte tabel
    For i = 1 To Antalrækker
        'Vælger og kopierer indholdet af en celle
        Selection.SelectCell
        Selection.Copy
        Selection.MoveRight Unit:=wdCell
        Selection.Paste
        Selection.MoveRight Unit:=wdCell
    'Næste celle vælges
    Next i
'Næste tabel vælges
Next n

End Sub
Avatar billede rvm Nybegynder
02. februar 2002 - 22:28 #18
Hej Nils Erik

Jeg lægger nu den færdige kode ud til alles beskuelse. Har ikke hørt fra dig, men håber den virker lige så godt hos dig som hos mig *S*

Sub Tabel()
' Makro udarbejdet den 23-01-2002 af Richardt Veje Madsen

    'Opretter variabel til at gemme navnet på dokumentet
    GammeltDok = ActiveDocument.Name
   
    'Kopierer tabellen
    Selection.Tables(1).Select
    Selection.Copy
   
    'Indsætter kolonner til højre
    Selection.InsertColumnsRight
    Selection.MoveUp Unit:=wdLine, Count:=1
    Selection.GoTo What:=wdGoToTable, Which:=wdGoToFirst, Count:=n, Name:=""
   
    'Rækker tælles
    Selection.Tables(1).Select
    Antalrækker = Selection.Information(wdEndOfRangeRowNumber)
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCell
   
    'Fjerner punktopstilllinger fra tabelen, der fremkommer, når nu kolonne indsættes
    For n = 1 To Antalrækker
        Selection.Range.ListFormat.RemoveNumbers NumberType:=wdNumberParagraph
        Selection.MoveDown Unit:=wdLine, Count:=1
    Next n

    'opretter midlertideigt nyt dokument og indsætter tabellen
    Documents.Add DocumentType:=wdNewBlankDocument
    Selection.Paste
    NytDok = ActiveDocument.Name
   
    'Rækker tælles
    Selection.Tables(1).Select
    Antalrækker = Selection.Information(wdEndOfRangeRowNumber)
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
   
    'Punktostillinger konverteres til tekst
    For x = 1 To ActiveDocument.Lists.Count
        ActiveDocument.Lists(ActiveDocument.Lists.Count).ConvertNumbersToText
    Next x
   
    'Kopiering af de enkelte celler startes
    Selection.Tables(1).Select
    Selection.MoveRight Unit:=wdCell
    Selection.SelectCell
    Selection.Copy

    Documents(GammeltDok).Activate
    Selection.Tables(1).Select
    Selection.MoveRight Unit:=wdCell
    Selection.MoveRight Unit:=wdCell
    Selection.Paste
   
    'Genneløber alle cellerne i den valgte tabel
    For i = 2 To Antalrækker
        'Vælger og kopierer indholdet af en celle
        Documents(NytDok).Activate
        Selection.MoveRight Unit:=wdCell
        Selection.SelectCell
        Selection.Copy
       
        ' Indsætter indholdet i den "gamle" tabel
        Documents(GammeltDok).Activate
        Selection.MoveRight Unit:=wdCell
        Selection.MoveRight Unit:=wdCell
        Selection.SelectCell
        Selection.Paste
    'Næste celle vælges
    Next i
   
    ' Midlertidigt dokument lukkes uden at gemme
    Documents(NytDok).Activate
    ActiveDocument.Close (wddonotsacechanges)

End Sub
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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