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

Regelhoogtes Excel automatisch

Status
Niet open voor verdere reacties.

Corsair

Gebruiker
Lid geworden
12 mrt 2019
Berichten
13
Beste,

In een excelsheet (ik heb geen voorbeeld helaas) zou ik graag door middel van een keuze (gegevensvalidatie) extra regels willen toevoegen/verwijderen.
Op dit moment dat ik in een cel ja of nee kies, komt er een tekst in de lege cellen te staan (formule =als(cel=1;"Ja";"Tekst";"").

Echter dit brengt een probleem met zich mee dat er of enorme lege vlaktes komen wanneer je dit niet gebruikt.

Is het mogelijk om via een formule de regelhoogtes automatisch aan te passen?
B.v. dat wanneer er nee gekozen word de regelhoogte 0 word, en wanneer er ja gekozen word de regelhoogtes aangepast worden
naar normaal? En dat daarbij andere regels 0 worden om de pagina te compenseren?
Of kan dat alleen met VBA? En wat is dan de code?

Alvast bedankt!

Groet
 
Plaats even een voorbeeld met een heldere uitleg wat de bedoeling is. Van de vraag begrijp ik niet zoveel.
Op dit moment dat ik in een cel ja of nee kies, komt er een tekst in de lege cellen te staan (formule =als(cel=1;"Ja";"Tekst";"").

Welke cel?
 
Deze formule bevat teveel argumenten en zal derhalve ook niet werken.
(formule =als(cel=1;"Ja";"Tekst";"")
 
Beste,

Zie bijgevoegd, primitief voorbeeldje. Ik kan in cel B3 een keuze maken tussen ja en nee.
Bij keuze nee is geen tekst zichtbaar in rij 10, maar bij keuze ja komt de tekst tevoorschijn.
Ik heb hiervoor formule =ALS(B3="Ja";"Tekst";"") gebruikt.

Is het ook mogelijk om bij de keuze van nee de regelhoogte(s) automatisch aan te passen naar
0 en bij keuze ja naar 15,00 te laten gaan in een formule of is hiervoor VBA benodigd?

Bij de eerste optie moet ik elke cel formuleren en hou ik de cellen op de originele hoogte waardoor
hetgeen ik wil maken 20 pagina's is, met de tweede optie hoop ik dit in te korten naar 10 pagina's
tenzij men een keuze maakt voor anders.

Ik hoop dat ik het zo een beetje duidelijk uitgelegd heb

Alvast bedankt!
 

Bijlagen

Het voorbeeld is wel erg summier. De rijhoogte kan je alleen met VBA aanpassen.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address(0, 0) = "B3" Then Rows(10).RowHeight = -15 * (Target = "Ja")
End Sub
 
Beste VenA,

Dat begrijp ik, maar de sheet waar ik in werk staat vertrouwelijke info in en kan ik niet delen.

Kunt u mij zeggen of ik in de code de regels die eventueel vergroot en verkleind moeten worden
kan invullen? B.v. regel 1,5,6,10 en 19?

Ik zal proberen vandaag of morgen een duidelijker voorbeeld te maken.

Alvast bedankt!
 
Voortbordurend op de code van VenA voor de rijen 1,5,6,10,19

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ar
ar = Array(1, 5, 6, 10, 19)
    For j = 0 To UBound(ar)
        If Target.Address(0, 0) = "B3" Then Rows(ar(j)).RowHeight = -15 * (Target = "Ja")
    Next j
End Sub
 
Beste,

Het Excelsheet van Emields werkt. Kan deze code ook uitgebreid worden dat als die regels "vergroot" worden, andere naar 0 gaan en andersom?
Immers als met "ja" kiest komen er regels van 15,00 bij, maar moet alles wel printbaar op de zelfde pagina komen dus moeten overige regels
verkleind worden en andersom uiteraard.
 
Sorry, ik ben niet zo bekend met VBA. Maar volgens mij werkt het nu andersom.

Standaard heb ik een formulier met een aantal regels. Keuze staat op "nee". In de rijen staat een tekst.
Elke rij die naar 15,00 moet (door keuze aan te klikken "ja") (ingevuld en wel) op
0. Daarbij moeten lege rijen die niet gebruikt worden naar 0 gaan om de pagina
op 1 vel te houden.

Ik hoop dat ik het zo een beetje goed uitleg. Zal morgen even een goed voorbeeld meesturen.

Alvast bedankt!
 
plaats dan tenminste een voorbeeld die aan de realiteit voldoet .
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan