• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

tekengebied vierkant maken.

Status
Niet open voor verdere reacties.

sylvester-ponte

Verenigingslid
Lid geworden
19 apr 2007
Berichten
6.614
ik heb een formule verzonnen om de hoogte en de breedte van de cellen op 45 te zetten.
maar soms moet ik hem meerdere keren uitvoeren om tot de gewenste breedte komen.

heeft iemand een idee hoe dat in een keer kan?
zie voorbeeld.
 

Bijlagen

Laatst bewerkt:
Met een iteratie-loopje en een delta-waarde (0.001)
Code:
Sub init()
    With Range("Tekengebied")
        .RowHeight = 45
        Do
            dTemp = (45 / .Cells(1, 2).Width) * .ColumnWidth
            .ColumnWidth = dTemp
        Loop Until Abs(.ColumnWidth - dTemp) < 0.001
        [B1] = "kolomBreedte = " & .Cells(1, 1).Width & " ipv 45"
    End With
End Sub
 
Laatst bewerkt:
hallo alphamax,
wat mankeert er aan de formule dat het niet in 1 stap kan? zoals bij de hoogte van een rij
 
Laatst bewerkt:
Of zo:
Code:
Sub init()
    With Range("Tekengebied")
        .RowHeight = 45
        .ColumnWidth = (((.Width / .Columns.Count) / 0.75 - 5) / 7)
        .ColumnWidth = (((.Height / .Rows.Count) / 0.75 - 5) / 7)
    End With
End Sub
 
Lijkt me niet.
Ik denk dat in VBA de eenheden voor .height, .rowheight, .width nog steeds punten zijn, en voor .columnwidth nog steeds characters zijn.
 
@sylvester-ponte
Als de .columnwidth leidend is dan kan de code wel een stuk korter worden.
Dat heeft te maken met de lees- en schrijfeigenschappen van .height, .rowheight, .width en .columnwidth en de bijbehorende eenheden.

Code:
Sub init()
    With Range("Tekengebied")
        .ColumnWidth = 7.86    'characters calibri 11
        .RowHeight = .Cells(1).Width
    End With
End Sub

Zie https://docs.microsoft.com/en-us/office/troubleshoot/excel/determine-column-widths en https://excel.tips.net/T002121_Understanding_Column_Widths.html om te zien waar "characters" voor staan.
 
Laatst bewerkt:
alphamax, ik snap hem. dank je wel.
ik moet eerst de breedte zetten en dan de hoogte die "breedte" geven. :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan