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

Excel, bestand opslaan als "cel" gegevens

Status
Niet open voor verdere reacties.

markdewi

Gebruiker
Lid geworden
15 dec 2009
Berichten
23
Excel werkblad, in cel B3 staat een tekst, bijvoorbeeld "boom".

vraag 1
Ik wil nu "bewaren" als boom.xls

vraag 2
en dat moet op de locatie zijn die staat in cel B1
(daar staat: c:\vereniging\antwerpse_bomen)

maar er moet een extra map worden aangemaakt
waarvan de tekst in cel B2 staat
in cel B2 staat "berk"

Hoe programmeer ik dat, zodat ik nadien een knop toevoeg, waardoor de macro wordt uitgevoerd;
indien de directory c:\vereniging\antwerpse_bomen niet bestaat, moet deze worden aangemaakt

dank
 
Zie bijlage
 

Bijlagen

  • boom.xls
    19,5 KB · Weergaven: 324
Laatst bewerkt:

Als ik jou "werkend" excel + makro uittest, werkt het goed. Bravo !
Schitterend werk !

Als ik nu de VB code inlees, en verwerk naar mijn bestaand excel sheet,
de cel-nummers aanpas... krijg ik een foutcode op de voorlaatse VB lijn:

ThisWorkbook.SaveAs FileLocation, xlNormal

Hij zegt: fout 1004 tijdens uitvoering: het is niet gelukt om het bestand te openen

Weet jij, wat er dan mis kan zijn ?
 
wat voor versie van excel gebruik je? Ik geloof dat de saveas runtime aan verandering onderhevig is geweest tussen 2003 en 2007. Je zou dus misschien even kunnen googlen naar wat opties voor het opslaan. :rolleyes:
 
nu werkt het wel, ik had bij de "bestandnaam", die hij opppikt in een cel een \ teveel gesplaatst... dank je
 
Kijk eens op bijgevoegde Excel bijlage.
mvg
Esko

Private Sub CommandButton1_Click()
Dim Bestandsnaam As String
Dim ws As Worksheet
With Sheets("Blad1")
Bestandsnaam = .Range("B7").Value & ".xls"
.Copy
On Error Resume Next
ActiveWorkbook.SaveAs "D:\Dossiers\" & Bestandsnaam, xlNormal

ActiveWorkbook.Close False ' doesn't save any changes
End With

End Sub
 

Bijlagen

  • DCA1.1.xls
    66,5 KB · Weergaven: 258
Laatst bewerkt:
De Macro ( programmacode) kun je vinden door op Tab werkblad te gaan staan en rechter muisknop te klikken. Ook via Werkset Bestuuringselementen enz kun je de macrocode vinden. Voor VBA : Alt-F11.
mvg
Esko
 
Ik lees dat je het bestand oipslaat als:
SaveAs "D:\Dossiers\"

maar ik wil opslaan op de C:\ schijf,
en "Dossiers" wil ik inlezen in cel A1 van een ander werkblad,
namelijk het werkblad "namen".

hoe los ik dat op ?

dank
 
Ik heb je de oplossing reeds in Post#3 gegeven.
 
Neen, dat is niet wat ik zoek.

Ik wil een txt file opslaan, die zich in een andere map bevindt,
waarvan de naam moet worden ingelezen in cel B2, B3, B4...

Deze tekstfile bevat een (factuur) nummer,
deze txt file moet worden geopend,
factuur nummer ingelezen, en verhoogd +1, daarna gesloten.

In onderstaande code wordt txt bestand "factuurnummer7.txt" ingelezen,
maar ik wil dat "factuurnummer7" verwijst naar het woord dat staat in cel B2,
in een ander werkblad....

Code:
pad$ = Application.DefaultFilePath
controle = Dir(pad$ + "\FactuurNummer7.txt")
If controle = "" Then GoTo EerstAanmaken
Open pad$ + "\Factuurnummer7.txt" For Input As #10
Input #10, Nummer1
Close #10
EerstAanmaken:
Nummer1 = Nummer1 + 1
Open pad$ + "\FactuurNummer7.txt" For Output As #10
 Print #10, Nummer1
 Close #10
Noteer nu het opgehaalde factuurnummer in het werkblad
Application.Goto Reference:="Factuurnr."
ActiveCell.FormulaR1C1 = Nummer1
Application.Goto Reference:="Slachtoffer"
End Sub
[code]
 
Zo iets:

Code:
pad$ = Application.DefaultFilePath
controle = Dir(pad$ + "\" & Worksheets(2).Range("B2").Value & ".txt")
If controle = "" Then GoTo EerstAanmaken
Open pad$ + "\" & Worksheets(2).Range("B2").Value & ".txt" For Input As #10
Input #10, Nummer1
Close #10
EerstAanmaken:
Nummer1 = Nummer1 + 1
Open pad$ + "\" & Worksheets(2).Range("B2").Value & ".txt" For Output As #10
Print #10, Nummer1
Close #10
Noteer nu het opgehaalde factuurnummer in het werkblad
Application.Goto Reference:="Factuurnr."
ActiveCell.FormulaR1C1 = Nummer1
Application.Goto Reference:="Slachtoffer"
End Sub

De inhoud van cel B2 van het 2e werkblad wordt gebruikt.

Met vriendelijke groet,


Roncancio
 
Ik heb jou code ingevoerd, maar nu krijg ik als fout:
compileerfout: er is een dubbelzinnige naam gevonden: pad

is de code fout ?

Hier is de code nog eens



Code:
Sub Terug_factuur()
' Terug_factuur Macro
'
' Sneltoets: CTRL+a
'
  pad$ = Application.DefaultFilePath
controle = Dir(pad$ + "\\" & Gegevensinvoer.Range("B2").Value & ".txt")
If controle = "" Then GoTo EerstAanmaken
Open pad$ + "\\" & Gegevensinvoer.Range("B2").Value & ".txt" For Input As #10
Input #10, Nummer1
Close #10
EerstAanmaken:
Nummer1 = Nummer1 + 1
Open pad$ + "\\" & Gegevensinvoer.Range("B2").Value & ".txt" For Output As #10
Print #10, Nummer1
Close #10
Noteer nu het opgehaalde factuurnummer in het werkblad
Application.Goto Reference:="Factuurnr."
ActiveCell.FormulaR1C1 = Nummer1
Application.Goto Reference:="Slachtoffer"

End Sub
 
en zo?
Code:
' Terug_factuur Macro
'
' Sneltoets: CTRL+a
'
  pad$ = Application.DefaultFilePath
controle = Dir(pad$ + "\\" & Worksheets("Gegevensinvoer").Range("B2").Value & ".txt")
If controle = "" Then GoTo EerstAanmaken
Open pad$ + "\\" & Worksheets("Gegevensinvoer").Range("B2").Value & ".txt" For Input As #10
Input #10, Nummer1
Close #10
EerstAanmaken:
Nummer1 = Nummer1 + 1
Open pad$ + "\\" & Worksheets("Gegevensinvoer").Range("B2").Value & ".txt" For Output As #10
Print #10, Nummer1
Close #10
'Noteer nu het opgehaalde factuurnummer in het werkblad
Application.Goto Reference:="Factuurnr."
ActiveCell.FormulaR1C1 = Nummer1
Application.Goto Reference:="Slachtoffer"

Met vriendelijke groet,


Roncancio
 
nog steeds "compileerfout gevonden":

er staat in donker achtergrond selecteerde gedeelte van de code
pad$ =

zou (dus) in dat gedeelte van de code een fout zitten ?

Ik leg het opnieuw uit.
In het huidig tabblad wil ik verwijzen naar "cel B2" van tabblad "Gegevensinvoer".
Als ik nu een macro aanmaak in het huidige werkbald (tabblad), iets eenvoudig, vb. de huidige cel
is "hetzelfde als" cel B2 van het werkblad ("gegevensinvoer"), dan zou je verwachten dat de
formule is:
Code:
=Gegevensinvoer!B2
...maar als ik de macro dan inlees, zie ik geheel anders:

Code:
ActiveCell.FormulaR1C1 = "=Gegevensinvoer!R[-18]C[-9]"

De vraag is dus waarom de mini-macro in deze oefening in plaats van cel B2,
de notering
R[-18]C[-9]
neerschrijft.

Ligt daar (?) de oplossing van de foutmelding ?
 
Als ik de macro gebruik, krijg ik geen compileerfout maar wordt er gewoon een tekstbestand aangemaakt met de naam die in cel B2 staat.

Wat betreft je 2e vraag:
Met het opnemen van een macro noteert VBA de handelingen van de gebruiker, dus ipv cel B2, wordt de cel 18 regels boven en 9 kolommen naar links geselecteerd.

Met vriendelijke groet,


Roncancio
 
De fout wordt misschien verooorzaakt door de manier waarop ik jou code via "copy and paste" invoeg in een bestaande macro, en de oude macro-code verwijder....
Is er een deftige manier om codes in te voegen ? Is "copy and paste" toegelaten ?
Loopt het daarmee mis ?
dank voor je hulp !
 
in bijlage de schermafdruk van de fout !
 

Bijlagen

  • excel-fout.docx
    64,4 KB · Weergaven: 98
in bijlage de schermafdruk van de fout !

De foutmelding geeft aan dat de naam dubbel gebruikt wordt.
Kan je het bestand bijsluiten zonder gevoelige informatie maar met de volledige code?

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan