Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel] Automatisch nieuwe rijen toevoegen

Pagina: 1
Acties:

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 30-11 13:47
De situatie
Een excelbestand waar een administratie in bij wordt gehouden. Hier worden op een van de werkblad vershillende facturen op ingevuld. Op deze facturen worden verschillende checks uitgevoerd met formules.

Het probleem
De ene keer zijn er 10 facturen, de andere keer honderden. Op het moment dat ik in de template alvast honderden rijen aanmaak is dat nutteloos voor de keren dat er maar weinig facturen zijn. Daarnaast wordt de Excel en groot van en langzaam (er zit oa een link naar een ander Excel bestand in om wisselkoersen te berekenen, als dat honderden keren moet gebeuren kosten dat enkele seconden).

Het doel
In de ideale situatie komt er elke keer dat een regel volledig ingevuld is een nieuwe regel bij, door een soort van Macro die op de achtergrond draait (of VB script, of hoe dan ook..).
Alternatief: een Macro die 10 extra regels toevoegt.

Ik heb al gegoogled, maar kan niet echt iets vinden dat hier op lijkt. Je komt dan meer bij de handleidingen van cellen selecteren en kopiëren uit, iets dat niet echt praktisch werkt, voor alle gebruikers.
Daarnaast moeten de formules in de nieuwe regels goed gekopieerd worden, dus geen statische data.. ook dat maakt het lastiger.

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • pedorus
  • Registratie: Januari 2008
  • Niet online
Implementeer de volgende functie op de juiste sheet:
Visual Basic:
1
2
3
Private Sub Worksheet_Change(ByVal Target As Range)
    'iets dat je prima deels met de macrorecorder kan maken.
End Sub


Maar eigenlijk is natuurlijk gek om zo'n administratie in Excel te gaan maken.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 30-11 13:47
Over administratie e Excel, tja er zijn betere manieren, maar het is wel lekker flexibel om het makkelijk aan je eigen smaak aan te pssen..

Kun je deze functie misschien een klein beetje toelichten?
De macro die ik krijg is ongeveer
code:
1
2
3
    Rows("2:2").Select
    Selection.Copy
    Selection.Insert Shift:=xlUp

Zorgt jouw stukje VB ervoor dat de cursor op de goede plek komt te staan? En hoe roep je een VB-script aan?

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • pedorus
  • Registratie: Januari 2008
  • Niet online
Mijn code doet 3x niks, maar wordt wel automatisch aangeroepen als je hem niet in "Module1", maar in de Sheet zet. Ik heb wel een voorbeeldje anders, met in kolom A de in te vullen waardes, en in B:D de formules:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Function IsEmptyRange(r As Range) As Boolean
    IsEmptyRange = (WorksheetFunction.CountA(r) = 0)
End Function

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Integer, nr As Integer, r As Range
    For i = 1 To Target.Areas.Count
        If Target.Areas(i).Column = 1 And Not IsEmptyRange(Target.Areas(i)) Then
            nr = Target.Areas(i).Row
            For nr = WorksheetFunction.Max(nr, 3) To nr + Target.Areas(i).Rows.Count
                Set r = Range("B" & nr & ":D" & nr)
                If IsEmptyRange(r) Then
                    Range("B2:D2").Copy r
                End If
            Next nr
        End If
    Next i
End Sub

Het nadeel van deze methode is wel dat de history van undo en de inhoud van het clipboard verdwijnt. (Ik weet daarvoor geen oplossing.)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten