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

Opgelost macro code

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Berry1978

Gebruiker
Lid geworden
25 jun 2019
Berichten
43
Goedemiddag, is er toevallig een macro code waarmee ik het volgende kan doen,

ik heb op Blad1 in 29 cellen gegevens staan en deze wil ik vervolgens allemaal kopiëren naar Blad2 en dan vanaf rij 3 beginnen.
Dus iedere keer als ik op Blad1 nieuwe gegevens heb ingevuld en ik op de knop druk moeten de gegevens in de eerst volgende lege rij geplaatst worden op Blad2 en tevens de 29 cellen op Blad1 gelijk weer leeg gemaakt worden voor nieuwe invoer.
Als het mogelijk zou zijn dat het ook in de code aan te passen is naar welke cel het gekopieerd wordt.
De volgorde in het eindresultaat verschilt namelijk. Dus bijvoorbeeld de gegevens van cel B3 op blad1 moeten op Blad2 in kolom G komen.

Uiteraard is dit bestand slechts een voorbeeld. In het originele bestand worden de gegevens d.m.v. een userform ingevoerd (11 waardes) en zijn de overige cellen uitkomsten/berekeningen n.a.v. de ingevoerde waardes welke weer in een andere volgorde in een totaallijst op Blad2 moeten komen.
 

Bijlagen

Uiteraard is dit bestand slechts een voorbeeld. In het originele bestand worden de gegevens d.m.v. een userform ingevoerd (11 waardes) en zijn de overige cellen uitkomsten/berekeningen n.a.v. de ingevoerde waardes welke weer in een andere volgorde in een totaallijst op Blad2 moeten komen.
Als ik dit lees zijn we dan niet veel met je voorbeeldbestand aangezien het niet een 1 op 1 kopie is op Blad2. Hoe kunnen wij weten waar welke waarde moet komen ?
Of heb ik het verkeerd begrepen dan ?
 
Klopt de bladen zijn geen 1 op 1 kopie ook niet wat de volgorde betreft. Dus vandaar ook mijn vraag of dit überhaupt mogelijk is.
Maar die 29 cellen op rij waar al die gegevens in staan op Blad1 moeten dus alle 29 naar Blad2 in de kolommen A t/m AC vanaf rij 3.
Ik hoop dat er dan tevens een mogelijkheid is om dit zelf aan te passen in de macro code naar wat voor kolom b.v. cel B3 wordt weggeschreven.
Net zoiets als bijvoorbeeld een code bij een opdrachtknop waarbij zoals onderstaande de waarde van cel A1 in cel D18 terecht komt. Dus dat dit makkelijk aan te passen is.
Private Sub CommandButton1_Click()
Range("D18").Value = Range("A1").Value
End Sub
 
Dat op zich is geen probleem maar om een passende code te schrijven moeten wij wel weten waar wat moet komen.
Pas je voorbeeldbestand op Blad2 zodanig aan zodat wij kunnen zien van welke cel op Blad1 de respectievelijke waarden komen.
 
Dat zou zo kunnen, zelf verder in te vullen, zie Sub Kopieer in de module van Blad2, het werkblad dat overigens de naam Blad1 draagt (en omgekeerd):
 

Bijlagen

@Warme bakkertje, in deze bijlage zo het eigenlijk zou moeten komen. Alles wat in rij 18 staat in het originele bestand moet dan weggeschreven worden naar de kolommen die staan aangegeven in de betreffende cellen.
Dus de uitkomst in cel A18 moet naar kolom Y. B18 naar kolom Z. enz.
 

Bijlagen

Je bent niet erg consequent in je wensen, eerst is het rij 3 vanaf kolom B, nu is het rij 18 vanaf kolom A.
Maar vooruit:
 

Bijlagen

@ AHulpje, vriendelijk bedankt voor je hulp en oplossing. Jou bijlage doet precies wat ik wil.
Wat betreft de 2e bijlage en rij 18, daarin werd ik iets specifieker om gebruik te maken van de hulp van Warme bakkertje. Die vroeg in #4 om blad2 aan te passen zodat hij precies wist wat waar moest komen. En in het originele bestand staat het in rij 18.
Maar beide vriendelijk bedankt voor jullie genomen moeite. Ik ga jou code (proberen) om te zetten naar m'n eigen bestand zodat de puzzelstukjes op de juiste plaats vallen en zal hem daarna op opgelost zetten.
 
Kan ook met een loopje.

Code:
Sub Kopieer()
    myarr = Array(25, 26, 27, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3, 24, 29, 28, 14, 15, 16, 17, 18, 20, 21, 22, 23, 19)
    With Sheets("Blad2")
        r = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        For i = 1 To 29
            .Cells(r, myarr(i - 1)).Value = Sheets("Blad1").Cells(18, i).Value
        Next
    End With
    Sheets("Blad1").Rows(18).ClearContents
End Sub
 
Indien beide bladen dezelfde kolomkopnamen hebben kan het met 'AdvancedFilter'.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan