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

Opslaan als, met een naam uit een cel

Status
Niet open voor verdere reacties.

Paul-RT

Giga Honourable Senior Member †
Lid geworden
6 dec 2003
Berichten
10.886
Ok, de volgende vraag, voor hetzelfde klantenbestand.
Ik kan na wijzigen van mijn klantenbestand het document gewoon afkruisen.
Er wordt automatisch opgeslagen middels onderstaande code.
Werkt prima.

Nu zou ik graag zien, dat als er wordt opgeslagen, dat de naam van het bestand ook geheel automatisch gaat.

En wederom de controle van de inhoud van A3:
Is A3 leeg, dan niets opslaan bij afkruisen document.
Bevat A3 een waarde, dan opslaan als (inhoud van A3)
Voorbeeld: A3 bevat de waarde REC0801018
Dan dus bestand opslaan met de naam REC0801018.xls
Als dat bestand al bestaat, dus overschrijven en nergens om klagen / zeuren.
Dat gebeurd nu immers ook niet.

Hoe fix ik dit dan weer?

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If IsEmpty(Range("A" & 3)) Then End
    If Range("A" & 3) = "*" Then End
    If Me.Saved = False Then Me.Save Range("A" & 3)
End Sub

Edit: Code aangepast, naar wat ik zelf heb geprobeerd te maken, en niet werkt.
Maar het laat wel mijn idee zien.
Als A3 leeg is, niet opslaan.
Als A3 een * bevat, niet opslaan.
Anders: opslaan met de waarde van A3 als document naam, of die nou al bestaat of niet. Geen commentaar.
 
Laatst bewerkt:
Probeer onderstaande code:
Niet getest !!!
is aangepast....
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If (Sheets("Blad1").Range("A3") = "") Or (Sheets("Blad1").Range("A3") = "*") Then Exit Sub
If ThisWorkbook.Saved = True Then Exit Sub
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=Sheets("Blad1").Range("A3").Value
MsgBox "Opgeslagen als: " & Range("A3").Value
End Sub
 
Laatst bewerkt:
Nee, werkt niet, en ik krijg het ook niet aan de praat.
Maareh, ik zie dat je iets van commentaar aanzet? Ik wil juist geen enkel commentaar zien.
Ik krijg nu (met mijn code) foutmeldingen uit de regel Then me.save
Daar gaat iets mis.
 
Final code:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Saved = True Then Exit Sub
If (Sheets("Blad1").Range("A3") = "") Or (Sheets("Blad1").Range("A3") = "*") Then GoTo ops
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=Sheets("Blad1").Range("A3").Value
Application.DisplayAlerts = True
MsgBox "Opgeslagen als: " & Range("A3").Value
ops:
ThisWorkbook.Saved = True
End Sub
 
Nu komt de melding:
Fout 9 bij uitvoering.
Het Subscript valt buiten het bereik.

Edit:
"Blad1" heet bij mij "KlantenRE-Crashrepair". gewijzigd. >> Foutmelding opgelost.


En het werkt fantastisch ! :thumb:
Super bedankt NuMan !
Ik hab weer een code voor de verzameling. Kan ik verder mee experimenteren.

Vervolg stukje hierop is, of excel van een ingevoerde waarde ook automatisch een hyperlink kan maken.
Bijvoorbeeld: die waarde uit A3 moet een hyperlink worden naar het zojuist opgeslagen document. Kan dat?
(Aleen dan in een ander document).

En 1 van de cellen heeft een waarde die uit een ander document wordt opgehaald.
Echter, telkens wijzigd het klantnummer ervan. Dus er moet ook een link worden gemaakt in een cel, met ergens in de formule een klantnummer.
Hoe maak ik zoiets?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan