Lege "invoer" rij in excel tabel

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • bram2488
  • Registratie: Juni 2009
  • Laatst online: 01-10 21:48
Mijn vraag

Kan ik in Excel een "invoer" rij maken?

Bijvoorbeeld op rij 3 een lege rij waarin je data invoert
Bij een nieuwe invoer verspringt de zojuist ingevulde data naar beneden en komt daarboven de nieuwe data.

De reden dat ik dit wil is omdat ik niet de hele tijd naar beneden wil scroller voor een nieuwe invoer. Wellicht is hier een veel simpelere methode voor?

Nu heb ik het zelf opgelost met een knop waarbij er een rij wordt toegevoegd op een zelf vrij in te vullen rij.

De code voor de knop:
code:
1
2
3
4
5
6
7
Private Sub CommandButton1_Click()
    Dim rowNum As Integer
    On Error Resume Next
    rowNum = Application.InputBox(Prompt:="Enter Row Number where you want to add a row:", _
                                    Title:="Kutools for excel", Type:=1)
    Rows(rowNum & ":" & rowNum).Insert Shift:=xlDown
End Sub



Wat ik zou willen is ofwel de knop automatisch op rij 3 een nieuwe rij laten maken ipv zelf in te vullen. Of de bovenste rij na invoer automatisch laten verspringen naar beneden (waarvan ik niet weet of er zoiets bestaat in excel)

Mijn kunde in excel is niet groot maar ben al heel ver middels het tweakers forum gekomen :)


Relevante software en hardware die ik gebruik
Excel

Screenshot van mijn excelletje:

Afbeeldingslocatie: https://tweakers.net/i/-jaQRpYgO0rUe3YTKAz9ePvuuxo=/800x/filters:strip_icc():strip_exif()/f/image/w3Tj4hZqeVqPW5lSsa0mCyJh.jpg?f=fotoalbum_large

Beste antwoord (via bram2488 op 05-12-2022 13:54)


  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Als je de code voor CommandButton1 wijzigt in de code die hieronder staat, dan wordt de eerste rij met gegevens gekopieerd naar de eerste lege rij onder de bestaande gegevens, en wordt die eerste rij met gegevens gewist, zodat je daar nieuwe gegevens in kunt plaatsen. Als ik je goed begrepen heb, is het dat wat je wil.
code:
1
2
3
4
5
6
7
8
9
Private Sub CommandButton1_Click()
Dim fr As Integer, lr As Integer
fr = Range("a1").End(xlDown).Row
lr = Range("a" & Rows.Count).End(xlUp).Row
With Rows(fr)
.Copy Destination:=Rows(lr + 1)
.ClearContents
End With
End Sub

Als de eerste rij altijd rij 3 is, dan kun je (uiteraard) de code beperken tot:
code:
1
2
3
4
5
6
7
8
Private Sub CommandButton1_Click()
Dim lr As Integer
lr = Range("a" & Rows.Count).End(xlUp).Row
With Rows(3)
.Copy Destination:=Rows(lr + 1)
.ClearContents
End With
End Sub

[ Voor 20% gewijzigd door dix-neuf op 05-12-2022 13:53 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Emperor
  • Registratie: Oktober 2010
  • Laatst online: 01-10 07:26
Je kunt een macro ook koppelen aan workbook_change, maar ik denk dat je dan niet krijgt wat je wilt.
Je zult op een of andere manier moeten aangeven wanneer een regel klaar is, anders zal hij hem al vernieuwen zodra het eerste veld (A3) is ingevuld.
Denk dat je knop verreweg het simpelste is, alle andere opties worden nodeloos complex met een groot risico op ongewenst gedrag (mij inziens)

Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Als je de code voor CommandButton1 wijzigt in de code die hieronder staat, dan wordt de eerste rij met gegevens gekopieerd naar de eerste lege rij onder de bestaande gegevens, en wordt die eerste rij met gegevens gewist, zodat je daar nieuwe gegevens in kunt plaatsen. Als ik je goed begrepen heb, is het dat wat je wil.
code:
1
2
3
4
5
6
7
8
9
Private Sub CommandButton1_Click()
Dim fr As Integer, lr As Integer
fr = Range("a1").End(xlDown).Row
lr = Range("a" & Rows.Count).End(xlUp).Row
With Rows(fr)
.Copy Destination:=Rows(lr + 1)
.ClearContents
End With
End Sub

Als de eerste rij altijd rij 3 is, dan kun je (uiteraard) de code beperken tot:
code:
1
2
3
4
5
6
7
8
Private Sub CommandButton1_Click()
Dim lr As Integer
lr = Range("a" & Rows.Count).End(xlUp).Row
With Rows(3)
.Copy Destination:=Rows(lr + 1)
.ClearContents
End With
End Sub

[ Voor 20% gewijzigd door dix-neuf op 05-12-2022 13:53 ]


Acties:
  • 0 Henk 'm!

  • bram2488
  • Registratie: Juni 2009
  • Laatst online: 01-10 21:48
dix-neuf schreef op maandag 5 december 2022 @ 13:46:
Als je de code voor CommandButton1 wijzigt in de code die hieronder staat, dan wordt de eerste rij met gegevens gekopieerd naar de eerste lege rij onder de bestaande gegevens, en wordt die eerste rij met gegevens gewist, zodat je daar nieuwe gegevens in kunt plaatsen. Als ik je goed begrepen heb, is het dat wat je wil.
code:
1
2
3
4
5
6
7
8
9
Private Sub CommandButton1_Click()
Dim fr As Integer, lr As Integer
fr = Range("a1").End(xlDown).Row
lr = Range("a" & Rows.Count).End(xlUp).Row
With Rows(fr)
.Copy Destination:=Rows(lr + 1)
.ClearContents
End With
End Sub

Als de eerste rij altijd rij 3 is, dan kun je (uiteraard) de code beperken tot:
code:
1
2
3
4
5
6
7
8
Private Sub CommandButton1_Click()
Dim lr As Integer
lr = Range("a" & Rows.Count).End(xlUp).Row
With Rows(3)
.Copy Destination:=Rows(lr + 1)
.ClearContents
End With
End Sub
Werkt! Bedankt (alweer ;))

Acties:
  • +1 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 04-10 11:14
bram2488 schreef op maandag 5 december 2022 @ 13:06:
De reden dat ik dit wil is omdat ik niet de hele tijd naar beneden wil scroller voor een nieuwe invoer. Wellicht is hier een veel simpelere methode voor?
CTRL-PIJLTJEOMLAAG. Spring je in één keer naar beneden.

Is denk ik toch minder werk dan macro's bouwen die standaard gedrag proberen te omzeilen...