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

rijen automatisch verplaatsen obv 1 criteria die in bestand 2 ingevuld wordt.

  • Onderwerp starter Onderwerp starter anbe
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

anbe

Gebruiker
Lid geworden
27 nov 2017
Berichten
9
Beste Lezer,

Ik zit met het volgende.

Bestand 1: urenregistratie waarin wekelijks per datum de uren voor verschillende projecten worden ingegeven (weekstaat).

Bestand 2: projectadministratie waarin de uren vanuit bestand 1 per project automatisch gekopieerd moet worden. In cel B2 in dit bestand wordt de projectnaam aangegeven.

Voorbeeld bestand 1 "invoer uren":

weeknummer: "bijv. 50"

kolom A Kolom B Kolom C Kolom D Kolom E Kolom F Kolom G
datum project code naam uren omschrijving opmerkingen


Voorbeeld bestand 2 "overzicht uren":

Cel B2 "projectnaam"

kolom A Kolom B Kolom C Kolom D Kolom E Kolom F Kolom G
datum project code naam uren omschrijving opmerkingen


Als in bestand 1 (invoer uren) in kolom B bijv. "Tiel" staat en in bestand 2 (overzicht uren) in Cel B2 ook Tiel staat, dan dienen alle rijen van bestand 1 waarin Tiel staat automatisch te worden gekopieerd naar Bestand 2.

De projectnaam in cel B2 in bestand 2 wordt handmatig ingevuld per project.

Ik heb gelezen dat dit via VBA zou moeten kunnen en heb diverse zaken geprobeerd, maar ik krijg het niet werkend. Wie o wie kan me helpen?
 
Als je een voorbeeld van die bestanden plaatst komt dat vast in orde.
 
Beste, welkom op het forum:)
Post een gelijkend vb bestandje met wat Jan en Katrien, of Jip en Janneke gegevens,dan wordt je sneller en doelgerichter geholpen.
Edit: den Edmoor kan ik niet kloppen in snelheid.:shocked:
 
Laatst bewerkt:
Waarom twee bestanden? Als je het tweede bestand in een tabblad van het eerste bestand zet wordt het allemaal wat makkelijker.
 
Omdat het tweede bestand geldt voor afzonderlijke projectadministraties. Vanuit tweede bestand moeten op navolgende tabbladen calculaties worden gemaakt mbt het desbetreffende project.
Dus In bestand 1 worden de uren van alle projecten ingevuld en van daaruit moeten de uren per project naar een nieuw bestand gezet worden.
 
Laatst bewerkt:
Al het quoten is onnodig. Alle data bij elkaar houden en er dan informatie van maken dmv een draaitabel is veel eenvoudiger dan een boel lege regels waarin iets gezocht zal moet worden om het te verplaatsen naar een ander bestand.
 

Bijlagen

Al het quoten is onnodig. Alle data bij elkaar houden en er dan informatie van maken dmv een draaitabel is veel eenvoudiger dan een boel lege regels waarin iets gezocht zal moet worden om het te verplaatsen naar een ander bestand.
 
Dank voor je bericht. Er wordt alleen gewerkt met meerdere projecten en tig tabbladen zijn dan niet handig. Op basis van de gekopieerde uren per project worden per project nl ook calculaties gemaakt. Mijn vraag blijft dus onveranderd. Iemand die hiervoor een oplossing heeft?
Kan niet met formules volgens mij maar betreft een vba code.
Als projectnaam in bestand 1 kolom B gelijk is aan cel B2 in bestand 2 dan moeten die regels volledig en automatisch gekopieerd worden naar bestand 2.
BVD
 
Zoek je zo iets?
Code:
Sub copy()
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = Workbooks("overzicht uren test").Sheets("overzicht uren")
Set ws2 = Workbooks("invoer uren test").Sheets("invoer")
    For j = 11 To 200
      If ws1.Range("B2").Value = ws2.Cells(j, 2).Value Then
        ws1.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 7) = Array(ws2.Cells(j, 2), ws2.Cells(j, 1), ws2.Cells(j, 3), ws2.Cells(j, 4), ws2.Cells(j, 5), ws2.Cells(j, 6), ws2.Cells(j, 7))
      End If
    Next
End Sub
**) Je zou evt. ook een filter kunnen gebruiken ipv een loop
 
Laatst bewerkt:
Beste Jack,

De code werkt, maar als ik een macroknop aanmaak, en daar wordt herhaaldelijk op gedrukt, dan herhaalt hij de invoer. Is dit d.m.v. een andere code bijv. filteren vanuit bestand 1 te voorkomen? Of kan het dat de macro automatisch uitgevoerd wordt, zodat de knop niet gebruikt hoeft te worden?

NB. Dit is mijn eerste VBA-projectje ;-) Erg leuk, maar moet nog veel leren.
 
Laatst bewerkt:
Zonder knop
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Set ws2 = Workbooks("invoer uren test").Sheets("invoer")
    If Target.Address = "$B$2" Then
        Range("A5", Cells(Rows.Count, 1).End(xlUp)).Resize(, 7).ClearContents
          
          For j = 11 To 200
              If Target.Value = ws2.Cells(j, 2).Value Then
                Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 7) = Array(ws2.Cells(j, 2), ws2.Cells(j, 1), ws2.Cells(j, 3), ws2.Cells(j, 4), ws2.Cells(j, 5), ws2.Cells(j, 6), ws2.Cells(j, 7))
              End If
          Next
    End If
End Sub
Code hoort achter blad "overzicht uren" te staan!
 
Beste Jack,

Wat bedoel je met "Code hoort achter blad "overzicht uren" te staan!"?

Sorry, ben een leek. :( PS erg aardig van je dat je me wilt helpen!
 
Dubbelklik op blad overzicht uren en plak de code erin.
 

Bijlagen

  • excel paint.jpg
    excel paint.jpg
    158,8 KB · Weergaven: 59
Beste Jack,

Dank voor je antwoord. Alleen is het mij niet duidelijk wat deze code moet doen. Het verandert nl. niks volgens mij.

Bijgaand het bestandje met de ingevoerde codes. Zou jij aub. willen kijken wat ik nu weer fout heb gedaan?Bekijk bijlage overzicht uren test.xlsm

Jij zegt zonder knop, maar dan gebeurt er niks. Nu heb ik ook geen idee hoe het werkt, alleen het idee dat het moet kunnen. Ik heb dus de knop toegevoegd. Als ik daarop klik voert hij de uren in. Het probleem is echter dat als ik er nogmaals op klik, dat de uren dan nogmaals ingevoerd worden. Nu zou je zeggen klik er dan niet twee keer op. Het punt is dat ik niet de enige ben die met dit bestand moet gaan werken. Die vlieger gaat dus niet op haha.

Weet jij een oplossing hiervoor (of kan zijn dat je die gegeven hebt, maar ik er niks van begrijp ;-))
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan