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

Automatisch regels toevoegen na druk op knop

Status
Niet open voor verdere reacties.

gielkleinjan

Gebruiker
Lid geworden
8 okt 2019
Berichten
17
Goede avond,

Ik heb een Excel bestand waar ik de resultaten van een enquete in wil bijhouden. In het blad zitten dus tellingen en berekeningen. Per project waarvan we de enquetes willen invullen zijn het aantal adressen anders. Ik wil voorkomen dat mensen op een verkeerde manier regels toevoegen waarbij de formules niet correct worden gekopieerd.

wat zou ik dus willen:
1_een formulier besturingselement knop toevoegen met titel "Adressen toevoegen"
2_als op de knop wordt gedrukt een menu met een vraag "Hoeveel adressen wilt u toevoegen?"
3_na opgave van het aantal adressen wil ik dat er een lege adresregel met formules wordt gekopieerd en zo vaak wordt ingevoegd als in de vraag hierboven is ingevuld.

Weten jullie of dit mogelijk is? ik kan me aardig redden met knoppen en macro's, maar een popup scherm met een vraag is nieuw voor mij.

Ik hoor graag.

Groeten Giel
 
Beste,

Heb je zelf al een vba-code geschreven die een vast aantal regels invoegt? Zo ja, graag een voorbeeldbestand ontdaan van persoonlijke gegevens.
 
Hier een voorbeeld waarbij je vanaf rij 9 een bepaald aantal rijen wilt invoegen.
 

Bijlagen

Met popupscherm. Hoe het verder in elkaar steekt mag je nog even uitleggen.

Code:
Sub VenA()
  y = Application.InputBox("hoeveel rijen", "Invoegen", , , , , , 1)
  If IsNumeric(y) Then Rows(ActiveCell.Row).Resize(y).Insert
End Sub
 
Bedankt voor jullie snelle hulp.

Met het tekstbestandje van Jveer lukt het mij al bijna. ik wil alleen geen rijen toevoegen maar kopieren, zodat ook mijn opmaak en formules meegaan.

dus eigenlijk de volgende werking:
-kopieer regel 9 en 10 (ivm opmaak om en om grijs / wit arcering)
-dan het popup menu "hoeveel rijen inkopieren"
-aantal toe te voegen rijen inkopieren (gedeeld door 2 ivm 2 regels kopieren) onder regel 10
 
Gebruik een echte tabel. Dan heb je helemaal geen macro nodig.
 
Maak anders even een voorbeeldbestandje
 
@Emields:

ja ongeveer. maar:
-bij het invoegen van kleine aantallen adressem gaat het goed, maar zodra ik bijvoorbeeld "30" invul, dan worden de onderste totaaltelling regels enkele kolommen verder geplaatst en niet onder het laatste adres.
-er komt nu om en om een witregel en een adresinvulregel na het drukken op de knop en invullen van het aantal regels. dit is niet de bedoeling. elke rij in het bereik van de totaaltellingen is een adresregel. alleen in onze huisstijl van documenten is geregeld dat we niet met kolom en rij belijning werken maar om en om witte en grijze regels. daarom de vraag om de 2 regels (de witte en de grijze adresregel) te kopieren en in te kopieren zodat het wit-grijs-wit-grijs gehandhaafd blijft.
 
@emields

ik was nog een beetje aan het testen met het bestand en nu kom ik er achter dat er wat vreemds gebeurd. Als ik op de knop druk om regels toe te voegen, en ik geef een oneven waarde op, dan worden altijd slechts 2 adressen toegevoegd. dus voer ik a=33 in dan voegt hij 2 adressen toe. bij alle even getallen werkt alles naar behoren.

heb jij een idee hoe dit is op te lossen?
 
Met deze kleine aanpassing moet het werken

Code:
Private Sub CommandButton1_Click()
 a = InputBox("Vul aantal in", "Hoeveel adressen toevoegen?")
    If IsNumeric(a) = True Then
        With [A10]
           .Resize([COLOR="#FF0000"][B]1[/B][/COLOR], 26).Copy
           .Offset(2).Resize(a, 26).Insert , CopyOrigin:=xlFormatFromAbove
        End With
        Application.CutCopyMode = False
    Else
         MsgBox " er was geen aantal addressen ingevuld"
         Exit Sub
    End If
End Sub
 
Als je een copy doet van twee rijen die om en om gekleurd zijn, en je zou een oneven aantal rijen toevoegen, zal je twee gekleurde rijen boven elkaar krijgen.

Wees slim en gebruik een Listobject (tabel).
 
Gebruik een tabel. De code kan dan gereduceerd worden tot zoiets:

Code:
Private Sub CommandButton1_Click()
  x = Application.InputBox("hoeveel rijen", "Invoegen", , , , , , 1)
  For j = 1 To x
    ActiveSheet.ListObjects(1).ListRows.Add 1
  Next j
End Sub

Even de stijl van de tabel aanpassen naar de huisstijl en klaar ben je.

Edit. Zie ook de reactie van de vorige schrijver.
 

Bijlagen

Laatst bewerkt:
Of:
Code:
Private Sub CommandButton1_Click()
  x = Application.InputBox("hoeveel rijen", "Invoegen", , , , , , 1)
  ListObjects(1).ListRows.Add(3).Range.Resize(x - 1).Insert
End Sub

Of:
Code:
Private Sub CommandButton1_Click()
  x = Application.InputBox("hoeveel rijen", "Invoegen", , , , , , 1)
   ListObjects(1).DataBodyRange.Rows(3).Resize(x).Insert
End Sub

Of:
Code:
Private Sub CommandButton1_Click()
With ListObjects(1)
  x = Application.InputBox("hoeveel rijen", "Invoegen", , , , , , 1)
   .Resize .Range.Resize(.ListRows.Count + x + 1)
 End With
end sub
 
Laatst bewerkt:
Oeps, ik zag dat ik nog niet had gereageerd. Het is me gelukt!!

super bedankt voor al jullie hulp
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan