Kolommen selectie tabel

Status
Niet open voor verdere reacties.

Symphysodon

Gebruiker
Lid geworden
14 dec 2012
Berichten
468
Beste forummers,

Is het mogelijk om via vba bepaalde kolommen te selecteren om bijvoorbeeld gelijknamig te verdelen?
Als ik bijvoorbeeld kolom 1 t/m 3 gelijkmatig wil verdelen met
Code:
With Selection.Tables(1)
    .Columns("1:3").DistributeWidth
    .Columns("4:6").DistributeWidth
End With
krijg ik een foutmelding

mvg
Marco
 

Bijlagen

  • kolommenselectie.docm
    12,4 KB · Weergaven: 29
Als je naar je eigen tabel kijkt, zie je dat die niet klopt voor je macro. De eerste rij heeft namelijk geen 6 kolommen, maar slechts 4. Word tabellen werken wat dat betreft anders als Excel kolommen (waar je overigens ook uit moet kijken met samengevoegde cellen). Als je IntelliSense gebruikt, zie je ook dat je deze constructie in dit verband niet kan gebruiken.
Als je dit typt:
Code:
    With Selection.Tables(1)
        .Columns("1:3").[B]D[/B]
krijg je geen DistributeWidth te zien. De opdracht mag dus niet in dit verband gebruikt worden. Doe je dit:
Code:
    ActiveDocument.Tables(1).Columns.[B]D[/B]
dan krijg je wél DistributeWidth als optie te zien. Ergo: de opdracht kan wél gebruikt worden voor de hele tabel, maar niet voor losse kolommen.

Dit:
Code:
    ActiveDocument.Tables(1).Columns.DistributeWidth
is dan waarschijnlijk weer niet wat je zoekt.
 
Ok dit kan dan helaas niet. Dan benader ik het van de andere kant. Ik heb nu in Excel de merged bereiken verwijderd en dan is het bedoeling dat ik ze in Word weer terug zet (uiteindelijk gaat het om >400 tabellen)
Ik denk met:
Code:
With ActiveDocument.Tables(1)
 .Cell(2, 4).Merge .Cell(2, 7)
End With
De 1e-regel is de titel van de tabel en regel 2 vanaf kolom 4 t/m 7 moet dan samengevoegd worden. Met deze code krijg ik alleen een foutmelding dat het lid niet bestaat.
 
Leg eens uit wat je wilt, want ik snap er steeds minder van. Als de tabellen uit Excel komen, kan je toch ook een koppeling in je Word document zetten?
 
Het is de bedoeling dat van elke tabel (>400) rij1, kolom 4 t/m 7 gecentreerd en samengevoegd is. Tussen elke tabel zitten 35 regels.
Een koppeling gaat met kleine bestanden wel goed, met de grotere bestanden kan Word het niet meer aan of wordt heel traag. Het probleem is dat de Excelformat niet meegenomen wordt naar Word, maw als ik in Excel de kolommen gelijkmatig verdeel dat Word er weer andere breedtes aan koppelt. Het zou leuk zijn als ik dit met vba op kan lossen.
 
Als ik het met een koppeling doe dan gaat het met een paar tabellen goed, maar zodra ik ze allemaal tegelijk kopieer dan komen de tabellen onleesbaar in Word te staan. In het Word rapport wil zoveel mogelijk de zelfde format behouden en door de tabellen met Ctr+v te plakken krijg ik dat wel voor elkaar.
Code:
Sub Tabelopmaak_in_Word()
'Programma format tabellen


Application.ScreenUpdating = False
With Selection.ParagraphFormat
    .SpaceBefore = 2
    .SpaceAfter = 0.8
End With

With Selection.Tables(1)
    .AutoFitBehavior (wdAutoFitWindow)
    .AutoFitBehavior (wdAutoFitWindow)
    .Columns.DistributeWidth
End With
Application.ScreenUpdating = True
End Sub

Alleen gaat het dan mis met samengevoegde cellen.
 
Post de bestanden er eens bij; ik denk dat het handiger is als we de Excel met de tabellen erbij kunnen bekijken.
 
Beetje lastig, de data is vertrouwelijk en het gaat om een bestand met 13 tabbladen voorzien van 34 tabellen op elk tabblad. De tabellen zijn opgebouwd zoals eerder vermeld.
 
Klinkt als een zeer bijzonder Excelbestand.
 
Dat je makkelijk kan versimpelen door a) het gros van de tabellen weg te halen en b) de data te anonimiseren. Uiteindelijk gaat het ons tenslotte om het proces, niet om de inhoud. Waar het om gaat: wij zijn te lui om zelf het tikwerk te doen :).
 
;) Dat heb ik toch gedaan, zie #1. Nieuw voorbeeld in de bijlage, het gaat om de tabellen in de kolommen Q t/m W

@VenA
Het Excelbestand is niet zo bijzonder, de data wel :d
 

Bijlagen

  • Wordtabellen.xlsm
    37 KB · Weergaven: 30
Het zal aan mij liggen maar ik zie geen enkele tabel. Of begrijp je niet wat een tabel in Excel is? Lege werkbladen met een paar lijntjes vallen er iig niet onder.
 
Het probleem is als ik er een 'echte' tabel van maak ik in dit geval 3978 namen gedefinieerd krijg waar ik allemaal code moet voor gaan schrijven en zoals je weet is mijn vba kennis nogal gebrekkig en het tabel vba jargon is net weer iets anders. Nu heb ik code om de format van de lijntjes, de lettergrootte, de afrondingen ed te maken en ik heb code om de neptabellen te vullen met data vanuit een database en dat gaat goed.
 
Ik geloof dat je de antwoorden niet helemaal snapt. Het heeft weinig zin om lege tabellen over te halen, want dan zie je niet wat er gebeurt. Je kunt toch wat random inhoud genereren? Nogmaals: het gaat ons om het principe, niet om jouw feitelijke inhoud. En je hoeft uiteraard geen 3987 namen te verzinnen; gebruik een vaste tekst die je combineert met random getallen bijvoorbeeld.
 
Zoals je zelf zegt: het gaat om het principe en dat is in dit geval niet de inhoud maar de tabel (of lijntjes zoals VenA zegt). De tabellen moeten passend op in Word met de kolommen gelijkmatig verdeeld ongeacht de inhoud. In #11 is het voorbeeld aangepast met wat voorbeeldgetallen. Het zou ook handig zijn als je het voorbeeld bekijkt, jij bent tenslotte degene die om een voorbeeld vraagt en zoals ik het nu zie heeft alleen VenA hem bekeken.

Die namen verzin ik ook niet zelf dat doet Excel: Tabel1, Tabel2...enz, maar als ik die namen vervolgens moet koppelen aan unieke tabeltitels dan heb ik daar toch weer code voor nodig.

De vraag lijkt me ook niet zo ingewikkeld, de oplossing is dat blijkbaar wel. Als het niet kan dan kan dat toch gewoon gezegd worden.
 
In #11 staat nog steeds hetzelfde bestand. Leeg met een boel lijntjes.
 
Ik zie het, ik heb toch echt wat ingevuld en opgeslagen
 

Bijlagen

  • Wordtabellen.xlsm
    38,9 KB · Weergaven: 33
Laatst bewerkt:
En zo zijn we 18 posts verder zonder dat je ook maar met iets komt. Van Word weet ik niet zoveel maar daar hebben we @OctaFish voor. Ik denk dat de kern van het probleem zit in de compleet rare opzet van jouw lege Excel bestand.

[Edit] Jouw vorige reactie gemist maar zelf overal hetzelfde invullen kan iedereen en heeft weinig toegevoegde waarde.
 
Laatst bewerkt:
Tja inderdaad erg vermoeiend. Nogmaals het gaat niet om de inhoud en voor jou informatie, de tabelkoppen zijn idg identiek voor 442 tabellen alleen de getallen zijn anders, in het voorbeeld misschien niet maar daar gaat het niet om!!!!
De hoeveelheid karakters in de tabelkoppen heb ik wel verschillend gemaakt omdat Word de breedte van de kolommen aanpast op basis van de hoeveelheid karakters ook al is de kolombreedte in Excel overal hetzelfde.
 
Natuurlijk gaat het er wel om. Als je zegt dat je tabellen gebruikt dan zal de code er anders uitzien dan als je een gewone range gebruikt. Verder is het mij niet duidelijk wat je met het hele verhaal wil dus ik pas.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan