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

Waardes kopieren en op ander blad automatisch op eerste vrije rij plaatsen

Status
Niet open voor verdere reacties.

TempoWillem

Gebruiker
Lid geworden
8 okt 2015
Berichten
39
Hi kenners,
Dit is iets waar ik nog steeds niet achter ben, omdat oplossingen altijd anders werden dan mijn originele plan... Nu dan toch de vraag zo:

Ik heb een formulier met gegevens die worden ingevuld. Na het invullen worden de gegevens met een knopdruk via een macro naar een ander blad geschreven. Het is de bedoeling dat die gegevens worden omgezet naar de eerstvolgende vrije rij in een tabel en daarna uit het formulier worden gewist.

Dat wissen lukt me wel, maar het op de eerstvolgende lege rij plaatsen nog niet. Er is vast wel iemand van jullie die daar een mooie, simpele oplossing voor heeft.

Voorbeeldje met wat ik grofweg bedoel:
Oeps, mislukt... Volgende bericht!
 
Laatst bewerkt:
Waarom gebruik je dan niet blad 2 als invulblad?

Dan heb je geen macro nodig om deze gegevens weg te schrijven.
 
Er staat geen code in jouw voorbeeld.

De eerste lege cel kan bv zo
Code:
MsgBox Sheets(2).Columns(1).SpecialCells(2).Count + 1
 
Waarom gebruik je dan niet blad 2 als invulblad?

Dan heb je geen macro nodig om deze gegevens weg te schrijven.

Omdat dit uiteindelijk niet naar een ander blad gaat plaatsvinden maar naar een compleet ander bestand. Bovendien staat er op het formulier meer en moet dat simpel en overzichtelijk blijven, terwijl alle gegevens "bruikbaar" opgesomd moeten worden voor verdere verwerking.

Er staat geen code in jouw voorbeeld.

De eerste lege cel kan bv zo
Code:
MsgBox Sheets(2).Columns(1).SpecialCells(2).Count + 1

Dat klopt, ik heb er puur ingezet hoe het er uit moet zien omdat ik de juiste code voor het toevoegen per rij nog niet ken... Ik ga even kijken hoe ik met deze code uit de voeten kan... Dank voor de reacties tot zover!
 
Hoi,
Maak een invulformulier voor je gegevens zoals in bijgevoegd vbtje,
Gegevens worden netjes weggeschreven
Als je problemen hebt om formulieren te maken wil ik je wel helpen
Greetz
 

Bijlagen

@gast0660: Bedankt voor je idee. Helaas kan ik daar zo niet direct iets mee, want ik moet werken met een bestaand werkblad waarop gegevens ingevuld worden. Ik moet uit die gegevens specifieke gegevens halen en verzamelen voor verdere bewerking of gebruik in bijv. een draaitabel.

Ik heb een nieuw voorbeeldbestand gemaakt waarin ik met wat code ben gaan proberen. Het is nu nog puur voor een specifieke cel en ik wilde dit per cel herhalen - als het werkt... Helaas wordt de waarde nu in alle cellen in het in de code aangegeven bereik ingevuld, terwijl ik het alleen in de eerstvolgende cel wil hebben.

Het formulier ziet er wat wild uit, maar het moet een idee geven van waar ik mee moet werken. Waar in dit voorbeeld niets staat, staan in het daadwerkelijke bestand nog diverse andere dingen.

Mijn vraag richt zich dan ook vooral op het verplaatsen van deze specifieke gegevens naar de tabellen. Zit ik op een goed spoor, of kan ik dat beter anders doen?

Bekijk bijlage Voorbeeld formulier.xlsb
 
Probeer deze eens.
Code:
Sub VenA()
With Sheets("Uren")
    .Cells(.Columns(1).SpecialCells(2).Count, 1).Offset(1).Resize(, 4) = Array([B1], [E1], [B18], [I22])
End With
With Sheets("Aantallen")
    .Cells(.Columns(1).SpecialCells(2).Count, 1).Offset(1).Resize(, 7) = Array([E1], [C25], [E25], [G25], [I25], [H1], [C25] + [E25] + [G25] + [I25])
End With
Range("B1,E1,H1,B18,I22,C25,E25,G25,I25").ClearContents
End Sub
 

Bijlagen

Hi VenA,

Bedankt, dit doet inderdaad wat ik bedoel. Ik wil de code graag begrijpen zodat ik heb goed kan toepassen en omzetten, kan je mijn commentaar in de code aanvullen of corrigeren waar nodig?
Code:
Sub VenA()
With Sheets("Uren")
    .Cells(.Columns(1).SpecialCells(2).Count, 1).Offset(1).Resize(, 4) = Array([B1], [E1], [B18], [I22])
[COLOR="#FF8C00"]' Dit laat excel vanuit de actieve sheet kijken naar de cellen die genoemd worden in "Array" en plaatst de gegevens in de daar genoemde volgorde in het blad achter "With", in de cel met de
voorwaarden (kolom(1), special cell (2) - Wat betekent specialcell?, tel er een bij op) verspring 1, pas grootte aan naar 4[/COLOR]
End With
With Sheets("Aantallen")
    .Cells(.Columns(1).SpecialCells(2).Count, 1).Offset(1).Resize(, 7) = Array([E1], [C25], [E25], [G25], [I25], [H1], [C25] + [E25] + [G25] + [I25])
End With
Range("B1,E1,H1,B18,I22,C25,E25,G25,I25").ClearContents
End Sub

Deze manier van formuleren gaat vast voor meer dingen op dus als ik dat nou ga begrijpen wordt een hoop makkelijker denk ik...
 
Voor de uitleg van code bestaan boeken, heb je <F1> en natuurlijk google:d Jouw analyse is verder goed.:thumb:

Waarom schrijf je niet alles weg in één tabel? Lijkt mij makkelijker voor verdere analyses.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan