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

2 tabbladen opslaan

Status
Niet open voor verdere reacties.

DeArie

Gebruiker
Lid geworden
15 jul 2016
Berichten
159
Hallo iedereen,

Ik zou graag de volgende code aan willen passen zodat hij 2 tabbladen opslaat als ik de volgende macro gebruik:

Code:
Public Sub FactuurNummerEnOpslaan()
Sheets(1).Range("B10") = Format(CreateObject("scripting.filesystemobject") _
        .getfolder("C:\Users\D-post\OneDrive\Documenten\D-post\facturen\").Files.Count, "201800000") + 1
Range("E10").Value = Date
ActiveSheet.Copy
NieuwFact = "C:\Users\D-post\OneDrive\Documenten\D-post\facturen\" & Range("B10").Value & ".xlsx"
With ActiveWorkbook
    .Sheets(1).UsedRange = .Sheets(1).UsedRange.Value
    .SaveAs NieuwFact, FileFormat:=xlOpenXMLWorkbook
    .Close
  End With

End Sub

Na rond gekeken te hebben dacht ik het volgende te kunnen aanpassen, maar dat werkt helaas niet:

Code:
Public Sub FactuurNummerEnOpslaan()
Sheets(1).Range("B10") = Format(CreateObject("scripting.filesystemobject") _
        .getfolder("C:\Users\D-post\OneDrive\Documenten\D-post\facturen\").Files.Count, "201800000") + 1
Range("E10").Value = Date
ActiveSheet.Copy
NieuwFact = "C:\Users\D-post\OneDrive\Documenten\D-post\facturen\" & Range("B10").Value & ".xlsx"
With ActiveWorkbook
    .Sheets("blad1", "blad2").UsedRange = .Sheets("blad1", "blad2").UsedRange.Value
    .SaveAs NieuwFact, FileFormat:=xlOpenXMLWorkbook
    .Close
  End With

End Sub

Het gaat telkens om andere namen van de tabbladen wel zijn het er maximaal 2 die hij moet opslaan op blad 2 hoeft geen datum of tijd of iets dergelijks erbij gezet te worden zoals hij met de bovenste wel doet.

Heeft iemand de oplossing of kan me de juiste richting op wijzen.

Alvast dank.
 
Beste Emields,

Dat doe ik om eventueel naderhand nog een wijziging aan te kunnen brengen.
 
Als je op voorhand niet wet welke bladen, moet je de bladen selecteren met Ctrl+muis.

Code:
Windows(1).SelectedSheets.Copy
 
Beste HSV,

Als ik bovenstaande code gebruik om op te slaan en nummer toevoegen dan heb ik altijd maar 2 tabbladen niet meer zie bijlage Bekijk bijlage Test Helpmij.xlsx.
Bij het eerste blad staat altijd staat "blad 1 of Hoofdblad" tweede blad staat normaal een klantnaam of nummer en wil deze dus graag met eerder geplaatste code opslaan.

Nu heb ik jouw code overal zon beetje tussen geplaatst, maar krijg jammer genoeg alleen fout meldingen en/of hij slaat het tweede blad niet mee op, maar opent wel een ander werkblad ( waar het tweede tabblad dan ook niet bij staat.

Heb je een idee wat ik verkeerd doe?
 
Beste HSV,

Soms heb je van die heldere momenten, ben erachter waar hij komen moet.:D

Code:
Public Sub FactuurNummerEnOpslaan()
Sheets(1).Range("B10") = Format(CreateObject("scripting.filesystemobject") _
        .getfolder("C:\Users\D-post\OneDrive\Documenten\D-post\facturen\").Files.Count, "201800000") + 1
Range("E10").Value = Date
Windows(1).SelectedSheets.Copy
NieuwFact = "C:\Users\D-post\OneDrive\Documenten\D-post\facturen\" & Range("B10").Value & ".xlsx"
With ActiveWorkbook
    .Sheets(1).UsedRange = .Sheets(1).UsedRange.Value
    .SaveAs NieuwFact, FileFormat:=xlOpenXMLWorkbook
    .Close
  End With

End Sub

THNX
 
Laatst bewerkt:
Het werkt nog niet helemaal zoals ik zou willen. Als ik 2 bladen selecteer, maar daar zit het eerste blad niet bij dan krijg ik een fout melding. Bijvoorbeeld "Briefpapier afdrukken & Klantspecificatie".

Bekijk bijlage Helpmij Voorbeeld..xlsx

Code:
Public Sub FactuurNummerEnOpslaan()

Sheets(1).Range("B10") = Format(CreateObject("scripting.filesystemobject") _
        .getfolder("C:\Users\D-post\OneDrive\Documenten\D-post\facturen\").Files.Count, "201800000") + 1
Range("D10").Value = Date
Windows(1).SelectedSheets.Copy
NieuwFact = "C:\Users\D-post\OneDrive\Documenten\D-post\facturen\" & Range("B10").Value & ".xlsx"
With ActiveWorkbook
    .Sheets(1).UsedRange = .Sheets(1).UsedRange.Value
    [COLOR="#FFFF00"].SaveAs NieuwFact, FileFormat:=xlOpenXMLWorkbook[/COLOR]
    .Close
  End With

End Sub

Ik denk dat dat ermee te maken heeft dat dan de "ActiveWorkbook" niet geselecteerd is? Hij opent ook een nieuwe map waarhij dan de 2 geselecteerde bladen wel in wegschrijft maar niet naar waar ik hem hebben wil inclusief filescount. Is de code zo aan te passen dat dit geen problemen geeft en zoja hoe of welke kant moet ik opzoeken?

En is er tevens een manier als ik twee bladen selecteer dat ik deze via outlook kan verzenden, als ik dit nu via "bestand, Delen, email, pdf" doe voegt hij alle bladen uit het bestand toe, terwijl ik alleen de 2 geselecteerde bladen wil verzenden het liefst onder de naam uit cel B10.

Hopelijk kan iemand me helpen of de juiste kant op sturen.
 
Zo dan?
Code:
Public Sub FactuurNummerEnOpslaan()


[COLOR=#ff0000]With [/COLOR]Sheets(1)
  .Range("B10") = Format(CreateObject("scripting.filesystemobject") _
        .getfolder("C:\Users\D-post\OneDrive\Documenten\D-post\facturen\").Files.Count, "201800000") + 1
[COLOR=#ff0000][SIZE=6].[/SIZE][/COLOR]Range("D10").Value = Date
NieuwFact = "C:\Users\D-post\OneDrive\Documenten\D-post\facturen\" & [COLOR="#FF0000"][SIZE=6]​.[/SIZE][/COLOR]Range("B10").Value & ".xlsx"
Windows(1).SelectedSheets.Copy
With ActiveWorkbook
    .Sheets(1).UsedRange = .Sheets(1).UsedRange.Value
    .SaveAs NieuwFact, [COLOR="#FF0000"]51[/COLOR]
    .Close
  End With
[COLOR=#ff0000]end with[/COLOR]

End Sub
 
Laatst bewerkt:
Beste HSV,

Dit werkt goed, alleen nu telkens als ik die code gebruik gooit Excel mij eruit. Hij slaat hem wel op en al het andere waarvoor hij opdracht krijgt maar hij gooit me dus uit het programma en sluit alle andere tabbladen.
Heeft jij of iemand misschien een idee waar dit aan kan liggen?
 
Met .close ga je niet uit het programma maar sluit het bestand dat actief is.
Application.quit sluit het programma, maar dat staat er niet in.
Test of het in een ander bestand beter gaat.
 
Als ik de code in een leeg Excelsheet gebruik doet hij het zelfde, hij gooit me er dus uit. Soms start hij terug op maar meestal niet.
Als ik de (') voor .close zet blijft Excel wel geopend maar zoals HSV al schrijft sluit hij het blad niet, dit moet je dan handmatig doen.
 
Doe eens een diagnose uitvoering.
 
Beste Hsv,

Het enige wat hij dan aangeeft is:

Dat er "documenteigenschappen en persoonlijke gegevens zijn aangetroffen. koppelingen zijn naar andere bestanden.

Voor de rest niets.
 
Heb je er nog andere codes in staan waar het programma over struikelen kan?
 
Een .xlsx bevat geen code.
 
Dat is het bestand waar ik mee werk, dan staat er geen code in. Alleen formules.
 
Je hebt toch een code gekregen om het factuurnummer op te hogen?
Met dat bestand werk je toch?
 
Ja klopt, staat ook in de code hierboven, deze staat niet in het blad wat ik gebruik om mijn facturen te maken.
Die staat in de map PERSONAL. Ook de controle hierop uitgevoerd maar deze geeft ook geen foutmeldingen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan