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

Regel hidden maken

Status
Niet open voor verdere reacties.

caffie

Gebruiker
Lid geworden
2 jan 2008
Berichten
291
ik heb een rooster in elkaar gepuzzeld


ik ben opzoek naar eenmarco in VB
die elke keer als ik de macro start de regels
moet hij een aantal regels verbregen
1e ker
11,22,33 ,44 t/m 132 verbergen
Start ik weer de macro 2e keer
dan verberg de volgende regels
12,23,34,45 t/m 133
enz

Als ik dus 7 de macro heb gestart heeft hij alle regels hidden gemaakt




Dan is het de bedoeling dat hij bij 8 keer dat ik de macro axtiveer de regels dus weer omgekeer laat zien
tot alle verborgenregels weer zichtbaar zijn.




ik had het volgende bedacht

Sub hiddenregel()

Dim rg As Integer
Dim regel As Integer
Dim regeltje As Integer

rg = Cells(9, 1).Value hier staat dan de teller


Rows(11 + rg).Hidden = True
Rows(22 + rg).Hidden = True
Rows(33 + rg).Hidden = True
Rows(44 + rg).Hidden = True
Rows(55 + rg).Hidden = True
Rows(66 + rg).Hidden = True
Rows(77 + rg).Hidden = True
Rows(88 + rg).Hidden = True
Rows(99 + rg).Hidden = True
Rows(110 + rg).Hidden = True
Rows(121 + rg).Hidden = True
Rows(132 + rg).Hidden = True



Cells(9, 1) = rg + 1
If Cells(9, 1).Value >= 8 Then
Cells(9, 1) = ""
End If
End Sub



dat werkt wel voor het verbergen maar nu moeten de regels ook weer zichtbaar worden

Iemand een goed tip
 

Bijlagen

Test dit eens.
Code:
Sub hsv()
Dim i As Long
  For i = 11 + Cells(9, 1).Value To 143 Step 11
   Rows(i).Hidden = Not Rows(i).Hidden
  Next i
Cells(9, 1) = IIf(Cells(9, 1) < 8, Cells(9, 1) + 1, 0)
End Sub
 
Laatst bewerkt:
prachtig

werk als een speer

ga alleen nog even zoeken hoe ik het kan omdraaien

dus laatste regels als eerste hidden
dus regel 18 dan 17 enz

en bij zichtbaar maken de eerste regels als eerste zichtbaar maken
11 , 12 enz

tot zo ver bedankt
 
nettere code

ik heb er dit van gemaakt

Dim i As Long
For i = 19 - Cells(2, 1).Value To 143 Step 11
Rows(i).Hidden = Not Rows(i).Hidden
Next i
If Cells(1, 1) = 1 Then
'terug tellen
If Cells(2, 1) - 1 < 0 Then
Cells(1, 1) = 0
Else
Cells(2, 1) = Cells(2, 1) - 1
End If
Else
'optellen
If Cells(2, 1) + 1 > 8 Then
Cells(1, 1) = 1
Else
Cells(2, 1) = Cells(2, 1) + 1
End If
End If

iemand een nettere code
liefts zonder dat er data naar de sheet geschreven hoeft te worden
dus alles binnen vb afhandelen
 
Laatst bewerkt:
Test het maar eens weer.
Code:
Sub hsv()
Dim i As Long
Cells(2, 1) = IIf(Cells(1, 1) > 0, Cells(2, 1) + 1, 0)
Cells(1, 1) = IIf(Cells(2, 1) + 1 > 8, 0, 1)
  For i = 19 - Cells(2, 1).Value To 143 Step 11
   Rows(i).Hidden = Not Rows(i).Hidden
  Next i
End Sub
 
prachtig hoe je bijna 20 regels weet weg te werken naar een stuk of 6


er zit alleen een klein foutje in


in deze code haal hij de laatste regel als eerste weg
Dat klopt (dat deed mijn code ook )
maar bij het opbouwen doet hij dus ook de laatse regel het eerst
Deze had ik aangepast
zodat bij mijn code de eerste regel als eerst zichtbaar maak daarna de tweede en derde enz...


u code loopt van 8 t/m 1 (hidden) en daarna weer 8 t/m 1 (zichtbaar)


mijn code loopt van 8 t/m 1 (hidden) en daarna van 1 t/m 8 (zichtbaar)

ik wist alleen niet hoe ik terug moest tellen vandaar dat ik er een 2e waarde bij heb gehaald
mooi zou zijn als deze waardes niet nodig zijn in de excel sheet (maar alles binnen vb wordt afgehandeld)
Maar zo ver ben ik nog niet








ik ga er ff mee puzzelen kijken of ik het begrijp

toch vast bedankt
 
Laatst bewerkt:
Ik zou gewoon jouw code gebruiken.
Van de mijne wordt je ook niet vrolijk ondanks die paar regels minder.

Code:
Sub hsv()
Dim i As Long
Cells(1, 1) = IIf(Cells(2, 1) Mod 9 = 1, False, IIf(Cells(2, 1) Mod 10 >= 9 Or Cells(1, 1) = True, True, False))
Cells(2, 1) = IIf(Cells(1, 1), IIf(Rows(11).Hidden, 9, Cells(2, 1) - 1), IIf(Rows(19).Hidden = False, 1, Cells(2, 1) + 1))
  For i = 20 - Cells(2, 1).Value To 143 Step 11
   Rows(i).Hidden = Not Rows(i).Hidden
  Next i
End Sub
 
Dank u wel.

Als was het alleen maar om ervan te leren
Er gaan altijd meerdere wegen naar Rome
En een andere invals hoek kan nooit kwaad

wederom bedankt


Rob
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan