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

Celinhoud onder voorwaarden kopiëren naar juiste tabblad in een macro

Status
Niet open voor verdere reacties.

Arnoud76

Gebruiker
Lid geworden
26 dec 2013
Berichten
18
Hallo, wie kan mij helpen?

Ik wil ik graag het volgende in een bestaande macro opnemen:

Als de inhoud van cel C27 in “Factuur” ligt tussen 1-jan en 31-mrt, dan gegevens naar “Kwartaal 1”;
tussen 1-apr en 30-jun, dan gegevens naar “Kwartaal 2”; tussen 1-jul en 30-sep, dan gegevens naar “Kwartaal 3” en tussen 1-okt en 31-dec dan gegevens naar “Kwartaal 4”

Onderstaande is de bestaande macro:
Code:
Sub kopieer()
With Sheets("Kwartaal 1")
lr = .Cells(Rows.Count, 11).End(xlUp).Row + 1
    .Cells(lr, 8) = Sheets("Factuur").Range("C26")
    .Cells(lr, 2) = Sheets("Factuur").Range("C27")
    .Cells(lr, 6) = Sheets("Factuur").Range("G15")
    .Cells(lr, 10) = Sheets("Factuur").Range("B64")
    .Cells(lr, 11) = Sheets("Factuur").Range("D64")
    .Cells(lr, 12) = Sheets("Factuur").Range("E64")
    .Cells(lr, 9) = Sheets("Factuur").Range("H63")
End With
End Sub
De macro zit onder knop 8 in het voorbeeld
 

Bijlagen

Laatst bewerkt door een moderator:
Onderstaande code verplaatst de gegevens naar het bijbehorende werkblad adhv de datum in cel C27.
Code:
Sub kopieer()
Dim iKW As Integer
Dim sSH As Worksheet

    Set sSH = Sheets("Factuur")
    iKW = WorksheetFunction.Ceiling(Month(sSH.Range("C27")), 3) / 3
    
    With Sheets("Kwartaal " & iKW)
        lr = .Cells(Rows.Count, 11).End(xlUp).Row + 1
        .Cells(lr, 8) = sSH.Range("C26")
        .Cells(lr, 2) = sSH.Range("C27")
        .Cells(lr, 6) = sSH.Range("G15")
        .Cells(lr, 10) = sSH.Range("B64")
        .Cells(lr, 11) = sSH.Range("D64")
        .Cells(lr, 12) = sSH.Range("E64")
        .Cells(lr, 9) = sSH.Range("H63")
    End With
    
End Sub

Met vriendelijke groet,


Roncancio
 
Helemaal super!!! Heel erg bedankt!!!

Ik snap alleen niet hoe het werkt. Ik probeer de macro te lezen, maar heb geen idee waar de controlefunctie voor de datum in verstopt zit.
Ook van de functie of opdracht "Rows.Count, 11" zou ik graag willen weten wat dat is en doet.

Ik heb de macro gekopieerd naar mijn bestaande werkblad alleen werkte hij toen niet, terwijl de Tabbladen wel de naam Kwartaal 1, Kwartaal 2, etc.. hadden. Enig idee hou dat zou kunnen?

Ik lees het graag

Groeten Arnoud
 
Rows.Count = aantal rijen
11 = kolom 11 (K-kolom)

De code controleert aan de hand van de maand in welke periode deze valt.
Vervolgens wordt het bijbehorende werkblad gevuld met de gegevens.

Zo te horen krijg je geen foutmelding dus VBA kan dus wel de werkbladen vinden.
Eventueel zou je met VBA kunnen controleren of de werkbladen daadwerkelijk gevonden worden.

Wat werkt er niet precies?
Wellicht dat je een voorbeeldbestand (zonder gevoelige informatie) kunt plaatsen zodat we kunnen zien wat er aan de hand is.

Met vriendelijke groet,


Roncancio
 
De macro werkt nu wel. Na het kopiëren is er denk ik wat fout gegaan want de macro nam geen gegevens van de factuur over naar de kwartalen.

Hij werkt nu wel!!! Nogmaals erg bedankt.:thumb::thumb:
 
Graag gedaan.
Gaarne nog de vraag op opgelost zetten.
Bvd.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan