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

In Excel automatisch rijen kopiëren naar ander tabblad 2020

Status
Niet open voor verdere reacties.

XynioniC

Nieuwe gebruiker
Lid geworden
27 jul 2009
Berichten
4
Ik zit met een soortgelijke vraag als eerder (in 2012) door iemand anders is gesteld. Alleen kom ik er niet echt uit m.b.t. de macro die in die vraag is gebruikt.

Korte uitleg van mijn voorbeeld document:
Kolom A bevat de naam van de machine.
Kolom B bevat de onderdeel naam van de machine.
Kolom H geeft aan wanneer iets gedaan moet worden, dagelijks, shift, periodiek of wekelijks.
Kolom I gebruiken wij om visueel kolom K t/m AM te vullen met een kleur. Dit om duidelijkheid te geven wanneer iets gedaan moet worden.

Wat ik wil doen is als volgt.
Momenteel gebruik ik de filter methode om te filteren op Kolom H en vervolgens op Kolom I. Dit werkt natuurlijk maar zorgt voor meerdere handelingen en wanneer de filter door een collega er op wordt gezet veranderd de tabel voor de ander ook. Dit document wordt door meerdere personen tegelijk gebruikt. Dus iedere filter veranderd alles voor iedereen. Graag zou ik door middel van een knop tabbladen willen genereren als: Ochtend, Middag, Nacht. Aan de hand van Kolom I zouden alle regels met daarin een 1,5 en 6 op tab Ochtend moeten komen. 2, 7 en 8 op tab Middag en 3, 9 en 10 op tab Nacht. Wanneer in Kolom I een 4 staat moeten die regels in alle tab bladen komen.

Ik hoop dat iemand mij kan helpen. In het test document zijn de echte gegevens verwijderd en heb ik er gewoon wat ingezet. Dit i.v.m. bedrijfsreglement kan ik de daadwerkelijke teksten niet er in laten staan.
 

Bijlagen

Probeer het zo eens.

Code:
Sub VenA()
  ar = Array("Ochtend", "Middag", "Nacht", 4, 1, 5, 6, 4, 2, 7, 8, 4, 3, 9, 10)
  With Sheets("Test tabel")
    For j = 0 To 2
      c00 = ar((j + 1) * 4 - 1) & "|" & ar((j + 1) * 4) & "|" & ar((j + 1) * 4 + 1) & "|" & ar((j + 1) * 4 + 2)
      .ListObjects(1).Range.AutoFilter 9, Split(c00, "|"), xlFilterValues
      .Copy , Sheets(Sheets.Count)
      With ActiveSheet
        .ListObjects(1).Delete
        .Name = ar(j)
        .Shapes(1).Delete
      End With
      .Cells(5, 1).CurrentRegion.SpecialCells(12).Copy Sheets(ar(j)).Cells(5, 1)
    Next j
    .ListObjects(1).Range.AutoFilter
  End With
End Sub
 
Bedankt VenA, het werkt in ieder geval in het test document.

Heb de module nu geladen in het origineel, maar dan werkt deze regel niet.

.Cells(5, 1).CurrentRegion.SpecialCells(12).Copy Sheets(ar(j)).Cells(5, 1)

Krijg een melding over samengevoegde veld. Deze bewerking kan niet worden uitgevoerd voor een samengevoegde cel.

In het origineel document begint de tabel onder Kolom B. Kolom A is namelijk een kolom waarin samengevoegde rijen zitten. Deze worden door het script netjes gekopieerd, maar ik denk dat er iets in de tabel zit wat de foutmelding geeft. Kolom B gebruik ik ook niet en is verborgen, is het mogelijk om een kolom uit te sluiten van kopiëren naar de 3 tabbladen?

En is het mogelijk om het document weer zichtbaar te maken nadat er een fout heeft plaats gevonden :)

Door de error zijn nu alle regels niet meer zichtbaar. De rijhoogte is op 0 waardoor ik alles met de hand moet uitlijnen nu. :d

In de bijlagen een deel van het origineel document maar zonder de teksten er in. Module zit er in, zoals je ziet loopt deze niet.
 

Bijlagen

Laatst bewerkt:
Haal de samengevoegde cellen eruit dat werkt niet in combinatie met VBA en zijn vaak totaal overbodig.
Als je kolommen toevoegt dan zal je ook het autofilter aan moeten passen

Code:
.ListObjects(1).Range.AutoFilter [COLOR="#FF0000"]10[/COLOR], Split(c00, "|"), xlFilterValues

Als je gegevens verplaatst dan moet je dat ook aanpassen in de code.
Code:
.Cells([COLOR="#FF0000"]6, 2[/COLOR]).CurrentRegion.SpecialCells(12).Copy Sheets(ar(j)).Cells([COLOR="#FF0000"]6, 2[/COLOR])
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan