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

totaal naar dag

Status
Niet open voor verdere reacties.

Gerard2348

Gebruiker
Lid geworden
24 okt 2013
Berichten
370
Beste allemaal,

Per dag krijgen we een overzicht van verkochte artikelen per winkel. Artikelen onder kolom B variëren. Dit kunnen er 10 zijn maar ook 100. Graag wil ik deze artikelen naar het blad "per dag" kopiëren. Op zich geen probleem. Maar ik zou dit graag onder het desbetreffende nummer doen. Dit nummer is de datum waarde onder C7 van blad1.

Met vriendelijke groet,

Bekijk bijlage omzet naar kolom.xlsx
 
Zoiets?
Code:
Sub hsv()
With Sheets("Blad1")
 Sheets("per dag").Rows(4).Find(Day(.[c7]), , xlValues, xlWhole).Offset(1).Resize(.Range(.Cells(10, 3), .Cells(10, 3).End(xlDown)).Rows.Count) = .Range(.Cells(10, 3), .Cells(10, 3).End(xlDown)).Value
End With
End Sub
 
Ha Harry,

Ben er blij mee. Alleen niet geheel wat ik bedoel. De gegevens naar de desbetreffende dag gaat goed. De bedoeling was dat ook de artikelen naar de eerst kolom gekopieerd worden. Wanneer de datum wijzigt en er komen nieuwe gegevens in te staan met een andere datum dan moet wederom alles naar sheet "per dag" worden gekopieerd. De "nieuwe" artikelen moeten dan onder de oude komen. Uiteindelijk is de bedoeling dat alles daarna wordt samengevoegd.

mvg Groet.
 
Hallo,

Zou het zo kloppen Gerard (het stond ook nergens volgens mij).
Code:
Sub hsv()
With Sheets("Blad1")
 Sheets("per dag").Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(.Range(.Cells(10, 3), .Cells(10, 3).End(xlDown)).Rows.Count) = .Range(.Cells(10, 2), .Cells(10, 2).End(xlDown)).Value
 Sheets("per dag").Rows(4).Find(Day(.[c7]), , xlValues, xlWhole).Offset(Sheets("per dag").Cells(Rows.Count, 2).End(xlUp).Row - 3 - .Range(.Cells(10, 2), .Cells(10, 2).End(xlDown)).Rows.Count).Resize(.Range(.Cells(10, 3), .Cells(10, 3).End(xlDown)).Rows.Count) = .Range(.Cells(10, 3), .Cells(10, 3).End(xlDown)).Value
End With
End Sub
 
Gerard, als een nieuwe dag wordt binnen gehaald, waar komt die dan in eerst instantie te staan ?

begint die dan altijd op B6 op blad 1
 
Laatst bewerkt:
Goedemorgen,

Had niet eerder de tijd om de aangedragen code van Harry te testen. Deze werkt perfect. Bedankt hiervoor. En inderdaad sorry stond er niet echt in.

Sylvester Ponten het antwoord op jouw vraag is ja. Hoe het er op blad 1 uitziet, in het aangedragen voorbeeld, dat is standaard. Dit is per dag een leeg formulier die wordt gevuld met de informatie. Dus we hebben hier maandelijks zo'n 30 of 31 formulieren. Deze worden weer per maand verzameld op een zgn. "maandoverzicht". In het voorbeeld is dit op het tabblad "per dag". Ik heb een macro opgenomen (samenvoegen) hoe het er dan uit komt te zien.

Achteraf en na verdere info gekregen te hebben is het de bedoeling dat deze info in een apart Excel bestand komt te staan. Dit bestand heeft twaalf tabbladen. Deze tabbladen staan voor de maanden.
Dus al met al een hoop knutselwerk. Maar dit kunnen we oplossen door knippen en plakken.
mvg

Bekijk bijlage omzet naar kolom1.xlsm
 
Laatst bewerkt:
Nog een vraagje over de code samenvoegen.
Heb onderstaande code opgenomen met de macro recorder. Deze zal ongetwijfeld mooier en beter kunnen. Maar waar het omgaat is of de regel in het blauw kan worden veranderd zodat deze macro voor verschillende tabbladen kan worden gebruikt en niet alleen in dit geval voor het tabblad "per dag".

Code:
Sub Samenvoegen()

Application.ScreenUpdating = False
    
    Range("AJ5").Select
    [COLOR="#0000CD"]Selection.Consolidate Sources:= _
        "'per dag'!R5C2:R300C33", _
[/COLOR]        Function:=xlSum, TopRow:=False, LeftColumn:=True, CreateLinks:=False
    Range("B5:AG300").Select
    Selection.ClearContents
    Range("AJ5:BO300").Select
    Selection.Cut
    ActiveWindow.ScrollColumn = 1
    Range("B5").Select
    ActiveSheet.Paste
    Range("B5").Select
    Application.ScreenUpdating = True
    
End Sub

Met vriendelijke groet
 
Lees de Help eens in Vba over consolidate.
Er staat zelfs een voorbeeldje bij.
 
Ha Harry,

ik denk dat ik niet duidelijk ben geweest of ik mis iets. De code die jij hebt aangedragen werkt perfect. De gegevens worden naar de desbetreffende kolommen (dagen) op blad 2 gekopieerd. In dit voorbeeld op dag 13. Wanneer ik de datum verander (in dit voorbeeld naar dag 15) en ik gebruik jouw code dan gaat dat helemaal perfect. Nu komt de code die ik beschrijf in #7 aan bod. Wanneer ik deze gebruik dan worden de gegevens samengevoegd.

En dan kom ik terug op mijn vraag zoals in #7;
Heb onderstaande code opgenomen met de macro recorder. Deze zal ongetwijfeld mooier en beter kunnen. Maar waar het omgaat is of de regel in het blauw kan worden veranderd zodat deze macro voor verschillende tabbladen kan worden gebruikt en niet alleen in dit geval voor het tabblad "per dag".

Code:
Sub Samenvoegen()

Application.ScreenUpdating = False
    
    Range("AJ5").Select
    Selection.Consolidate Sources:= _
        "[COLOR="#0000CD"]'per dag'[/COLOR]!R5C2:R300C33", _
        Function:=xlSum, TopRow:=False, LeftColumn:=True, CreateLinks:=False
    Range("B5:AG300").Select
    Selection.ClearContents
    Range("AJ5:BO300").Select
    Selection.Cut
    ActiveWindow.ScrollColumn = 1
    Range("B5").Select
    ActiveSheet.Paste
    Range("B5").Select
    Application.ScreenUpdating = True
    
End Sub

Hopelijk biedt dit wat duidelijkheid.

Bekijk bijlage omzet naar kolom (1).xlsb

Met vriendelijke groet,
 
Laatst bewerkt:
Ik had helaas het verkeerde bestand geplaatst om je de consolidate te laten zien.
In dit bestand staat de code wel.

Helaas weet ik niet in welk blad je de code hebt opgenomen en in welk blad je de code uitvoert.
Zoals ik het even had getest deed het bij mij niets dan gegevens kopiëren en de oude gegevens wissen en dan het gekopieerde terug plaatsen.
 

Bijlagen

Aha,
het eerste blad (Blad1) is zeg maar het invulblad. Het blad per dag had ik, besef ik nu, de maanden moeten noemen. Dus m.a.w. jan - feb - maart - april - mei enz, enz...
Ik had de code opgenomen in het blad per dag en ook in dit blad uitgevoerd.

mvg Geer.

ps. ik ben al heel blij met jouw aangedragen code....
 
Hallo Geer,

Nu zie ik pas wat je doet.
Je bedoelt zoiets?
Code:
Sub Samenvoegen()
Application.ScreenUpdating = False
 With ActiveSheet
    .Range("AJ5").Consolidate "R5C2:R300C33", xlSum, , 1
    .Range("B5:AG300").ClearContents
    .Range("AJ5:BO300").Cut .Range("B5")
 End With
Application.ScreenUpdating = True
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan