Wederom een vraag van mij. De rapportage die uit mijn Excelletje komt, ziet er goed uit, maar wat vervelend is, is dat er samengevoegde cellen zijn die daarnaast nog eens gevuld zijn met samengevoegde teksten. Nou, op zich niet vervelend, ware het niet dat je niet zomaar een rijhoogte automatisch kunt aanpassen met samengevoegde cellen. Doe je dat namelijk, dan wordt de rijhoogte automatisch op één rijhoogte gezet. En dat staat natuurlijk niet mooi als je meerdere regels in één cel hebt.
Gelukkig is het internet daar en jawel, er is een macro voor:
Nu is het probleem dat er hier met een Array wordt gewerkt. Zoals ik het zie kan ik hier niet zomaar een range invullen (dat werkt in elk geval niet. Op het interwebs lees ik dan dat ik dit moet vervangen:
Door:
Maar dat haalt werkelijk niets uit; sterker nog, het script doet het dan helemaal niet meer.
Excuses voor alle vragen, maar terwijl ik de ene vraag even parkeer, ga ik weer met het andere 'probleem' aan de slag.
Gelukkig is het internet daar en jawel, er is een macro voor:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| Sub FixMerged() 'Excel VBA to autofit merged cells Dim mw As Single Dim cM As Range Dim rng As Range Dim cw As Double Dim rwht As Double Dim ar As Variant Dim i As Integer Application.ScreenUpdating = False 'Cell Ranges below, change to suit. ar = Array("A1", "A2", "A3", "A5", "A6") For i = 0 To UBound(ar) On Error Resume Next Set rng = Range(Range(ar(i)).MergeArea.Address) rng.MergeCells = False cw = rng.Cells(1).ColumnWidth mw = 0 For Each cM In rng cM.WrapText = True mw = cM.ColumnWidth + mw Next mw = mw + rng.Cells.Count * 0.66 rng.Cells(1).ColumnWidth = mw rng.EntireRow.AutoFit rwht = rng.RowHeight rng.Cells(1).ColumnWidth = cw rng.MergeCells = True rng.RowHeight = rwht Next i Application.ScreenUpdating = True End Sub |
Nu is het probleem dat er hier met een Array wordt gewerkt. Zoals ik het zie kan ik hier niet zomaar een range invullen (dat werkt in elk geval niet. Op het interwebs lees ik dan dat ik dit moet vervangen:
code:
1
2
3
| Dim ar As Variant ar = Array("A1", "A2", "A3", "A5", "A6") |
Door:
code:
1
2
| Dim Ar As Variant Ar = Range("A1:A6") |
Maar dat haalt werkelijk niets uit; sterker nog, het script doet het dan helemaal niet meer.

Excuses voor alle vragen, maar terwijl ik de ene vraag even parkeer, ga ik weer met het andere 'probleem' aan de slag.

"Het probleem van quotes op internet is dat ze vaak niet kloppen of in elk geval niet herleidbaar zijn" - Vincent van Gogh