Hoe verkrijg ik automatisch een nieuw werkblad met naam

Status
Niet open voor verdere reacties.

mahieuevy

Nieuwe gebruiker
Lid geworden
24 jul 2020
Berichten
3
Dag iedereen,

Ik heb een excel werkmap waarbij de startpagina (werkblad 1) een tabel bevat met de lijst van verkoopfacturen. Dit bevat gegevens zoals de naam, woonplaats, referentie factuur, enzoverder. Werkblad 2 is het sjabloon die bij het aanmaken van een nieuw werkblad steeds moet verschijnen.
Ik heb reeds gevonden hoe ik automatisch een nieuw werkblad kan aanmaken. Als ik in kolom 3 de naam invul, wordt er automatisch een werkblad gemaakt met die naam.
Maar... :)

Ik zou graag hebben dat de naam van dat werkblad de referentie van de factuur is (zoals 2020-001 of VF1 en dan oplopend...).
Dus zo: ik vul in de eerste rij bij ref. 2020-001 de datum in, daarna de naam en voila, een nieuw werkblad opent met de factuurreferentie van de ingevulde rij als naam.

Kan iemand mij hierbij helpen?
Thx!!!
 

Bijlagen

  • Verkoopfacturen2020 kopie2.xlsm
    36 KB · Weergaven: 32
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 3 And Target.Row > 3 And Target.Count = 1 Then
    Sheets("Sjabloon").Copy , Sheets(Sheets.Count)
    With ActiveSheet
      .Name = Target.Offset(, -2).Value
      .Cells(13, 1) = Target
      .Cells(13, 8) = Target.Offset(, -2)
    End With
  End If
End Sub
 
Wow VenA, dat is super!!!! :D Lukt perfect!

Nu heb ik nog een iets :) Ik heb iets verkeerd gedaan in mijn formules denk ik.
De eerste factuur lukt perfect, maar voor de 2de factuur neemt hij de gegevens over van de 1ste factuur.
Factuurdatum, straat, plaats & BE nummer zijn verkeerd...

Wat moet ik doen dat hij de gegevens overneemt van rij 2 in factuur 2?

Oh en, is er een manier om de hyperlinks automatisch aan te maken? Nu moet ik deze nog één voor één linken..

Alvast zeer zeer bedankt voor alle hulp!!
 
Je hebt in jouw formules een directe celverwijzing staan en dat werkt niet. Je kan het oplossen met vertikaal zoeken. Beter is het om eerst de gegevens volledig in te vullen in het blad 'Startpagina' dan heb je de formules ook niet nodig.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column > 1 And Target.Column < 7 And Target.Row > 3 And Target.Count = 1 Then
    If Application.CountA(Cells(Target.Row, 2).Resize(, 5)) = 5 Then
      Sheets("Sjabloon").Copy , Sheets(Sheets.Count)
      With ActiveSheet
        .Name = Cells(Target.Row, 1).Value
        .Cells(13, 1).Resize(4) = Application.Transpose(Cells(Target.Row, 3).Resize(, 4))
        .Cells(13, 8).Resize(2) = Application.Transpose(Cells(Target.Row, 1).Resize(, 2))
      End With
      ActiveSheet.Hyperlinks.Add Cells(Target.Row, 1), "", "'" & Cells(Target.Row, 1).Value & "'!A1"
    End If
  End If
End Sub
 
Laatst bewerkt:
Wow bedankt, werkt perfect!
Nog een laatste vraag (hopelijk).
Ik moest nog 2 extra kolommen toevoegen die dan zoals de rest ook automatisch moet worden aangevuld op de factuur.
Type voertuig --> G9
Nummerplaat --> G10

Dus pas na het invullen van de nummerplaat op de startpagina moet de factuur automatisch aangemaakt worden..

Bestaat er ergens een goeie website/cursus waar ik deze VBA codes kan terugvinden en bestuderen? :)
Bedankt!!
 

Bijlagen

  • Verkoopfacturen2020 kopie2.xlsm
    33,6 KB · Weergaven: 48
Zoek in de help eens naar resize. Dan kan je de code zelf eenvoudig aanpassen. Er zullen vast goede websites te vinden zijn. Even googlen dus:D
 
Beste,

Omdat ik de code van VenA zeer compact vind, heb ik ze ontcijferd.
Code:
 With ActiveSheet
        .Name = Cells(Target.Row, 1).Value
        .Cells(13, 1).Resize(4) = Application.Transpose(Cells(Target.Row, 3).Resize(, 4))
        .Cells(13, 8).Resize(2) = Application.Transpose(Cells(Target.Row, 1).Resize(, 2))
      End With
cells(13,1). Resize (4) betekent op tabblad Sjabloon vanaf rij 13 kolom 1 en 4 rijen naar beneden Application.Transpose(Cells(Target.Row, 3).Resize(, 4)) betekent op tabblad Starpagina vanaf de aangevinkte rij kolom 3 en 4 kolommen ver.

Let wel : je zal de voorwaarden waarop de worksheet change reageert moeten aanpassen want de subroutine reageert nu op het verkeerde moment.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan