• 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.

Werkblad splitsen en blokkeren via VBA

Status
Niet open voor verdere reacties.

grietsenwijma

Gebruiker
Lid geworden
25 jun 2013
Berichten
233
Goedenavond,

Ik ben bezig met een code die onder meer een werkblad splitst en vervolgens de titels blokkeert.
Dit deel van de code ziet er als volgt uit:

Code:
    With ActiveWindow
        .SplitColumn = 0
        .SplitRow = 121
    End With
    ActiveWindow.FreezePanes = True
End Sub

Werkt op zich goed, maar zodra er een regel tussen- of tussenuit gaat ga ik hangen want hij blijft naar regel 121 gaan.

Ik dacht de kant uit om de cel A121 in het naamvak een eigen naam te geven en vervolgens de splitsing hieraan te knopen.
Maar dat ga ik met deze code niet redden.

Wie heeft de oplossing hiervoor wel eens zien langskomen?

Alvast dank!
 
Dus je wilt dat het telkens op de 121 blijft staan? Je kunt het achter een worksheet_activate zetten, dus achter je betreffende tabblad.
Elke keer als je dit tabblad opent zal het weer herstellen.

Code:
Private Sub Worksheet_Activate()
 With ActiveWindow
  .SplitColumn = 0
  .SplitRow = 121
  .FreezePanes = True
 End With
End Sub
 
Laatst bewerkt:
Geef cel A121 een naam.
Code:
With ActiveWindow
   .SplitRow = Range("naam").Row
   .FreezePanes = True
End With
 
Geef cel A121 een naam.
Code:
With ActiveWindow
   .SplitRow = Range("naam").Row
   .FreezePanes = True
End With

...Werkt inmiddels al een poosje, nu ontdek ik dat de "split"steeds net een rij te laag komt.
Bijvoorbeeld als mijn cel met "naam" A121 is
Komt de splitsing tussen rij 122 en rij 123

Hoe zou dat komen en wat doe ik er aan?

Bedankt!
 
Laatst bewerkt:
en het is niet zo dat "Naam" ondertussen 1 rij opgeschoven is ?
 
het is niet zo dat er ergens in die rij 121 van die samengevoegde cellen staan, die 2 rijen diep zijn ?
Anders kan ik niets bedenken en zou je het zo kunnen oplossen en spelen met die "2"
Code:
   .SplitRow = Range("naam").Offset([COLOR="#FF0000"]-2[/COLOR]).Row
.
 
Laatst bewerkt:
Dan zit de split aan de onderkant van cel A121.
Het simpelst lijkt mij om de naam te veranderen naar A120 toch?
 
ik gok op iets geks in die rij, die een normaal splitsen hindert.
Maar dan moet je de echte situatie natuurlijk kunnen zien.
Als je het handmatig op die rij zou doen, lukt het dan wel ?

Fout ideetje, ik heb het zelf even met een samengevoegde cel geprobeerd en het werkte.
Dus ik pas.
 
Laatst bewerkt:
Zonder bestand is het ook maar gokken.

Een ideetje doordat FreezePanes vast staat.

Naam = A119.

Eerst losmaken → terug naar A1 → Splitrow → ga naar [naam] → vast zetten.
Code:
Sub hsv()
With ActiveWindow
 .FreezePanes = False
    Application.Goto [a1], True
 .SplitRow = Range("naam").Row
    Application.Goto [naam]
 .FreezePanes = True
End With
End Sub

Als het niet werkt stop ik met gokken zonder bestand van Ts.
Werkte al een tijdje maar ook geen reactie.
 
het is niet zo dat er ergens in die rij 121 van die samengevoegde cellen staan, die 2 rijen diep zijn ?
Anders kan ik niets bedenken en zou je het zo kunnen oplossen en spelen met die "2"
Code:
   .SplitRow = Range("naam").Offset([COLOR="#FF0000"]-2[/COLOR]).Row
.
 
Ik geloof dat met mij nog niemand snapt hoe dit probleem kan bestaan maar dit is wel een zeer simpele workaround.
Zo simpel dat het een oplossing mag heten
Bedankt!

(maar wonderlijk blijft het!:p)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan