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

werkblad opslaan in map

Status
Niet open voor verdere reacties.

Edzerd

Gebruiker
Lid geworden
17 mrt 2011
Berichten
8
Beste profs,
Nieuwe vraag van deze amateur:
Ik heb voor een vriend met een klein bedrijfje een bestand in Excel 2003 gemaakt om zijn orders, pakbonnen en facturen eenvoudig te verwerken, met voorraadadmie.
In de macro Afsluiting order zet ik die order in een werkblad (werblad1) en zet een lege nieuwe order klaar. Die nieuwe order wordt werklblad 2 enzovoorts.
Hoe krijg ik het nou voor elkaar om in die macro die werkbladen met een aan het factuurnummer gerelateerde naam op te slaan in een map, b.v. Facturen?
Op tijd naar bed, hoor!
Groetjes, Edzerd:rolleyes:
 
Laatst bewerkt:
Met de natte vinger, zonder voorbeeldbestandje.
Code:
with activesheet
  FName = "D:\Fakturen\ & .[A1] ' cel met je factuurnummer
    .Copy
    with ActiveWorkbook
      .SaveAs Filename:=FName & ".xls"
      .Close
    end with
end with
 
Dankjewel, Rudi,
Sorry voor de late reactie, ik was even een paar dagen weg.
Ik maakte de volgende macro, nadat een order en daarmee automatisch een pakbon en factuur werden aangemaakt. Alles in 1 werkblad Nieuwe order, ook de macro.
Ik kopieer dit werkblad hard naar een nieuw werkblad (zeg maar werkblad1), ingevoegd voor het werkblad Klanten.
Maak dan wat printopties in werkblad1.
In het werkblad Artikelbestand kopieer ik vervolgens de nieuwe voorraad naar de oude voorraad.
In het werkblad Nieuwe order maak ik de ingevulde kolommen leeg, kopieer het inmiddels opgehoogde factuurnummer uit P150 hard naar N150 en save.
Kun jij je oplossing hier invoegen, als je even tijd hebt? Het liefst zag ik natuurlijk zonder een Werkblad1 een harde kopie van het ingevulde werkblad Nieuwe Order naar C:\Facturen\.. gaan.
Zeer bedankt vast!

Sub Afsluiten()
'
' Afsluiten Macro
' De macro is opgenomen op 18-3-2011 door Edzerd
'

'
Range("B1:O201").Select
Selection.Copy
Sheets("Klanten").Select
Sheets.Add
Selection.PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial Paste:=xlPasteFormats
Selection.PasteSpecial Paste:=xlPasteColumnWidths
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
Range("A70:N201").Select
ActiveSheet.PageSetup.PrintArea = "$A$70:$N$201"
ActiveWindow.View = xlNormalView
Range("A1").Select
Sheets("Artikelbestand").Select
Range("H3:H56").Select
Selection.Copy
Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("Nieuwe Order").Select
Range("C20:D54").Select
Selection.ClearContents
Range("P150").Select
Selection.Copy
Range("N150").Select
Selection.PasteSpecial Paste:=xlPasteValues
Range("K12").Select
ActiveWorkbook.Save

End Sub
 
Zoals ik het zie zou ik het invoegen na de Pastespecial -acties.
 
En geef je het dan al op ?
Gooi er eens een voorbeeldbestandje in zodat we kunnen zien wat er juist gebeurt, e, moet gebeuren.
 
Dit is toch wel erg leuk, dat je dit antwoord geeft.
Ik had gehoopt, dat je je oplossing in mijn macro zou integreren.
Let wel, Rudi, ik heb al aangegeven, dat ik een amateur ben. Ik werk al jaren met excel, maar van Visal Basic begrijp ik niet meer dan ik zie.
Ik heb mijn macro laten zien, kun je daar wat mee?

Wel fijn, dat je zo reageert, dank je.
Groet, Ed
 
Je hoeft helemaal geen nieuw werkblad te maken. Plaats volgende macro eens in standaardmodule en zorg dat werkblad nieuwe order helemaal ingevuld is.
Code:
Sub tst()
With Sheets("Nieuwe Order")
  FName = "C:\Fakturen\" & .[N150] ' cel met je factuurnummer
    .Copy
    With ActiveWorkbook
      .SaveAs Filename:=FName & ".xls"
      .Close
    End With
    [COLOR="red"].Range("C20:C54").ClearContents[/COLOR]    
    .Range("P150").Copy .Range("N150")
    .Range("K12").Select
End With
With Sheets("Artikelbestand")
    .Range("H3:H56").Copy .Range("D3")
End With
ActiveWorkbook.Save
End Sub
Het rode bereik moet je nog even aanpassen, omdat je geen code-tags gebruikt was dit niet meer juist weergegeven.
 
Laatst bewerkt:
Hoi, Rudi,

Probleem is, dat in jouw oplossing het werkblad wordt opgeslagen met alle formules en de macro. Dat is niet de bedoeling, want er bestaat bewaarplicht voor die documenten, er mag dus niets gewijzigd worden, Bovendien zijn ze "hard" maar rond de 40Kb en anders rond de 200Kb. Inmiddels heb ik Zip gekocht, hierbij een voorbeeldbestandje.
Opnieuw dank. Je macro blijft overigens hangen op het saven, als ik de backslash achter c.\fakturen\ weghaal, wordt-ie wel opgeslagen (als c:facturen70, als 70 het factuurnummer was). C:Facturen bestaat wel als map.
Beveiligingen in de map zijn zonder wachtwoord. In Nieuwe Order staan formules in de kolommen P t/m T. Mocht je stomme dingen zien, tegen niemand zeggen....Bekijk bijlage ZIP.zip

Gr. Ed
 
Met onderstaande maakt hij een bestand aan van 43kb
Code:
Sub tst()
With Sheets("Nieuwe Order")
    FName = "C:\Facturen\" & .[N150] ' cel met je factuurnummer
    .Copy
    With ActiveWorkbook
      With .Sheets(1)
        .Unprotect
        .UsedRange.Value = .UsedRange.Value
        .Protect
      End With
      .SaveAs Filename:=FName & ".xls"
      .Close
    End With
    .Range("C20:C54").ClearContents
    .Range("P150").Copy .Range("N150")
    .Range("K12").Select
End With
With Sheets("Artikelbestand")
    .Range("H3:H56").Copy .Range("D3")
End With
ActiveWorkbook.Save
End Sub
De mapnaam moet wel overeenkomen met de mapnaam op je HD. Let op de schrijfwijze.
 
Laatst bewerkt:
Hallo Rudi,
You're a genius.
Met enige wijzigingen (pastevalues enzo) en wat wijzigingen in de volgorde werkt het allemaal perfect.
Ik ben je heel dankbaar.
Groet en succes,
Ed
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan