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

script invulblad aanvullen aan overzicht

Status
Niet open voor verdere reacties.

moensk

Gebruiker
Lid geworden
23 jun 2013
Berichten
784
ik heb een invulblad en wil telkens wanneer deze gevuld is via een knop de gegevens laten toevoegen aan een overzichtsblad op de eerste volgende vrije rij.
iemand een script hiervoor.
in bijlage een klein voorbeeld.
 

Bijlagen

Dit achter de knop:
Code:
Sub CommandButton1_Click()
    With Sheets("overzicht bestellingen")
        Regel = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
        .Cells(Regel, 1) = Range("B3")
        .Cells(Regel, 2) = Range("B4")
        .Cells(Regel, 3) = Range("B5")
        
        Kolom = 2
        For i = 7 To 21
            Kolom = Kolom + 2
            .Cells(Regel, Kolom) = Cells(i, 2)
            .Cells(Regel, Kolom + 1) = Cells(i, 3)
        Next i
    End With
End Sub
 
Of:
Code:
Sub hsv()
  With Sheets("overzicht bestellingen").Cells(Rows.Count, 1).End(xlUp)
    .Offset(1).Resize(, 3) = [transpose(invulblad!b3:b5)]
    .Offset(1, 3).Resize(, 30) = Split(Join([transpose(invulblad!b7:b21&"|"&invulblad!c7:c21)], "|"), "|")
  End With
End Sub
 
ik heb een tabblad bijgemaakt waarin hij "totalen" maakt ( een overzicht voor de bestellingen)
ik merk dat hierdoor het wegschrijven van "invulblad" naar "overzicht bestellingen" veel trager verloopt
zonder tabblad "totalen" was dit fractie van een seconde nu 2 seconden..
wat kan ik hier aan doen ?
voorbeeld in bijlage
 

Bijlagen

Het komt door je formules in tabblad 'Totalen' die verwijzen naar tabblad 'Overzicht bestellingen' en alles over gehele kolommen (H:H i.p.v. bijvoorbeeld H4:H1000).
Onderstaande code vind ik zeer snel zonder al die verwijzingen.

Code:
Sub CommandButton1_Click()
  With Sheets("overzicht bestellingen").Cells(Rows.Count, 1).End(xlUp)
    .Offset(1).Resize(, 3) = [transpose(b3:b5)]
    .Offset(1, 3).Resize(, 34) = Split(Join([transpose(b8:b25&"|"&c8:c25)], "|"), "|")
  End With
 Range("b3:b5,b8:c25").ClearContents
end sub

Nog een andere methode om te vergelijken.
Code:
Sub CommandButton1_Click()
Dim sv, sq(0, 36), i As Long, x As Long
sv = Range("b3:c25")
 sq(0, 0) = sv(1, 1)
 sq(0, 1) = sv(2, 1)
 sq(0, 2) = sv(3, 1)
   For i = 8 To UBound(sv) + 1
      sq(0, x + 3) = sv(i - 2, 1)
      sq(O, x + 4) = sv(i - 2, 2)
     x = x + 2
   Next i
  Sheets("overzicht bestellingen").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 37) = sq
 Range("b3:b5,b8:c25").ClearContents
End Sub
 
Misschien de matrixformules eens vervangen door.
in C2
PHP:
=SOM.ALS('OVERZICHT BESTELLINGEN'!$D$4:$D$1000;C$1;'OVERZICHT BESTELLINGEN'!$E$4:$E$1000)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan