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

ipv kopie ActiveSheet moet deze het tabblad factuur kopieren

Status
Niet open voor verdere reacties.

SidneyR

Gebruiker
Lid geworden
17 sep 2012
Berichten
45
Dag mensen,

Ik ben momenteel bezig voor school om een factuur te maken via excel.
Ben al een heel eind op weg (eerste keer bezig met een macro)

Wanneer in het tabblad invoer de juiste klant en het product geselecteerd zijn en het juiste aantal dan is er eenvoudig d.m.v. een sneltoets control + shirt + s een kopie van het huidige werkblad te maken die opgeslagen word op mijn bureaublad in het mapje facturen en vervolgens verwijderd hij de gegevens om de volgende factuur te kunnen maken. Maar dit zullen jullie vast wel begrijpen als je de onderstaande VBA code ziet.

de huidige VBA code is:
Code:
Sub VolgFact()
Range("I5").Value = Range("I5").Value + 1
Range("C2").ClearContents
Range("C10").ClearContents
Range("G10").ClearContents
Range("I4").Value = Date
End Sub

Public Sub OpslBestand()
Dim NieuwFact As Variant
'kopiëren document als nieuwe factuur
ActiveSheet.Copy
NieuwFact = "C:\Users\Sidney\Desktop\facturen\Fact" & Range("I5").Value & ".xlsx"
ActiveWorkbook.SaveAs NieuwFact, FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close
VolgFact
End Sub
Nu is mijn vraag:
Inplaats het actieveblad ( ActiveSheet.Copy) moet er een copy gemaakt worden van het tabblad Factuur. En als het even kan moet deze hard gekopieerd worden omdat het anders voor kan komen wanneer het huidige bestand niet geopend is de waardes onbekend zijn.

Alvast bedankt!!! ( bij reageren graag altijd met een korte toelichting, leer er graag van)
 

Bijlagen

  • Excelfactuur.xlsm
    47,3 KB · Weergaven: 97
Laatst bewerkt door een moderator:
Sidney,

Als je ActiveSheet.Copy wijzigt in Sheets("Factuur").Copy wordt vanzelf het tabblad Factuur gekopieerd.

Veel Suces.
 
Heel erg bedankt Elsendoorn deze code zocht ik.

Echter is het zo wanneer ik het gekopieerde blad open. Dan krijg ik de volgende melding: zie knipsel.

Ik moet het dus op de één of andere manier zo kopiëren dat er vaste waardes worden gepakt.
 

Bijlagen

  • Knipsel.JPG
    Knipsel.JPG
    37,9 KB · Weergaven: 68
Sidney,

Omdat je geen range maar en volledig tabblad kopieert kun je niet kopieren met vaste waarde.
Voeg na het kopieren twee regels toe om de reeks te kopieren:
Code:
    Range("A1:H100").Copy
    Selection.PasteSpecial Paste:=xlPasteValues
Voor de Range moet je even kijken wat de correcte reeks is voor de factuur.

Veel Succes.
 
Laatst bewerkt door een moderator:
Dankje Elsendoorn,

Momenteel heb ik:
Public Sub OpslBestand()
Dim NieuwFact As Variant
'kopiëren document als nieuwe factuur
Sheets("Factuur").Copy
Range("B2:J52").Copy
Selection.PasteSpecial Paste:=xlPasteValues
NieuwFact = "C:\Users\Sidney\Desktop\facturen\Fact" & Range("I5").Value & ".xlsx"
ActiveWorkbook.SaveAs NieuwFact, FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close
VolgFact
End Sub

Nog twee zaken:
Momenteel als ik iets opsla dan wordt de bestandsnaam niet uitgebreid met het desbetreffende factuurnummer. Alleen de naam Fact wordt aangemaakt.

En verder gaat het kopiëren van van de sheet nu goed maar als ik het bestand open wat gemaakt is. Ziet het er als volgt uit: Zie knipsel2.. Dit is nog niet helemaal de bedoeling. Er wordt nu naast de huidige factuur de gegevens gekopieerd.
 

Bijlagen

  • Knipsel2.JPG
    Knipsel2.JPG
    75 KB · Weergaven: 71
Laatst bewerkt:
Dat alleen de Fact naam zonder factuurnummer gemaakt wordt is opgelost.
Ik heb de regel: NieuwFact = "C:\Users\Sidney\Desktop\facturen\Fact" & Range("I5").Value & ".xlsx"

Naar boven geplaatst.
 
Sidney,

Voeg voor je gaat kopieeren de volgende regel toe:
Range("B2").select
De gegevens staan op de verkeerde plaats omdat de cursor bij het plakken op cel G30 staat of iets dergelijks.

Veel Succes.
 
Sidney,

Voeg voor je gaat kopieeren de volgende regel toe:
Range("B2").select
De gegevens staan op de verkeerde plaats omdat de cursor bij het plakken op cel G30 staat of iets dergelijks.

Veel Succes.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH het werkt :D
Helemaaaaaal prachtig! Hartelijk bedankt!

Weet niet of ik nog een nieuwe vraag moet starten maar zit met nog iets.
Ik zou ook graag aan de opslaan functie nog een print opdracht willen toevoegen.
Nu heb ik iets gevonden op het internet wat de sheet wel laat printen maar vervolgens krijg ik een foutcode.
Dit heb ik toegevoegd ( Sheets("Factuur").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True)

Hieronder gekopieerd hoe het er momenteel uitziet. De foutopsporing (fout 1004) geeft aan dat het bij het dik gedrukte fout gaat (Range("C10").ClearContents).
Tot slot zou ik graag zien als het tabblad factuur geprint wordt dat deze passend gemaakt wordt voor op 1 pagina.

Sub VolgFact()
Range("I5").Value = Range("I5").Value + 1
Range("C2").ClearContents
Range("C10").ClearContents
Range("G10").ClearContents
Range("I4").Value = Date
End Sub

Public Sub OpslBestand()
Dim NieuwFact As Variant
'kopiëren document als nieuwe factuur
NieuwFact = "C:\Users\Sidney\Desktop\facturen\Fact" & Range("I5").Value & ".xlsx"

Sheets("Factuur").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

Sheets("Factuur").Copy
Range("B2").Select
Range("B2:J52").Copy
Selection.PasteSpecial Paste:=xlPasteValues

ActiveWorkbook.SaveAs NieuwFact, FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close
VolgFact
End Sub
 
Dit kwam ik bij iemand anders tegen om het passend te maken? Misschien kan iemand er iets mee..

Code:
With ActiveSheet.PageSetup
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan