Inhoud rijen diverse werkbladen kopieren naar één werkblad.

Status
Niet open voor verdere reacties.

riw

Gebruiker
Lid geworden
30 jan 2017
Berichten
46
He hallo,

In bijgaand werkblad zou ik graag zien dat; als cel A7 van tabblad "NAV" een inhoud heeft, cel A7:D7 en H7:J7, automatisch gekopieerd wordt naar het tabblad "Totaal". De eerste cel die gebruikt mag worden op tabblad "Totaal" is B1.

Als kolom A van het tabblad "NAV" geen inhoud heeft. Of als de laatste cel van kolom A met inhoud bereikt is. Dan dient er gekeken te worden naar tabblad "NAB" en dient het trucje herhaalt te worden. De inhoud van de diverse werkbladen mag rechtstreeks onder elkaar komen op het tabblad "Totaal".

Daar waar op het tabblad "Totaal" iets is ingevuld dient een getal te komen welke oploopt naar mate er meer regels zijn gebruikt.

Groet,
Rick
 

Bijlagen

  • Test werkblad.xlsx
    11,2 KB · Weergaven: 30
Het voorbeeldbestand en de verwachte uitkomst strookt niet erg met de vraag en de resultaten. Jouw vraag kan alleen met VBA. Obv van het bestandje

Code:
Sub VenA()
Application.ScreenUpdating = False
With Sheets("Totaal")
  .Cells(5, 1).CurrentRegion.Offset(1).ClearContents
  .Columns(6).Resize(, 3).Insert
  For Each sh In Sheets(Array("NAV", "NAB", "NAZ"))
    sh.Cells(6, 1).CurrentRegion.Offset(1).Resize(, 10).Copy .Cells(Rows.Count, 2).End(xlUp).Offset(1)
  Next sh
  .Columns(6).Resize(, 3).Delete
End With
End Sub
 
Bedankt voor je terugkoppeling. Ondanks dat ik mijn wens niet goed verwoord heb is het je toch gelukt om mij van de juiste code te voorzien :thumb:.

De logica/werkwijze ontgaat mij echter. Hoe heb je aangegeven dat er naar de eerste kolom wordt gekeken om vervolgens A7: D7 te kopieren? Ik mis namelijk de celaanduidingen. Heeft het iets te maken met (5, 1)?

Ik heb jouw code in ThisWorkbook neer gezet. Vervolgens heb ik op tabblad NAV een knop aangemaakt welke wijst naar jouw code. Dit heeft het gewenste effect tot gevolg. Kan het echter ook zonder knop? Ik bedoel dan dat; zodra de een cel gevuld is, deze meteen naar naar tabblad Totaal gekopieerd word. Zonder dat je op de knop moet drukken.

Groet,
Rick

Bekijk bijlage Test werkblad.xlsm
 
Laatst bewerkt:
Dit soort code hoor je niet plaatsen in de module van ThisWorkbook. Werkt wel maar is niet de juiste plek.
Lees eerst regel voor regel wat er in de code staat. Dit kan je doen door gebruik te maken van de ingebouwde debug opties in de VB-editor. Of door tijdelijk gebruik te maken van .select of een msgbox.

Het is vrij eenvoudige mogelijk om data zonder knop over te zetten. Zoek maar even op het Worksheet_Change event of het Worksheet_BeforeDoubleClick event.

Maak eerst eens duidelijk waarom je voor deze opzet kiest; Waarom beginnen de gegevens niet in A1? Waarom staan er lege kolommen in? De code maken zal niet zo moeilijk zijn als je even uitlegt wat het doel van dit alles is en wanneer wat gekopieerd moet/mag worden.

Edit

Met een dubbelklik event
Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Sh.Name = "Totaal" Then Exit Sub
With Target
  If .Row > 7 And LCase(Cells(.Row, 11)) <> "x" And Sh.Cells(.Row, 2) <> "" Then
    Sheets("Totaal").Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(, 7) = Split(Join(Application.Index(Sh.Cells(.Row, 1).Resize(, 10), 1, Array(1, 2, 3, 4, 8, 9, 10)), "|"), "|")
    Sh.Cells(.Row, 11) = "x"
  End If
End With
Cancel = -1
End Sub
 

Bijlagen

  • Test werkblad.xlsb
    22,6 KB · Weergaven: 20
Laatst bewerkt:
Dit soort code hoor je niet plaatsen in de module van ThisWorkbook. Werkt wel maar is niet de juiste plek.
Lees eerst regel voor regel wat er in de code staat. Dit kan je doen door gebruik te maken van de ingebouwde debug opties in de VB-editor. Of door tijdelijk gebruik te maken van .select of een msgbox.

Het is vrij eenvoudige mogelijk mogelijk om data zonder knop over te zetten. Zoek maar even op het Worksheet_Change event of het Worksheet_BeforeDoubleClick event.

Maak eerst eens duidelijk waarom je voor deze opzet kiest; Waarom beginnen de gegevens niet in A1? Waarom staan er lege kolommen in? De code maken zal niet zo moeilijk zijn als je even uitlegt wat het doel van dit alles is en wanneer wat gekopieerd moet/mag worden.
Ik kan geen code lezen. Het is me niet gelukt om er achter te komen hoe de editor werkt.

De reden waarom de gegevens niet in A1 beginnen is omdat ik in kolom A een oplopend getal per overgenomen regel wil hebben. Als er vier regels zijn gekopieerd van tabblad NAV dan wil ik dat cel A6 het cijfer "1" komt te staan en in cel A7 het cijfer "2".

Ik begin maandag met een introductiecursus VBA. Wellicht dat ik daarna wel jouw oplossing/idee in de praktijk kan toepassen. Wordt vervolgd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan