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

bepaalde regels kopieren naar andere tablad

Status
Niet open voor verdere reacties.

rvangroen

Gebruiker
Lid geworden
28 jan 2008
Berichten
35
Beste lezers!

Ik zit even met een vraagje, ben hier al tijdje niet meer geweest dus dat is een goed teken;)!

Ik heb een vraagje over het volgende voor een bestelsysteempje wat ik aan het maken ben, en wil de soort bestellingen A/B/C/D allemaal verdelen over de tabbladen. Kan uit mijn huidige systeem het exporteren naar excel en krijg dan het volgende, zie bijlage. Dus wat ik wil is eigenlijk A in sheet 2 B in sheet 3,

Ik deed nu steeds met een filter, maar aangezien mijn soorten bestellingen steeds meer worden wordt dit steeds meer werk, wie heeft er een makkelijkere oplossing?

Groet en veel denk/dank!
 

Bijlagen

Als je eerst nog 2 extra sheets aanmaakt dan werkt de volgende code:

Code:
Sub VerdelenBestelling()
Dim i, lr As Long
Dim r As Range

    
    lr = [b100000].End(xlUp).Row
    Set r = Range("A2:A" & lr)
    For i = 2 To lr
        If Cells(i, 2).Value = "A" Then
            Cells(i, 2).EntireRow.Copy (Sheets(2).[a100000].End(xlUp).Offset(1))
        ElseIf Cells(i, 2).Value = "B" Then
            Cells(i, 2).EntireRow.Copy (Sheets(3).[a100000].End(xlUp).Offset(1))
        ElseIf Cells(i, 2).Value = "C" Then
            Cells(i, 2).EntireRow.Copy (Sheets(4).[a100000].End(xlUp).Offset(1))
        ElseIf Cells(i, 2).Value = "D" Then
            Cells(i, 2).EntireRow.Copy (Sheets(5).[a100000].End(xlUp).Offset(1))
        End If
    Next
End Sub

Groet,
Ronald
 
Open de VBA-editor met ALT+F11. Dan Invoegen-->Module en kopieer dan deze code daarin.

In het bestand kan je met ALT+F8 de macro uitvoeren of een knop op het werkblad maken.

Groet,
Ronald
 
Hoi Ronald!

Het werkte direct in het voorbeeld, maar probeer nu je formule te begrijpen, omdat het in andere kolommen staatdan in het voorbeeld als ik het expoerteer naar excel. En de soort geen A is maar een hele naam maar (Pimento), zou jij kort kunnen uitleggen hoe ik dat dan kan aanpassen de formule?
 
Wat de code doet is:
1. De laatste regel (lr) van kolom B opzoeken en daarvan het rijnummer onthouden;
2. Het bereik (r) benoemen waarin gekeken wordt om wat voor soort besteling het gaat.
3. Elke regel (i) in het bereik langs gaan en bepalen naar welk sheets de regel gekopieerd moet worden. Hierbij staat cells(i,2) voor de cel die gecontroleerd wordt. De eerste cel is dus B2 omdat de zoekactie begint met rij2.

Om het aan te passen naar jouw oorspronkelijke sheet:
1. Vervang je A t/m D door de werkelijke soort. Let goed op de hoofd- en kleine letters en laat de " staan;
2. Vervang de 2 in cells(i,2) door het echte kolomnummer waarin de soorten staan;
3. Zet de headers alvast in de sheets 2 t/m 5;
4. Vervang de b in lr = [b100000].End(xlUp).Row door de werkelijke kolom waarin de soorten staan.

De regels "Dim r As Range" en Set r = Range("A2:A" & lr) kan je verwijderen. Die zijn overbodig.

Groet,
Ronald
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan