Vind de hoogte van een tabel in VBA

Status
Niet open voor verdere reacties.

TimdeBlaeij

Gebruiker
Lid geworden
19 jul 2017
Berichten
22
Hallo,

Ik ben bezig met een programma dat verschillende tekst en tabel onderdelen netjes onder elkaar moet plaatsen in een gegenereed word document. Om dit precies te doen werk ik met Top en Height posities die gegeven worden in points.
Nou heb ik geen enkel probleem om shapes te plaatsen en hun hoogte te berekenen, maar met tabellen is dit wat lastiger.
Ik krijg het niet voor elkaar om iets te verzinnen om de tabelhoogte te berekenen.
Ik heb een dummyfile gemaakt waarin twee vragen worden gegeven:
Hoe bereken ik de hoogte van mijn tabel?
en
Waarom moet ik de Top positie van mijn tabel verminderen?
Enig hulp zou zeer worden gewaardeerd.
Alvast bedankt,

Tim
 

Bijlagen

  • Vormen en tabellen.xlsm
    22,9 KB · Weergaven: 39
Laatst bewerkt:
Gebruik een intelligente tabel in Excel.
 
Ik zie geen tabel, alleen enkele regels.
En dan zou ik zeggen dat je de top positie (cel.Top) van een cel in de laatste regel gebruikt + de hoogte (cel.Height) van die regel.
 
Onduidelijkheid

Sorry ik ben misschien niet helemaal duidelijk geweest. De shapes en tabel worden in een door vba gegenereerd word document geplaatst
 
Zet in een Word document een koppeling naar de tabel in het Excelbestand.

Laat Excel/VBA geen Worddocumenten maken, maar doe dat gewoon met de hand met alle gewenste opmaak.
VBA in het wordbestand kan dan de koppelingen naar Excelbestanden bijwerken.
 
Het ding is echter dat ik wel wil dat het programma zelf de opmaak doet.
Ik zou alleen dingen willen die noodzakelijk zijn, omdat de standaardfunctionaliteit het niet kan. Willen om het willen getuigt niet van het beste automatiseringsinzicht :). Bovendien mis ik een Word document...
 
Het hele idee achter het programma is dat het in word document verschillende elementen maakt (tabellen en textboxen) die kunnen verschillen in lengte en daardoor dus ook beginpositie. Dit krijg ik niet voor elkaar als ik een word template maak en die vervolgens invul. Het gaat mij niet om willen om het willen, maar eerder om het feit dat dit het gehele idee van het programma is.

Het word document word verder door het programma gemaakt, maar ik heb nu ook toegevoegd hoe deze eruit komt te zien.
Het gaat mij er dus om dat de tweede textbox netjes onder de tabel komt te staan.
 

Bijlagen

  • Voorbeeld .docx
    18 KB · Weergaven: 26
Als ik de macro draai krijg ik een (redelijk) vergelijkbaar resultaat. Ik had liever gezien hoe je het had willen hebben :).
 
Ik had het graag gezien zoals in voorbeeld 1, maar stel mijn tabel wordt groter dan wil ik het graag zien zoals in voorbeeld 2
 

Bijlagen

  • Voorbeeld 2.docx
    18,9 KB · Weergaven: 33
  • Voorbeeld .docx
    18 KB · Weergaven: 27
Ik snap niet helemaal waarom je meer rijen maakt dan je data hebt in je Excel blad. Maar goed, je kunt dat wel instellen/optellen.
Code:
    For i = 1 To intNoOfRows
        objTable.Rows(i).Height = 17
        Hoogtetabel = Hoogtetabel + objTable.Rows(i).Height
 
Dit lijkt prima te werken voor mij, maar stel ik heb een cell van mijn tabel die uit meerdere regels bestaat, zou dat dan nogsteeds passen?
 
Code:
Sub M_snb()
    With ActiveDocument.Shapes(1)
       .RelativeVerticalPosition = 1
       .Top = CentimetersToPoints(2)
       y = PointsToCentimeters(.Height) + 2.5
    End With
    
    With ActiveDocument.Tables(1).Rows
        .RelativeVerticalPosition = 1
        .VerticalPosition = CentimetersToPoints(y)
        y = y + PointsToCentimeters(.Count * .Height) + 0.5
    End With

    With ActiveDocument.Shapes(2)
       .RelativeVerticalPosition = 1
       .Top = CentimetersToPoints(y)
    End With
End Sub
 
Hi Snb,
.Height geeft een waarde van 9999999 waardoor bij shape 2 de y waarde te groot is.
Enig idee hoe we dit oplossen?
 
Gewoon de code goed bestuderen en testen. Ik kan niet op jouw computer kijken van hieruit.
Als je de tekst niet in vakken zet en de tabel in de lijn van de tekst zet gaat alles vanzelf goed
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan