• 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 een macro voor alle rijen uitvoeren

  • Onderwerp starter Onderwerp starter jk88
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

jk88

Gebruiker
Lid geworden
24 okt 2011
Berichten
43
Beste Excellers,

Ik ben weer eens op zoek naar een snelle manier om allerlei gegevens makkelijk te verkrijgen.

De situatie:
- in het tabblad "invoer" staan een paar gegevens
- deze gegevens moeten naar het tabblad "uitvoer" gaan

Wat moet er exact gebeuren:
- Als ik de macro uitvoer op het tabblad "invoer" dan moet hij automatisch alle rijen langslopen. Elke rij wordt dan 11x gekopieerd naar het tabblad "uitvoer". De inhoud in kolom H t/m T van "uitvoer" (zie voorbeeldbestand) vul ik wel eenmalig handmatig in, betreft namelijk een eenmalige import voor AdWords.

Ik heb wel een werkende VBA code gekregen waardoor ik het per rij kan doen. Maar dat werkt wel zeer omslachtig. Tevens is de code niet zo netjes.

Ik hoop dat jullie een oplossing weten.

Bekijk bijlage Voorbeeld.xlsm
 
Laatst bewerkt:
Helaas geeft de macrorecorder hier niet zo veel hulp bij dat ik er daarmee uit kan komen. Ik ben geen geavanceerde gebruiker m.b.t. VBA
 
Laatst bewerkt door een moderator:
Daarom gaf ik de suggestie de macrorecorder (met totaal niet geavanceerde VBA) te gebruiken:

selecteer de te kopiëren regel : kopiëren
selecteer het doelgebied (11 regels) : plakken
 
Het waren 1000 regels waar ik dit voor moest doen. Vandaar dat ik naar een geautomatiseerde oplossing zocht.

Ik heb de code die ik er al in had staan uitgebreid met ActiveCell.Offset(1, 0).Select. Zo hoefde ik alleen nog maar 1000x te klikken (en niet meer met de muis iedere keer de volgende rij te selecteren).

Dus het is gelukt. Wel bedankt voor je suggestie!
 
Bekijk bijlage jk88.xlsmIs zoiets niet gemakkelijker/sneller?
Wel eerst op een kopie van je werkbook proberen

Code:
Sub Try_This()
    Dim lr As Long, i As Long, ii As Long, h As Long
    lr = Cells(Rows.Count, 1).End(xlUp).Row
    i = 2
    ii = 12
    For h = 2 To lr
        Range("A" & h, Range("G" & h)).Copy Sheets("Sheet1").Range("A" & i & ":A" & ii)
        i = i + 11
        ii = ii + 11
    Next h
End Sub
 
Laatst bewerkt:
Veel makkelijker! Bedankt.
 
Laatst bewerkt door een moderator:
@Jolivanes

Ik denk dat het ook zonder de variabeleen hr, i en ii kan .....
 
@snb
Ik weet dat Uw kennis van dit veel beter is als die van mij. Ik kijk er altijd naar uit als U, en vele anderen op excel forums, vragen beantwoorden waar ik een antwoord op heb maar meestal door een veel langere weg te begaan. Voor mij is het ook dikwijls proberen en opnieuw beginnen.
Met andere woorden, ik leer nog volop van jullie en gebruik jullie (aangepaste) coding ook voor mezelf.
Voor dit geval moet ik er voor gaan zitten en proberen dit uit te pluizen zoals U in de vorige post het beschreef. Of ik er uitkom is natuurlijk maar de vraag. Het is een lang weekend hier dus mijn vrouw heeft op het ogenblik andere zaken voor me.

Groetjes en bedankt alweer.

Han
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan