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

Opslag excel bestand

Status
Niet open voor verdere reacties.

Royke007

Gebruiker
Lid geworden
24 jun 2010
Berichten
132
Hallo allemaal

Ik weet niet of deze vraag ooit al eens geweest is maar vraag het toch even.

Is er een mogelijkheid dat als ik mijn excel opsla als dat het originele geschreven bestand ook open blijft staan met de data die we zelf nog moeten invullen ?
Nu is het namelijk zo als ik opslaan als klik dat ik alleen het opgeslagen bestand te zien krijg en dat het originele bestand gesloten is samen met de data die ingevuld is. Ja ik heb dan het nieuwe opgeslagen document maar omdat ik met meerdere klanten werk en daar verschillende registraties voor heb wil ik niet 5 tot 6 verschillende registraties open hebben staan.

In mijn document het ik een knop geplaatst met een macro dat ik het document opsla op een specifieke locatie met naam, datum, klant en dienst maar het is dus de bedoeling dat het originele document open blijft staan zodat ik daar mijn data kan blijven updaten en opslaan. Ik denk dat hier ook een macro voor bestaat maar kan hier niks over vinden.

Hieronder heb ik mijn werkende macro's staan. Uiteraard namen zijn fictief. Zoals deze nu staat werkt het alles wordt ook daar weggeschreven zoals de macro's aangeven. Nu alleen nog een Macro zodat het originele bestand met de macro's niet afgesloten wordt.

Code:
Sub Klant1toggle()
    Rows("10:50").hidden = Not Rows("10:50").hidden = True
    Sheets("Registraties").Range("H5").Value = "Klant1"
    Rows("51:90").hidden = True
    Rows("91:131").hidden = True
End Sub
Sub Klant2toggle()
    Rows("51:90").hidden = Not Rows("51:90").hidden = True
    Sheets("Registraties").Range("H5").Value = "Klant2"
    Rows("10:50").hidden = True
    Rows("291:131").hidden = True
End Sub
Sub Klant3toggle()
    Rows("91:131").hidden = Not Rows("91:131").hidden = True
    Sheets("Registraties").Range("H5").Value = "Klant3"
    Rows("10:50").hidden = True
    Rows("51:90").hidden = True
End Sub
Sub Opslag()
Dim Path1 As String
    Dim DataH2 As Date
    Dim DataH3 As String
    Dim DataH5 As String
    Dim LegeRegel As Integer, x As Integer
    
Range("I1").Select
shift = Range("H3")
customer = Range("H5")

Path1 = "C:\Users\Ik\Test\2019\registraties"
Dezefile = "Registratie.xlsm"


'Gegevens opslaan in registratie bestand

 'Directory voor wegschrijven registraties bepalen adhv klant
Path2 = "C:\Users\Ik\Test\2019\registraties"
If customer = "Klant1" Then Path2 = "C:\Users\Ik\Test\2019\registraties\Klant1"
If customer = "Klant2" Then Path2 = "C:\Users\Ik\Test\2019\registraties\Klant2"
If customer = "Klant3" Then Path2 = "C:\Users\Ik\Test\2019\registraties\Klant3"

       
Application.DisplayAlerts = False
' Rapport opslaan als xlxs (zonder macro's)
    ActiveWorkbook.SaveAs Filename:=Path2 & "Registratie" & " " & customer & " " & Date & " " & shift & ".xlsx", FileFormat:=xlOpenXMLWorkbook, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

Application.DisplayAlerts = True

End Sub

Wie heeft voor mij een niet al te lastige oplossing.

Gr,

Roy
 
Ik was zelf aan het denken zoiets als dit

Code:
ActiveWindow.Close=False

Maar heb al gemerkt dat dit niet werkt.
 
Doordat je saveas gebruikt op je registratie bestand wordt die dus onder een andere naam opgeslagen.

Dus enige methode is dan om het registratiebestand eerst op te slaan onder de eigen naam (om al ingevulde gegevens te bewaren), daarna het nieuwe klantbestand op te slaan en dan registratie.xlsm weer te openen.

Ondrstaand heb ik extra regels ingevoegd omdat te doen.

Code:
Sub Opslag()
Dim Path1 As String
Dim DataH2 As Date
Dim DataH3 As String
Dim DataH5 As String
Dim LegeRegel As Integer, x As Integer

shift = Range("H3")
customer = Range("H5")

Path1 = "C:\Users\Ik\Test\2019\registraties"
Dezefile = "Registratie.xlsm"

[COLOR="#FF0000"]Activeworkbook.Save [/COLOR]

'Gegevens opslaan in registratie bestand

 'Directory voor wegschrijven registraties bepalen adhv klant
Path2 = "C:\Users\Ik\Test\2019\registraties"
If customer = "Klant1" Then Path2 = "C:\Users\Ik\Test\2019\registraties\Klant1"
If customer = "Klant2" Then Path2 = "C:\Users\Ik\Test\2019\registraties\Klant2"
If customer = "Klant3" Then Path2 = "C:\Users\Ik\Test\2019\registraties\Klant3"

       
Application.DisplayAlerts = False
' Rapport opslaan als xlxs (zonder macro's)
    ActiveWorkbook.SaveAs Filename:=Path2 & "Registratie" & " " & customer & " " & Date & " " & shift & ".xlsx", FileFormat:=xlOpenXMLWorkbook, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

Application.DisplayAlerts = True

[COLOR="#FF0000"]Workbook.open Filename:= Path1 & Dezefile
[/COLOR]
End Sub
 
Ah ok dank je wel. Maar betekend wel dat ik voor de volgende dag alle gegevens uit het origineel moet gooien. Dat is verder geen probleem.
Top dank je wel. Zal ik dat zo eens gaan uitproberen of dat werkt. Dat scheelt voor mijn werknemers heel veel werk naar het zoeken van de juiste documenten

Gr
 
ALs de gegevens verloren mogen gaan dan zou je de eerste toevoeiging Activeworkbook.Save
weg kunnen laten maar dan betekent dat registratie.xlsm altijd leeg heropend en niets wordt opgeslagen bij uitvoer van de macro.
 
Gebruik:

Code:
thisworkbook.savecopyas .....................
 
En voor het zetten van Path2 wellicht dit:
Code:
If Left(customer, 5) = "Klant" Then Path2 = "C:\Users\Ik\Test\2019\registraties\" & customer
 
Thnx allemaal. Ik zal het van de week even proberen te verwerken in mijn doc.
Helaas sinds gisteren even geen tijd vior ivm werk en nieuwe projecten maar ik hou jullie op de hoogte

Gr
 
Code:
thisworkbook.savecopyas .....................


:shocked: paar weken geleden heb ik me blind gezocht naar deze.. ik wist dat er iets voor bestond. kon het niet vinden
fijn nu weer een projectje om aan te passen :)

thnx HSV :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan