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

Naam bestand aanpasbaar

Status
Niet open voor verdere reacties.

stefano

Gebruiker
Lid geworden
22 mei 2004
Berichten
865
Beste,

Ik ben alweer wat aan het prutsen geweest en kom met jullie hulp tot een mooi resultaat, waarvoor dank.

In de periode dat ik aan het testen was heb ik steeds voor de aanpassingen een kopij genomen van mijn bestand zodat ik ten allen tijde terug kon vallen op de vorige versie.

Wanneer ik nu zo'n kopij open en een macro uitvoer dan loopt die vast omdat de naam van mijn werkmap veranderd is. Is er een methode om dit op te vangen zodat macro's niet meer afhankelijk zijn van de bestandsnaam ?

dank voor de tips.
 
Ja, neem iets op als
Code:
huidig = ActiveWorkbook.Name

en gebruik in plaats van de bestandsnaam huidig
 
Ik probeerde met

Code:
dim huidig as Workbook
huidig = ActiveWorkbook.Name

Dat geeft fout 91 tijdens uitvoering.
Objectvariabele of blockvariabele With is niet ingesteld.

Code:
Sub Importeren_zstocklist()
    Dim pad As String
    pad = Sheets("SRN").Range("B1")

    Dim huidig As Workbook
    huidig = ActiveWorkbook.Name

    Application.DisplayAlerts = False
    Workbooks.Open Filename:=pad & "zstock_list.xls"
    ActiveWorkbook.SaveAs Filename:=pad & "zstock_list.xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
    
    Columns("A:I").Copy
    
    Windows(huidig).Activate
    Sheets("stock").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1").Select
    Sheets("planning zakgoed").Select
    Windows("Zstock_list.xlsx").Activate
    ActiveWorkbook.Close False
    Application.DisplayAlerts = True
End Sub

Maar dat werkt niet.

Moet ik dan bovendien die code in elke macro plaatsen ? Of kan dit éénmalig gedeclareerd worden?
 
Laatst bewerkt:
huidig is ook string.
 
Het wordt zo wel een beetje kansloos als je niets met eerdere adviezen doet.
 
Op deze manier werkt het wel.

Code:
Sub Importeren_zstocklist()
    Dim pad As String
    pad = Sheets("SRN").Range("B1")
        
[COLOR="#FF0000"]    Dim huidig As String
    huidig = ActiveWorkbook.Name[/COLOR]
    
    Application.DisplayAlerts = False
    Workbooks.Open Filename:=pad & "zstock_list.xls"
    ActiveWorkbook.SaveAs Filename:=pad & "zstock_list.xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
    
    Columns("A:I").Copy
    
[COLOR="#FF0000"]    Windows(huidig).Activate[/COLOR]
    Sheets("stock").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1").Select
    Sheets("planning zakgoed").Select
    Windows("Zstock_list.xlsx").Activate
    ActiveWorkbook.Close False
    Application.DisplayAlerts = True
End Sub

Hopelijk is dat goed.

@Vena: als ik je op de zenuwen werk: excuus. Ik snap het ook niet allemaal hoor. het is niet dat ik het niet wil ... Om maar te zeggen zoals iemand me meegaf: Verdiep je eens in forms. Heb ik dan ook gedaan en ik kan het nu een ... beetje. Maar het kost nu eenmaal tijd en begrip ... Nogmaals sorry

Dus als het gaat over de .Select hierboven (daar ga ik van uit) weet ik eerlijk gezegd niet hoe ik het moet aanpassen.

Stefano
 
dit krabbelde ik samen, maar zoals verwacht werkt zoiets niet :(

Code:
Sub Importeren_zstocklist()
    Dim pad As String
    pad = Sheets("SRN").Range("B1")
        
    Dim huidig As String
    huidig = ActiveWorkbook.Name
    
    Application.DisplayAlerts = False
    Workbooks.Open Filename:=pad & "zstock_list.xls"
    ActiveWorkbook.SaveAs Filename:=pad & "zstock_list.xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
    
    Columns("A:I").Copy
    
'    Windows(huidig).Activate
'    Sheets("stock").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
'        :=False, Transpose:=False
    
    Windows(huidig).Sheets("stock").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
'    Range("A1").Select
'    Sheets("planning zakgoed").Select
    
    Application.Goto [A1]
    Application.Goto [planning zakgoed]
       
    Windows("Zstock_list.xlsx").Close False
    Application.DisplayAlerts = True
End Sub
 
Ik heb heel wat weg gekrabbeld.

Het rode gedeelte kan je nog aanpassen of weglaten.

Code:
Sub Importeren_zstocklist()
dim a
   with Workbooks.Open(Sheets("SRN").Range("B1") & "zstock_list.xls")
             .saveas thisworkbook.Sheets("SRN").Range("B1") & "zstock_list.xlsx", 51
      a = [COLOR=#ff0000]sheets(1).[/COLOR]columns("A:I")
            .close 0
   end with
 Sheets("stock").cells(1).resize(ubound(a),9) = a
End Sub

De code zal ook maar een keer werken daar je het bestand opslaat onder een ander extensie (van .xls naar .xlsx).
 
Jezus Christus Maria

ik probeer het uit.

dank je wel
 
Hehe dat werkt mooi maar ook traag ...

Omdat ik wil bijleren van mijn fouten had ik natuurlijk ook nog graag een voorstel gehad voor onderstaand in een minder complexe oplossing. Niet dat ik het niet waardeer maar ik wil ook in stapjes bijleren hé

Code:
Sub Importeren_zstocklist()
    Dim pad As String
    pad = Sheets("SRN").Range("B1")
        
    Dim huidig As String
    huidig = ActiveWorkbook.Name
    
    Application.DisplayAlerts = False
    Workbooks.Open Filename:=pad & "zstock_list.xls"
    ActiveWorkbook.SaveAs Filename:=pad & "zstock_list.xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
    
    Columns("A:I").Copy
    
'    Windows(huidig).Activate
'    Sheets("stock").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
'        :=False, Transpose:=False
    
    Windows(huidig).Sheets("stock").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
'    Range("A1").Select
'    Sheets("planning zakgoed").Select
    
    Application.Goto [A1]
    Application.Goto [planning zakgoed]
       
    Windows("Zstock_list.xlsx").Close False
    Application.DisplayAlerts = True
End Sub
 
Je moet ook geen hele kolommen nemen, en misschien is...
Code:
 With GetObject([COLOR=#3E3E3E]Sheets("SRN").Range("B1") & "zstock_list.xls"[/COLOR])
....iets sneller.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan