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

Scroll area vergroten na toevoegen nieuwe regel

Status
Niet open voor verdere reacties.

shalhevet

Gebruiker
Lid geworden
9 okt 2007
Berichten
245
Goededag beste leden van deze forum,

In Excel heb ik een bestandje gemaakt waarbij regels zijn van A1 tot O37.

Wanneer ik in cel A37 sta wordt met behulp van een vba code automatisch een nieuwe regel toegevoegd (A38).

Nu wil ik de mogelijkheid van scrollen blokeren. Dat doe ik door de volgende code te gebruiken:

Code:
Private Sub Workbook_Open()

Sheets("Index").Scrollarea = "A1:J16"
Sheets("January").Scrollarea = "A1:O45"

    Dim Aantal As Integer
    Dim I As Integer

    Aantal = ActiveWorkbook.Worksheets.Count

    For I = 1 To Aantal
        If ActiveWorkbook.Sheets(I).Name <> "Index" Then
            ActiveWorkbook.Sheets(I).Visible = False
        End If
    Next I
    
End Sub

Dat werkt prima maar.... wanneer ik een nieuwe regel toevoeg (A38, A39 enz) wil ik dat de scroll area ook automatisch groter wordt.

Kan iemand mij helpen met het aanpassen van mijn code?

Mijn dank is zeer groot
 
Zeer waarschijnlijk onder Worksheet_Change en dan even het bereik mee laten lopen met de laatst gebruikte rij.
 
Scroll area - graag meer info

VenA,

Dank u voor de reactie. Kunt u mij meer uitleg geven hoe dat moet? een voorbeeld van de code?

Alvast bedankt voor alle hulp
 
Geef het toegelaten bereik een naam:
Code:
Private Sub Workbook_Open()
   Worksheets(1).ScrollArea = "werkbereik"
End Sub
 
Kijk bij de hulpbetanden van de VBEditor eens bij het lemma 'currentregion'; of onderzoek de eigenschappen van een tabel (Excel .2003).
 
Maak er zoiets van

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Aantal As Integer
Dim I As Integer

With Sheets("Index")
  .ScrollArea = "A1:J" & .UsedRange.Rows.Count
End With
 
Code:
Sub M_snb()
    Sheets("Index").ScrollArea = Sheets("Index").cells(1).currentregion.resize(,10).address
End Sub
 
Omdat domme vragen niet bestaan en ik het ongetwijfeld zelf even kan proberen:D
Code:
.cells(1).currentregion.resize(,10).address

Wat is het verschil tussen currentregion en usedrange (In Nl Huidig gebied en gebruikt gebied)? En dan met name in de toepassing van het ene of het andere.
 
In currentregion staan aaneengelsoten gegevens (zonder lege rij of kolom) , de usedrange kan bestaan uit cellen zonder gegevens, maar met een bepaalde opmaak of notitie, formule, of zelfs cellen die leeg gemaakt zijn.
Je zult het verschil vooral zien als je gegevens vewrijdert en de scrollarea dus kleiner zou moeten worden.
 
Laatst bewerkt:
Dank voor je antwoord. Aangezien blijkbaar de meesten het bestaan van A1 niet weten maar het beste usedrange gebruiken:D
 
Laatst bewerkt:
Verklaar u naarder of lopen we nu weer iemands draadje te verstieren?
 
@ VenA

Dit kan je makkelijk zelf testen.
Selecteer A1:B50 en geef deze de opmaak Getal. Vul nu de range volledig met cijfers en draai onderstaande macro.
Verwijder nu de getallen uit bv A40:B50 en draai de macro opnieuw.
Ik denk dat daarmee je vraag beantwoord is.

Code:
Sub M_snb()

    MsgBox "UsedRange rows : " & Sheets("Index").UsedRange.Rows.Count & vbLf & _
        "CurrentRegion rows : " & Sheets("Index").Cells(1).CurrentRegion.Rows.Count

End Sub
 
@Warme bakkertje,
Het was even een tussendoor vraagje omdat ik even te "lui" was om het zelf uit te proberen. Maar natuurlijk dank voor het meedenken.
 
Scroll area vergroten

Hallo allemaal,

Ik heb alle opties welke door jullie zijn voorgesteld geprobeerd maar het lukt me niet.

Ik voeg een voorbeeld bestandje bij.

regels 12 tot 1000 zijn verborgen.

Wanneer datum in cel B11 wordt ingevoerd verschijnt regel B12 automatisch onder.

Nu wil ik een scroll area bepalen van A1:O14 maar.... wanneer ik O14 heb bereikt en een nieuwe regel onder werd toegevoegd wil ik dat het scroll bereik automatisch met dat ene regel wordt vergroot... en zo telkens een nieuwe regel toevoegen en de scroll area groeit automatisch mee.

Bekijk bijlage voorbeeld shalhevet.xlsm
 
Code:
Public Sub HideUnhideNextRow(MyCell As Range)

    If IsEmpty(MyCell) Then
        'Cel gewist
        'Wanneer het om een cel in kolom A gaat en de volgende rij is ook al leeg dan volgende rij terug hidden zetten
        If MyCell.Column = 2 And IsEmpty(MyCell.Offset(1, 0)) Then MyCell.Offset(1, 0).EntireRow.Hidden = True
    Else
        'Cel ingevuld met iets = volgende rij zichtbaar maken
        If MyCell.Offset(1, 0).EntireRow.Hidden = True Then
            MyCell.Offset(1, 0).EntireRow.Hidden = False
            MyCell.Offset(0, 1).Select
        End If
    End If
    Sheets("testblad").PageSetup.PrintArea = "A1:O" & MyCell.Row
End Sub
 
Volgens mij staan er wat mogelijk oplossingen in #6 en #7 deze kom ik niet tegen in jouw code. Dus misschien even aangeven wat je zoal geprobeerd hebt en wat er niet werkt. Je kan ook beter de samengevoegde cellen verwijderen. Wil ook nog wel eens problemen geven.

Edit een panklare oplossing van @Warme bakkertje (had ik niet gezien:thumb:) en dan hier verder gaan: http://www.helpmij.nl/forum/showthread.php/826011-vba-gebruiken-voor-het-invoegen-van-nieuwe-regel-met-behoud-van-opmaak-vorige-regel

Ik ben bang dat je het nu helemaal zelf mag uitvogelen.
 
Laatst bewerkt:
ik ben hiermee

Warme bakkertje - dank je wel voor deze code. Nu werkt het zoals ik het wil.

Ook de rest van de mensen die gereageerd hebben hartelijk dank voor alle moeite.

VenA - mijn andere topic gaat over dezelfde bestand maar de vraag is anders (zie ook mijn reactie daar).

De "panklare oplossing" van Warme bakkertje heb ik nu pas gezien. Het is niet mijn bedoeling om te "spammen" op deze forum maar juist om te leren!

Nogmaals bedankt iedereen die heeft geholpen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan