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

Venster scrollen met VBA

Status
Niet open voor verdere reacties.
Met of zonder de rijen 10:15 verborgen het blijft AO.
 
Met of zonder de rijen 10:15 verborgen het blijft AO.

Bij mij niet :-(
Hetzelfde probleem als ik de code met Auto_Open in een module plaats ipv in ThisWorkbook.

Het lijkt er op dat zodra de cursor buiten het actieve scherm verplaatst moet worden om de cel te markeren deze fout optreedt. Zie schermafdruk.
Werk jij met een desktop met een andere schermgrootte / resolutie ? Mogelijk moet je dan wat rijen toevoegen om het probleem te ontdekken ???

FS-2017-03-17_204919.jpg

Ik gebruik Windows 7 Pro - Excel 2010 32 bits NL volledig bijgewerkt muv beveiligingsupdate voor Microsoft Excel 2010 (KB3178690) 32-bits versie
Deze heb ik moeten dé-ïnstalleren vanwege problemen met macro's maar het probleem manifesteerde zich ook al daarvoor.
 
W10-2007, maar dit soort codes werken in elk versie.
Welke waarde heeft "wk" als je met F8 de code doorloopt?
 
Druk met F8 nog één keer, en bekijk dan de waarde eens.
 
Druk met F8 nog één keer, en bekijk dan de waarde eens.

Met F8 krijg ik geen waarde te zien.
Als ik met de cursor boven wk ga staan komt de waarde wk=11 (aantal rijen verborgen - kalenderbeeld OK
Met alle rijen zichtbaar krijg ik geen waarde te zien. (kalenderbeeld NOK)

FS-2017-03-17_211208.jpg
 
Als wk 11 is dan is dat kolom AV - 7 = AO.

Begrijp niet wat er fout gaat als je rijen verbergt?
Je verbergt toch zeker niet rij 3?
 
Als wk 11 is dan is dat kolom AV - 7 = AO.

Begrijp niet wat er fout gaat als je rijen verbergt?
Je verbergt toch zeker niet rij 3?

Heb de tests nogmaals gedaan en zie nu wk=0 voor zowel bij alle rijen als ca 5 stuks activiteiten verborgen (dus rijen vanaf rij 7)
Als ik rijen verberg gaat het juist goed - is het kalenderscherm OK en zie ik ook de blauwe verticale kolom (vandaag)
 
wk heeft met rij 3 van doen, zoek daar in.
Kolombreedte goed genoeg zodat 11 goed zichtbaar is?
 
wk heeft met rij 3 van doen, zoek daar in.
Kolombreedte goed genoeg zodat 11 goed zichtbaar is?

Jep. Ik heb ze als controle allemaal verbreed, zonder resultaat.
De plaats van de jongste datum in kolom blijft cruseaal voor een juiste werking.
 
Als ik de offset code wijzig van:
Code:
       Application.Goto .Rows(3).Find(wk, , xlValues, xlWhole).Offset(3, -7), True
in bijvoorbeeld
Code:
       Application.Goto .Rows(3).Find(wk, , xlValues, xlWhole).Offset(13, -7), True
gaat het voor een aantal toegevoegde rijen wel goed maar ken de gevolgen niet voor de rest.

Aanvulling:
Als ik weer een aantal rijen invoeg gaat die oplossing ook weer mank.
 
Laatst bewerkt:
Loop de code nogmaals door met F8, en kijk of het venster verschuift naar AO.
Het zit niet in de datum in kolom D, want daar wordt geen "scroll = true gebruikt in de code.

Nogmaals, hier werkt het bestand uit #47 goed.
 
Met zowel fout en goed kalenderbeeld wk=0
De eerder gemelde wk=11 heb ik niet meer kunnen reproduceren.
 
Wat zijn de handelingen die je doet zodat ik dat verschijnsel kan reproduceren.
 
Met de stap scrollt het venster naar de juiste plek (wk 10)
Code:
    Else
       Application.Goto .Rows(3).Find(wk, , xlValues, xlWhole).Offset(3, -7), True
    End If
en met
Code:
   Application.Goto c
   Else
     Application.Goto .Range("B7")
  End If
springt het venster naar kolom F (wk 5)
 
Wat zijn de handelingen die je doet zodat ik dat verschijnsel kan reproduceren.

Met het bestand in #47
1. Alle rijen met activiteiten 1 t/m 24 zichtbaar -maar op mijn scherm 1 t/m 18 zichtbaar als omhoog gescrolled
2. Macro runnen door activeren van ster.
Gevolg 1e zichtbare week is 05, blauwe kolom vandaag is uit beeld.

3. rijen 16 t/m 25 verbergen
4. Macro runnen
Gevolg 1e zichtbare week is 10 en blauwe kolom vandaag in het midden ven het rechter venster.
 
Vreemde zaak.

Misschien dat iemand anders het probleem ook heeft, en die achterhalen kan waar het probleem zich voordoet.

Ik kan je niet verder helpen.
Aan de code ligt het niet.

Kort uitgelegd:
Zoek de weeknummer in rij 3, ga 3 cellen naar onderen en 7 naar links en scroll het venster daar naar toe (de drie cellen naar onderen is hierin in principe overbodig).
Zoek dan de datum in kolom D (niet scrollen).

Meer is het niet.
 
Vreemde zaak.

Misschien dat iemand anders het probleem ook heeft, en die achterhalen kan waar het probleem zich voordoet.

Ik kan je niet verder helpen.
Aan de code ligt het niet.

Kort uitgelegd:
Zoek de weeknummer in rij 3, ga 3 cellen naar onderen en 7 naar links en scroll het venster daar naar toe (de drie cellen naar onderen is hierin in principe overbodig).
Zoek dan de datum in kolom D (niet scrollen).

Meer is het niet.

Harry,
Jammer maar toch heel veel dank voor je inspanningen. :thumb:
 
Ik kan concluderen dat het geschetste probleem te maken heeft met schermgrootte / resolutie.
Het probleem verdwijnt als ik de beeldzoom verklein van 100% naar b.v. 80% -afhankelijk van het aantal rijen in het zoekgebied.
Zolang de geselecteerde datum binnen het "zichtveld" van het scherm bevindt gaat het goed. Zodra buiten het "zichtveld" gaat het mis.
Coderegels 10 t/m 100 runnen goed.
Uitschakelen van coderegels 110 t/190 heeft als gevolg dat de cursor cel AO6 selecteert na runnen 10 t/m 100
Code:
Sub Workbook_Open()

10  Dim lLaatsteRij As Long
20  Dim wk As Long

30  wk = DatePart("ww", Date, vbMonday, vbFirstFourDays)
40  With Sheets("Planning")
50     Columns("D:E").ColumnWidth = 8.12
60    If .Range("F3") = wk Then
70       Application.Goto .Range("F7"), True
80    Else
90      Application.Goto .Rows(3).Find(wk, , xlValues, xlWhole).Offset(3, -7), True
100   End If
    
110   lLaatsteRij = Range("A7").End(xlDown).Row
120   Set c = .Range("D7:D" & lLaatsteRij + 1).Find(CDate(Application.Min(.Range("D7:D" & lLaatsteRij + 1))))
130   If Not c Is Nothing Then
140     Application.Goto c
150    Else
160      Application.Goto .Range("B7")
170   End If

180  End With

190 End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan