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

Automatisch rijen kopieren uit meerdere tabbladen naar verzameltabblad

Status
Niet open voor verdere reacties.

Syvvis

Gebruiker
Lid geworden
23 mei 2016
Berichten
12
Een goedemiddag,

Ik probeer nu al een tijdje een oplossing te vinden voor het onderstaande probleem, maar dit is me helaas niet gelukt.

Het is mijn bedoeling om een bepaalde rijen of cellen (verschillend op ieder tabblad) uit meerdere tabbladen te halen.
Indien vraag 1 uit de tabbladen (FB, IMA, MVA) met JA beantwoord wordt, moeten de gebruikers bepaalde werkzaamheden vastleggen in het "topmemo" (bij tabblad FB zijn dat de cellen op rijen 34 t/tm 42). Ik zou graag willen zien dat die specifieke rijen automatisch overgenomen worden in het tabblad Topmemo. Indien vraag 1 met NEE beantwoord wordt, is het niet noodzakelijk om de rijen van het topmemo in te vullen en dan hoeft er ook niets overgenomen te worden in het topmemo.

De gegevens uit de tabbladen FB, IMA en MVA moeten onder elkaar geplaatst worden in het tabblade Topmemo. Het voorbeeldbestand heeft maar een paar tabbladen, maar het bestand waar ik mee wil werken heeft meer dan 20 tabbladen.

De cellen kopiëren is verre van ideaal en de = functie is naar mijn mening vrij foutgevoelig.
Ik heb geprobeerd om te werken met bronafbeeldingen van de topmemo's in ieder tabblad , maar dit is ook niet mooi / gebruikksvriendelijk.

Ik hoop dat het bovenstaande verhaal een beetje duidelijk is.

Met vriendelijke groet,

Syvvis

Bekijk bijlage Voorbeeld Helpmij.nl.zip
 
Ik begrijp er niet veel van wat je wilt bereiken.
Om te beginnen kan je de code eens een beetje leesbaar maken door het gebruik van inspring punten. Het dubbel opnemen van een IF statement maakt het geheel ook niet echt logisch. Als je niet weet waardoor iets fout kan gaan dan is een on error goto ook niet echt handig.

In C13 heb je een keuzelijst staan voor JA/NEE. In de code wordt getoetst op "NEE" en "" dit lijkt mij niet niet logisch. Samengevoegde cellen en VBA wil ook nog wel eens onvoorspelbare resultaten opleveren.

Dus nogal wat punten waar je eerst iets aan moet doen/over na moet denken:d

Van de code die je nu onder de tab 'FB' hebt staan zou ik zoiets maken

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D13:D32", "C13")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Application
    .EnableEvents = False
    If Target.Column = 3 Then
        Select Case Target
            Case "NEE"
                Cells(24, 4).Value = ""
                Cells(22, 4).Value = "N.V.T."
                Rows("24:27").EntireRow.Hidden = False
                Rows("22:23").EntireRow.Hidden = True
            Case ""
                Range("D22:E27").Value = ""
                Rows("22:27").EntireRow.Hidden = False
        End Select
      Else
        Target.Offset(0, 1).Value = IIf(Target.Value = "", "", Date)
    End If
    .EnableEvents = True
End With
End Sub
 
Bedankt voor je reactie. In principe werken de huidige codes naar behoren, maar ik zal de code (voor de zekerheid en duidelijkheid) gaan aanpassen.:D Het werken met samengevoegde cellen is inderdaad iets waar ik wellicht nog een andere oplossing voor ga zoeken. De huidige codes hebben ook niets te maken met het kopiëren van de specifieke gegevens naar het desbetreffende tabblad.

Dus oprecht bedankt voor je advies en ik zal de tips doorvoeren, maar dit is niet de oplossing die ik zoek. Ik zal nogmaals proberen de situatie uit te leggen, zodat het misschien iets duidelijker wordt.

De gebruikers van dit bestand moeten bepaalde vragen beantwoorden. In ieder tabblad (vanaf tabblad FB) zijn een aantal vragen die beantwoorde moeten worden. Indien vraag 1 met een JA beantwoord wordt, moeten ze bepaalde werkzaamheden vastleggen in de rijen (in het tabblad "FB" rijen 34 / tm 42). Uiteindelijk zijn er iets van 20 tabbladen die ingevuld moeten worden. Per tabblad worden er dus (afhankelijk van JA / NEE) bepaalde werkzaamheden vastgelegd in de daarvoor bedoelde rijen.

Het gaat mij nu om het kopiëren van de rijen waarin de werkzaamheden zijn vastgelegd.
Dit gaat om de rijen 34 t/m 42 in tabblad FB, rijen 21 t/m 29 in tabblad IMA en rijen 27 t/m 35 in tabblad MVA.
Deze rijen moeten gekopieerd worden naar het verzamelblad "Topmemo"

Zo zijn er uiteindelijk 20 tabbladen waarvan bepaalde rijen gekopieerd moeten worden naar het tabblad "Topmemo".
Deze rijen moeten onder elkaar gepresenteerd worden, zodat er een soort van samenvatting gegeven wordt van de werkzaamheden in ieder tabblad.

Hopelijk is het nu iets beter uitgelegd en kun je hier wellicht iets op verzinnen.

Mvg,

Syvvis
 
Het blijft een onbegrijpelijk zooitje. Verborgen tabjes, geen concrete vraag wanneer wat moet gebeuren, plaatjes waar gegevens horen te staan, etc. Het basisprincipe:

Code:
Sub VenA()
Application.EnableEvents = False
For Each sh In Sheets
    If sh.Name <> "Topmemo" Then
        With sh
            Set F = .Columns("E:F").Find("Topmemo", , xlValues, xlPart)
            If Not F Is Nothing Then .Range("A" & F.Row & ":F" & .Cells(.Rows.Count, 1).End(xlUp).Row).Copy_
                Sheets("Topmemo").Cells(Sheets("Topmemo").Rows.Count, 1).End(xlUp).Offset (1)
        End With
    End If
Next sh
Application.EnableEvents = True
End Sub
 
Laatst bewerkt:
hmmm:o, Nu wordt maar weer pijnlijk duidelijk dat ik een vrij grote leek ben op het gebied van VBA. Des te groter de waardering dat je met een oplossing probeert te komen.

Ik heb je code geprobeerd toe te passen, maar ik krijg de code 438. Deze eigenschap of methode wordt niet ondersteund door dit object.

Kan het zijn dat de foutmelding komt doordat ik werkt met excel 2016?
 
Tussen. copy en _ hoort een spatie.

Of je schrijft het op één regel.

Code:
If Not F Is Nothing Then .Range("A" & F.Row & ":F" & .Cells(.Rows.Count, 1).End(xlUp).Row).Copy Sheets("Topmemo").Cells(Sheets("Topmemo").Rows.Count, 1).End(xlUp).Offset (1)
 
Super bedankt! Dit werkt in de basis helemaal super :thumb:

Nu wil ik niet te veeleisend lijken, maar is het ook nog mogelijk dat tabbladen die verbogen zijn overgeslagen worden?

Alvast bedankt :)
 
met deze aanpassing

Code:
If sh.Name <> "Topmemo" And sh.Visible = True Then
 
Prachtig! Alles werkt (tot nu toe) naar behoren :thumb:

Zal alles verwerken in het daadwerkelijke bestand dat gebruikt gaat worden en als er problemen zijn meld ik me wel weer:)

Ik denk echter dat het allemaal in orde moet komen.

Bedankt voor de moeite en oplossingen VenA:thumb:
 
Graag gedaan hoor. Even voor mijn beeldvorming omdat je XL-2016 gebruikt.

Staat er in jouw bestand in het blad 'FD!B2:B7' een plaatje of is dit iets wat mijn versie (Xl-2010) niet kan begrijpen?Knipsel.JPG
 
VenA: je kunt gegevens kopiëren en bij plakken aangeven dat deze als "Koppeling Afbeelding" moeten worden geplakt.
Dat zit bij Excel 2007 in de dropdown onder "Plakken" op tab Start:
Koppeling Afbeelding plakken.png
Dat is hier ook gedaan (of ik moet me vreselijk vergissen).
Het aardige is dat het plaatje vanzelf bijgewerkt wordt als de gegevens wijzigen.
 
Laatst bewerkt:
Bedankt voor je reactie. Tegen de tijd dat ik dit soort 'uitvindingen' nuttig ga vinden zal ik aan je denken:d
 
Klopt inderdaad... Ik wilde hetzelfde systeem eerst ook toepassen voor het topmemo. Gelukkig is de oplossing van jou een stuk beter
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan