Programeren van een loop

Status
Niet open voor verdere reacties.

Snijbloem

Gebruiker
Lid geworden
11 aug 2014
Berichten
7
Ik ben nog geen held in het programmeren in VBA, dus hulp is welkom.

Op tabblad 1 heb ik een grote hoeveelheid gegevens in kolommen staan. Deze staan gegroepeerd in kolommen van 4, met een wisselende aantal rijen.
Ik maak eerst een kopie van tabblad 1 op tabblad 2. Van deze kopie wil ik de eerste 4 kolommen plakken op tabblad 3. Dan keer ik terug naar tabblad 2, verwijder de eerste 4 kolommen en herhaal mijn knip en plakwerk van tabblad 2 naar tabblad 3. Dit wil ik blijven herhalen tot alle gegevens op tabblad 2 verwijderd zijn en als 1 lange kolom op tabblad 3 staan.

Het knip en plakwerk op tabblad 3 lukt.

Het programmeren van een loop voor het verwijderen van de kolommen op tabblad 2 lukt mij niet. Ik heb geen idee hoe dat ik dat vormmoet/kan geven. Graag wat praktische suggesties in VBA.
 
Laat eens zien wat je al hebt. Of post een bestandje met de huidige macro.
 
Probeer een macro op te nemen.

D.w.z. start de macro opname vanaf het openen van het bestand.

Stop de macro nadat je de gewenste (bovenstaande) handelingen hebt verricht.

Wijzig eventueel de gemaakte macro zodanig dat het e.e.a. herhaald wordt.

Dit is denk ik het makkelijkste...

P.s. werk altijd met een backup...
 
Laatst bewerkt:
en nu met bestand

Allen,

Bijgevoegd is een bestand waarbij dit vraagstuk zou moeten gaan werken.


Bijdragen blijven welkom!
 

Bijlagen

  • helpmijexcelbestand.xlsm
    90,4 KB · Weergaven: 23
Snijbloem,

Hierbij de door jou gevraagde macro, ik heb van jouw macro's er een gemaakt.
Door gebruik te maken van een loop heb ik ook de overige kolommen netjes op een rij
kunnen plaatsen. In de macro heb ik proberen te beschrijven wat het programma doet.

Bekijk bijlage HelpMijKopieerEnBewerk.xlsm

Veel Succes.
 
Hallo Elsendoorn 2134,

Hartelijk dank. Werkt perfect. Qua programmeren herken ik veel, maar dit was mij nooit zo gelukt. Erg leerzaam.

Groet,
 
Ik denk dat je met volgende ineens op Blad2 (of Blad3 indien gewenst) hetzelfde resultaat krijgt.

Code:
Sub tst()
    Sheets("Blad2").Range("A7").Resize(, 4) = Array("Serie", "Codering", "Document", "Waarde")
    With Sheets("Blad1")
        Do While .Range("A7").Offset(0, nLoper * 6) <> ""
            .Range("A7").Offset(0, nLoper * 6).Resize(, 4).AutoFilter Field:=4, Criteria1:="1"
            .AutoFilter.Range.SpecialCells(12).Copy Sheets("Blad2").Range("A" & Rows.Count).End(xlUp).Offset(1)
            .AutoFilterMode = False: nLoper = nLoper + 1
        Loop
    End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan