Delen via

Macro kopieren en plakken speciaal

Anoniem
2013-07-13T11:31:02+00:00

Ik wil graag de volgende macro maken: Op tabblad 1 staan alle gegevens met een constante herhaling van de 1e 3 rijen

Kolom A    Kolom B

Naam        ABC

Adres        XXX

Plaats        JJJ

Nu wil ik deze 3 rijen kopieeren en plakken in tabblad 2 met de functie transponeren , resultaat:

Kolom A    Kolom B    Kolom C

Naam        Adres         Plaats

ABC           XXX            JJJ

Nu terug naar tabblad 1, de gekopieeerde rijen verwijderen, de handeling van kopieeren en plakken in tabblad 2 herhalen, enz enz

Volgens mij moet dit kunnen, maar ik kom er niet uit. (te onervaren)

Ik hoor graag hoe ik dit kan doen.

Mvrgr. Marianne

Microsoft 365 en Office | Excel | Voor thuisgebruik | Windows

Vergrendelde vraag. Deze vraag is gemigreerd vanuit de Microsoft Ondersteuning-community. U kunt met een stem aangeven of de inhoud nuttig is, maar u kunt geen opmerkingen of antwoorden toevoegen of de vraag volgen.

0 opmerkingen Geen opmerkingen

Antwoord geaccepteerd door vraagauteur

  1. Anoniem
    2013-07-13T13:31:26+00:00

    Marianne,

    Een VBA-mogelijkheid:

    Plaats onderstaande code in een algemene module:

    Sub Overzetten()

        Dim shS As Worksheet

        Dim shD As Worksheet

        Dim lngRowS As Long

        Dim lngRowD As Long

        Set shS = Worksheets("Blad1")

        Set shD = Worksheets("Blad2")

        lngRowS = shS.Range("A65556").End(xlUp).Row

        lngRowD = Round((lngRowS + 1) / 3, 0)

        With shD

            .Range("A1:C1") = Array("Naam", "Adres", "Plaats")

            .Range("A2").Formula = "=INDEX(Blad1!$B$1:$B$" & lngRowS + 3 - (lngRowS Mod 3) & ",3*((ROW()-2))+COLUMN())"

            .Range("A2:C2").FillRight

            .Range("A2:C" & lngRowD + 1).FillDown

            .Range("A2:C" & lngRowD + 1).Value = shD.Range("A2:C" & lngRowD + 1).Value

        End With

        shS.Range("A1:B" & lngRowS * 3).Clear

    End Sub

    De laatste regel (voor End Sub) verwijderd de gegevens uit Blad1.

    Voor de rest werkt de macro min of meer vergelijkbaar met de handmatige beschrijving in mijn vorige bericht.

    Jan

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen

1 extra antwoord

Sorteren op: Meest nuttig
  1. Anoniem
    2013-07-13T12:55:22+00:00

    Marianne,

    Een mogelijkheid:

    Zet handmatig in Blad2 de kopteksten: Naam, Adres en Plaats in A1:C1

    Aangenomen dat je gegevens in Blad1 staan in kolom A en B, kun je deze formule in Blad2 zetten in A2:

    =INDEX(Blad1!$B$1:$B$99;3*((RIJ()-2))+KOLOM())

    Voer deze formule naar rechts door tot  C2 en daarna de formules doorvoeren tot rij 34.

    zodanig dat alle cellen in he gebied A2:C34 deze formule bevat.

    Kopieer het gebied A1:C34 op Blad2 en d.m.v. Plakken Speciaal > Waarden. Daarmee kun je ervoor zorgen dat de gegevens op Blad2 onafhankelijk worden van de gegevens op Blad1.

    Deze handelingen zou je ook in een macro kunnen zetten.

    Hoewel als je echt een VBA-macro wilt, dan kan dat beter iets anders denk ik.

    Jan

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen