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

Gegevens vorige werkblad overnemen + 1

Status
Niet open voor verdere reacties.

SantaL0vesMe

Gebruiker
Lid geworden
11 apr 2016
Berichten
10
Beste allemaal,

Ik ben nieuw op dit forum en ook nieuw in het gebruik van Excel macro's. Ik heb een macro ingevoegd in het werkblad 'Windfarms', waarmee er een nieuw werkblad wordt gevormd zodra er een nieuwe cel wordt toegevoegd in rij A. Dit werk naar behoren. De macro die ik hiervoor gebruik is als volgt:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
    Worksheets.Add after:=Worksheets(Worksheets.Count)
    Worksheets(Worksheets.Count).Name = Target
End If
End Sub

In het voorbeeld is het eerste werkblad 'Pirallahi Island' al aangemaakt, deze bevat gegevens uit het hoofd werkblad 'Windfarms'. Nu wil ik het volgende bereiken:
Als er een nieuw werkblad wordt aangemaakt (de volgende in het voorbeeld is 'Nobelwind'), wil ik dat de gegevens uit het een na laatste werkblad op dat moment (dus het werkblad Pirallahi Island) worden overgenomen, maar dan de cellen +1, waardoor automatisch de gegevens van 'Nobelwind' uit het hoofd werkblad 'Windfarms' worden overgenomen.

Iemand een idee hoe dit mogelijk is?

Alvast bedankt!
 

Bijlagen

  • Voorbeeld helpmij.xlsm
    26,7 KB · Weergaven: 39
Welkom op het forum.

Bedoel je nou dat de gegevens van desbetreffende naam getoond moeten worden in het nieuwe werkblad? Zo ja, dan gaat het een beetje lastig als je in kolom A begint. Dan staan er namelijk nog geen gegevens in.
Zo niet, dan moet je het beter uitleggen. Want begrijp echt niet wat je bedoelt met 'alles +1'
 
Bedankt voor het antwoord.
Ik bedoel het volgende:

Het hoofd werkblad 'Windfarms' bevat alle gegevens. Ik wil uiteindelijk voor elke windfarm een apart werkblad hebben met de gegevens die daarbij horen. Werkblad 2 bevat nu de gegevens van het eerste windpark, Pirallahi Island. Dit zijn de gegevens A2 t/m W2 uit het werkblad 'Windfarms'. Wat ik wil bereiken is dat als ik een nieuw werkblad aanmaak, door bijvoorbeeld de al ingebouwde macro, dat in dit werkblad de gegevens uit werkblad 2 worden gekopieerd, maar dan voor 1 rij lager, dus A3 t/m W3. Bij het volgende werkblad moet dit dus A4 t/m W4 worden, en zo verder.

Ik hoop dat ik het nu wel duidelijk heb uitgelegd.
 
Nogmaals, er valt geen data te kopiëren als de macro start wanneer een cel in kolom A wordt gewijzigd (i.c.m. je huidige ingebouwde macro). Er staat simpelweg (nog) niks in kolom B t/m W van dezelfde regel.
Dus geef nu maar gewoon 2 opties die ik logisch zou vinden;
1. De macro word gestart wanneer je kolom W hebt gewijzigd (dan staat alle info in de rij en is er daadwerkelijk data om te kopiëren)
2. De macro word gestart d.m.v. een knop. Dan wordt al je data verdeeld over de tabbladen...

Iene miene mutte...
 
Optie 2 zou voor mijn bestand het meest handig zijn, denk ik.
Even voor de volledigheid, ik heb momenteel meer dan 400 rijen (400+ windparken) aan informatie in een excel bestand staan. Deze staan echter allemaal in 1 werkblad, het werkblad 'Windfarms'. Alle gegevens heb ik dus al, deze moeten alleen worden verdeeld per windpark in een werkblad.

De gestelde vraag is vooral voor het versimpelen naar het verdelen van de informatie naar verschillende werkbladen (anders moet ik 400+ werkbladen zelf maken en handmatig invullen)
 
Met behoud van de formules.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 And Target <> "" Then
    If IsError(Evaluate(Target.Value & "!A1")) Then
        Sheets.Add(after:=Sheets(Sheets.Count)).Name = Target.Value
        With ActiveSheet
            For j = 1 To 23
                .Cells(j + 1, 2).Formula = "=Windfarms!R1C" & j
                .Cells(j + 1, 3).Formula = "=Windfarms!R" & Target.Row & "C" & j
            Next j
        End With
    End If
End If
End Sub
 
Kijk nu komen we ergens....

Probeer dit eens...
Code:
Sub Spaarie()
    With Sheets("Windfarms")
        For Each v In Columns(1).SpecialCells(2).Offset(1).SpecialCells(2)
            Sheets.Add(, Sheets(Sheets.Count)).Name = v.Value
            ActiveSheet.Range("B2:B25").Value = Application.Transpose(.Range("A1:W1"))
            ActiveSheet.Range("C2:C25").Value = Application.Transpose(.Range(.Cells(Sheets.Count, 2), .Cells(Sheets.Count, 23)))
        Next
    End With
End Sub
 
@VenA
Hartstikke bedankt! Met die macro krijg ik alle gegevens in een nieuw tabblad, zodra ik een Cel in A wijzig. Alle gegevens heb ik al dus hoef op deze manier enkel voor Cel in kolom A op enter te drukken. Super!

@spaarie
Ik heb jouw macro ingebouwd, maar zodra ik de macro wil uitvoeren opent zich een leeg nieuw tabblad met de volgende foutmelding: Fout VB.PNG
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan