• 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 op waarde, als map niet bestaan andere map opslaan

  • Onderwerp starter Onderwerp starter HWV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Beste,

Ik gebruik in mijn code een stuk om op te slaan in een bepaalde klantmap, de naam staat in dit geval in cel A1

Code:
 .Parent.SaveAs "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\" & .[A1] & "\" & .[C10] & ", " & .[A1] & ", " & .[C12] & ".xls", _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False

Wat ik wil bereiken is als deze niet bestaat in de map "test opslaan op waarde" dat dan deze wordt op gslagen in de map "test opslaan op waarde" maar dan in de map "Nog toe te wijzen"

Wie kan mij op weg helpen hier mee.
Het zal met een if then zijn maar ik weet niet hoe ik dit moet beschrijven

Alvast dank voor de hulp.

Henk
 
Zoiets:
Code:
Pad1 = "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\"
Pad2 = "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Nog toe te wijzen\"

If Dir(Pad1 & "Bestand.xls") = "" Then
    'Opslaan in Pad2"
Else
    'Opslaan in Pad1
End If

Is er een reden om het bestand als .xls op te slaan in Office 2010?
Daarnaast, waarden die je bij de SaveAs leeg laat of op False zet mag je ook gewoon weglaten.
 
Laatst bewerkt:
Code:
pad1 = "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\"
pad2 = "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\Nog toe te wijzen\"

If Dir(pad1 & "[a1]") = "" Then
.Parent.SaveAs "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\Nog toe te wijzen\" & .[C10] & ", " & .[a1] & ", " & .[C12] & ".xls", _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
Else
  .Parent.SaveAs "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\" & .[a1] & "\" & .[C10] & ", " & .[a1] & ", " & .[C12] & ".xls", _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
End If

en ik heb ook dit geprobeerd:

Code:
pad1 = "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\"
pad2 = "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\Nog toe te wijzen\"

If Dir(Pad1 & "Bestand.xls") = "" Then
.Parent.SaveAs "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\Nog toe te wijzen\" & .[C10] & ", " & .[a1] & ", " & .[C12] & ".xls", _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
Else
  .Parent.SaveAs "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\" & .[a1] & "\" & .[C10] & ", " & .[a1] & ", " & .[C12] & ".xls", _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
End If

In beide gevallen komt het bestand te staan in de map "Nog toe te wijzen" wat doe ik nu verkeerd.

Henk
 
Laatst bewerkt:
Wat je zoal verkeerd doet is dat je niet de volledige code plaatst, geen voorbeeldbestand plaatst en/of niet uitlegt wat er in in de verschillende cellen staat.
 
Laatst bewerkt:
Inderdaad. En als je het niet echt begrijpt is dat wel nodig. Maar kijk eens naar dit, dat is voldoende:
Code:
    pad1 = "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\"
    pad2 = "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\Nog toe te wijzen\"
    bst = pad1 & .[C10] & ", " & .[A1] & ", " & .[C12] & ".xls"
    
    If Dir(pad1 & bst) = "" Then
        bst = pad2 & bst
    Else
        bst = pad1 & bst
    End If
    .Parent.SaveAs bst, FileFormat:=xlExcel8
 
Laatst bewerkt:
Gokje in C12 staat =Now()

Code:
pad1 = "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\"
pad2 = pad1 & "Nog toe te wijzen\"

Mag ook.
 
Gelijk

KLopt jullie hebben gelijk, een bestand had ik er gelijk bij moeten doen.
Het orginele bestand bestaat uit een groot bestand, het opslaan is een klein gedeelte ervan.

Ik heb het in een voorbeeld bestand gezet om hopelijk meer duidelijkheid te geven

Bekijk bijlage Offerte programma.xlsm

Groet Henk
 
Dit hele stuk kan er dus uit:
Code:
.Parent.SaveAs "\\SERVER1\Data\Formulieren\Offerte`s\" & .[A1] & ".xls", _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
 
opslaan

IK heb de code verrwijderd, enkel hij geef de nieuwe werkmap een naam, maar slaat deze niet op
Als ik dan opslaan als doet dan zie ik dat hij naar
Code:
\\SERVER1\Data
verwijst maar niet opgeslagen in één van de mappen

Henk

PS
HIj loopt vast op:
Code:
    .Parent.SaveAs bst, FileFormat:=xlExcel8
 
Laatst bewerkt:
in het kort

Beste,

Even in het kort hoe het in elkaar zit.
Orgineel bestand daar zit verschillende userforms die uit verschillende bestanden data haalt.
Deel 1 daar haalt hij adres gegevens op en plaats deze in het orginele bestand offerte programma
Deel 2 daar halen we artikelen mee op die hij dan per artikel plaatst dit kunnen twee artikelen zijn maar ook 20.
UIteindelijk zet hij daar ook nog een foto bij.
Deel 3 Als dit is gedaan dan wordt de offerte afgesloten met een varaible aan teksten denk aan verschillende accountmangers betaald op voorraad of onbetaald op voorraad met de debetreffende voorwaarden die er bij horen.

Vanuit hier moet er dus een een kopie gemaakt worden om niet alle script mee te krijgen, dus hadden we het zo opgelost door een nieuwe workbook aan te maken.

Vanuit hier moet er dus opgeslagen gaan worden in de map van de klant en als die nog niet bestaat dat er dan in de andere map opgeslagen gaat worden.

Ik kan niet het orginele bestand er bij doen, want die zou niet werken zonder de andere bestanden.
Ik begrijp ook voor jullie als de mensen die hulp proberen te bieden dat het moeilijk zal zijn met de aangeleverd gegeven.

Ik hoop dat dit nu iets duidelijker waarom ik dit op deze manier heb gedaan.


Henk
 
Ik heb je code enigzins opgeschoond en zo werkt het hier goed:
Code:
Sub save1()
    pad1 = "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\"
    pad2 = pad1 & "Nog toe te wijzen\"
    bst = [C10] & ", " & [A1] & ", " & [C12] & ".xls"
    
    With Workbooks.Add
        With .Sheets(1)
            Columns("A:A").ColumnWidth = 11.71
            ThisWorkbook.Sheets("Leeg").Range("1:500").Copy .[A1]
            ThisWorkbook.Sheets("Leeg").Range("A:S").Copy .[A1]
            ActiveWindow.DisplayGridlines = False
            If Dir(pad1 & bst) = "" Then
                bst = pad2 & bst
            Else
                bst = pad1 & bst
            End If
            .Parent.SaveAs bst, FileFormat:=xlExcel8
        End With
    End With
End Sub
 
Laatst bewerkt:
code loopt door

De code loopt nu door en zonder fouten, enkel hij slaat op onder de naam:

, ,

Dus hij leest de cel niet uit want de kommas`s neem hij wel over

Henk
 
Beste,

Nu de code is aangepast geef hij wel de juiste naam weer, enkel hij slaat alles op in Nog toe te wijzen, terwijl de map bestaat met de naam uit cel a1

Werkt dit bij jullie wel !

Henk
 
Ja.
Ik zou zeggen, loop de code eens door in debug mode (F8), dan kan je de verschillende waarden controleren.
Misschien dat je die paden moet omdraaien.
 
Laatst bewerkt:
Stap verder

Ik zie wat er verkeerd gaat.

pad1 = "\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde"
pad2 = pad1 & "Nog toe te wijzen"

Bij Pad1 moet er geken worden of de bestandsnaam uit cel A1 als bestaat dus:
\\SERVER1\Data\automatisering\Offerte nieuw\Opslag\Test opslaan op waarde\klantnaam 1\
Klantnaam 1 is dus de waarde uit cel A1
Dan moet deze offerte in deze map gezet worden, en anders in de map "Nog toe te wijzen"

Maar hoe dit verwerkt moet worden is voor mij nog een raadsel

Exccuus als ik mij in eerste instantie niet duidelijk heb uitgedrukt

Henk
 
Je gebruikt drie cellen om de naam van het bestand samen te stellen en dan wil je controleren op alleen hetgeen er in A1 staan?
 
De offerte worden voor verschillende klanten gemaakt.
In cel a1 staat de naam uit ons systeem neergezet, en zo heten ook de klantenmappen waar de offerte in gezet moeten worden.
De offerte moet dan wel opgeslagen worden als [C10] & ", " & [A1] & ", " & [C12] & ".xls" in de map met de waarde uit cel A1

Gr Henk
 
Laatst bewerkt:
Je wilt dus niet controleren of het bestand bestaat maar of de folder met de naam in A1 bestaat?
 
correct Edmoor en dan opslaan in die map als [C10] & ", " & [A1] & ", " & [C12] & ".xls"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan