VBA cellen kopiëren naar tabel in andere sheet

Status
Niet open voor verdere reacties.

Erc

Gebruiker
Lid geworden
30 jul 2014
Berichten
116
Hallo

Ik heb een document met 2 worksheets. Ik wil de totalen van 3 verschillende producten van werkblad ‘producten’ naar werkblad ‘facturen’ kopiëren m.b.v. vba. Ik wil alleen de gegevens van kolom N en G kopiëren naar specifieke cellen in werkblad 'factuur'.

- Als ik alleen product A heb verkocht, dan moet m.b.v. vba, N4 en P4 van product A - werkblad ‘product’, gekopieerd worden naar de eerste rij van mijn tabel werkblad ‘factuur’.

- Als alleen product B is verkocht, dan moet vanuit werkblad ‘producten’ cel N6 en P6 gekopieerd worden naar de eerste rij van mijn tabel werkblad ‘factuur’. Als product A in de eerste rij staat, dan moet product B automatisch in de tweede rij verschijnen.

- Als alleen product C is verkocht, dan moet vanuit werkblad ‘producten’ cel N8 en P8 gekopieerd worden naar de eerste rij van de tabel werkblad ‘factuur’. Als bv product A en B in de eerste en tweede rij staat, dan moet product C automatisch in de derde rij verschijnen.

Ik kan wel met behulp van macro’s cellen kopiëren en verplaatsen naar een andere werkblad, maar ik weet niet hoe ik telkens moet kopiëren naar een nieuwe lege rij.

Wie kan helpen a.u.b.?

Alvast een fijn eindejaar!

Met vriendelijke groeten
Ercan
 

Bijlagen

  • totalen verplaatsen naar ander werkblad.xlsm
    32,9 KB · Weergaven: 26
Beste,

Ga eens op zoek op het internet naar het opvragen van de laatst ingevulde in een kolom in een tabel. Je zal tal van voorbeelden vinden.

Ik veronderstel,dat je iets afweet van VBA. Met deze code bepaal je de laatst gevulde rij in kolom A :

Code:
Sub Bepalen()

rij = Sheets("2017").Cells(Cells.Rows.Count, 1).End(xlUp).Row   'Geeft de variabele "rij" de waarde van de laatst ingevulde rij (Row)
rij =rij +1 'is het nummer van de eerstvolgende LEGE rij
End Sub

Met de nieuwe
waarde van rij kan je VBA-code verder uitbouwen
Groeten,
Robert
 
Laatst bewerkt door een moderator:
Hallo

Ik heb ondertussen wat opzoekwerk gedaan, een paar macro’s toegevoegd in het document, de code aangepast en If, Then Else-methode ingezet.

Bij de tweede macro die ik heb gemaakt, krijg ik na de aanpassingen al een foutmelding en kan ik niet verder.

Bij Product B is het dus de bedoeling dat de inhoud van cel N5 en P5 gekopieerd moeten worden naar de tabel in werkblad ‘factuur’. Naar de eerste lege rij als de tabel leeg is.
Maar als product A al in de eerste rij staat van de tabel, dan moet product B automatisch in de tweede rij van de tabel verschijnen.

Code:
Sub ProductB_kopiëren()
'
' ProductB_kopiëren Macro

    If Factuur.Range("B15") = "" Then
    Selection.Copy
    Sheets("Factuur").Select
    Range("N5").Select
    Range("B15").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Else
    Range("B16").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    End If
    
  
    If Factuur.Range("H15") = "" Then
    Sheets("producten").Select
    Range("P5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Factuur").Select
    Range("H15").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Else
    Range("H16").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("producten").Select
    End If
   
   End Sub

Dit is de code hoe ik het heb gedaan. Bij welk deel van de code mag ik dan dit toevoegen (met de nodige aanpassingen uiteraard)?

Sub Bepalen()

rij = Sheets("2017").Cells(Cells.Rows.Count, 1).End(xlUp).Row 'Geeft de variabele "rij" de waarde van de laatst ingevulde rij (Row)
rij =rij +1 'is het nummer van de eerstvolgende LEGE rij
End Sub

Ik wil het stap per stap leren. Eerst de code van Product B, dan pas wil ik verder met Product C.

Alle hulp is welkom. Alvast bedankt!

Groeten
Ercan
 
In de VBA-editor kan je met de toets F8 de ganse code doorlopen en zien welke programmaregel wordt uitgevoerd of zien in welke regel een fout optreedt.
Je kan ook de actuele waarde van de inhoud van een cel of een variabele opvragen. Een raad : ontleen een eenvoudig handboek over VBA in de bib en probeer de voorbeelden uit. Om VBA onder de knie te krijgen, is korte VBA-code schrijven de boodschap.
Ik bekijk deze voormiddag je code.
 
Laatst bewerkt:
Ik heb met de F8-toets de code overlopen. Ik heb gezien dat ik bij dit stukje een foutmelding krijg.

Code:
Else
    Range("B16").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False


Bekijk bijlage 368342

Waarom krijg ik die foutmelding precies? Doe ik iets verkeerd als ik de waarden plak?


@tkint bedankt voor de tip! Ik heb al een handboek en bekijk ook veel filmpjes en probeer zo dingen uit. Maar moet nog heeel veel leren over VBA.
 
Beste,

Wellicht verscheen er een foutcode. Daaruit kan je soms de oorzaak van de melding afleiden. Soms is het ook wat zoeken en uitproberen. Ik bekijk het zo snel mogelijk.
 
Begin met alle 'select's weg te halen.
 
Dat zijn beginnersfouten, net zoals samengevoegde cellen. In begin van mijn interesse voor VBA in Excel, maakt ik ook die fouten.
 
Beste,

Je hebt ook samengevoegde cellen gebruikt. Niet doen bij VBA! Ik pas de layout aan.
 
Beste,

Ik heb je ontwerp herwerkt. Op het tabblad factuur staat een knop om de gegevens van de factuur te kopiëren naar de juiste tabel op het tabblad producten. De invoer van de gegevens is nog niet geprogrammeerd. Het bedrag exl btw van de factuur komt in de juiste tabel maar zie je niet.
Probeer maar uit en zoek uit hoe ik het probleem heb uitgewerkt.
 

Bijlagen

  • totalen verplaatsen naar ander werkblad_versie_Robert.xlsm
    38,3 KB · Weergaven: 29
Hey

Bedankt voor de wijzigingen. Het ziet er helemaal anders uit dan mijn versie :). Ik ga het helemaal bekijken en uitzoeken hoe je de problemen hebt aangepakt. Voor al mijn vragen kom terug naar hier :D

Groeten
Ercan
 
Ik wil de tabellen met de gegevens in het werkblad producten manueel ingeven. Dan wordt er per product een totaal gemaakt. Vanuit het werkblad producten wil ik totalen kopiëren naar het werkblad factuur.

Nu doet die het andersom. Vanuit de tabel van werklad factuur, kopieert die gegevens naar het werkblad 'producten'. Dat is eigenlijk niet de bedoeling.

Zie ik het verkeerd of moet ik eerst nog wijzigingen aanbrengen vooraleer die juist gaat kopiëren?
 
Beste,

Ik heb inderdaad het probleem verkeerd begrepen. Je wilt dus per produkt een factuur maken met de gegevens uit de samenvattende tabel rechts op het tabblad producten. Een probleem : in de tabel op tabblad factuur is er een kolom btw-percentage, op tabblad producten niet. Hoe lossen we dat op?
 
Bij het tablad producten heb ik de kolom btw-percentage niet toegevoegd omdat ik aanvankelijk de cellen wou verplaatsen door te klikken op de verschillende knoppen (eerste versie van programma).

Is het probleem sneller opgelost als ik een kolom btw-percentage toevoeg in werkblad producten? Dan kan ik dat wel doen.
 
Beste,
Is het btw-percentage gerelateerd aan een product? Ik zou mijn factuur maken als samenvatting van mijn leveringen en ook een kolom leveringsdatum bijvoegen. Op het tabblad producten zou ik alleen de samenvattende tabel van de totalen per product behouden.
 
Het is voor mij veel gemakkelijker als ik de totalen per product (A B of C) kan kopiëren naar het werkblad factuur. Daarmee bedoel ik het aantal liters en de prijs excl. btw. Meer moet het eigenlijk niet zijn. Daarom had ik aanvankelijk ook meerdere knoppen toegevoegd in het document om per product te kunnen kopiëren.
 
Beste,
Dan moeten de tabel op factuur evenveel kolommen bevatten als de tabel op producten en in dezelfde volgorde. Breng jij dat voor elkaar? Hoeveel rijen lang mag de factuur zijn?
 
Ik breng het vanavond in orde en zal het document hier posten. Ik zou toch voor de factuur minstens 10 rijen nemen.
 
Hallo

Ik heb het document aangepast. De tabel ook toegevoegd in het tweede werkblad ‘producten’.

Het is dus zo: klanten kopen een product, krijgen een kasticket waar aantal liters, btw-tarief en prijs incl. btw. op staat.
Daarom wou ik in mijn allereerste versie, eerst het aantal liters en prijs excl. btw kopiëren naar het werkblad factuur. Daarna worden alle berekeningen a.d.h.v. de formules, automatisch gemaakt.

Ik wil dus nu heel graag bij werkblad ‘producten’ de rijen 16,17,18 en 19, van kolom M t.e.m. kolom R, kunnen kopiëren naar het werkblad factuur met vba.

Als product A leeg is, moet product B automatisch gekopieerd worden naar de eerste rij van de factuur.
Als product A en B leeg is, moet product C automatisch gekopieerd worden naar de eerste rij en precies hetzelfde voor product D.

Bedankt!

Groeten
Ercan
 

Bijlagen

  • totalen verplaatsen _versie_Robert_aangepast2201.xlsm
    38 KB · Weergaven: 21
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan