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

Opgelost Data verschuiven

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

corania17

Gebruiker
Lid geworden
1 okt 2012
Berichten
248
Geachte forumleden.

Deze vraag heb ik al eens eerder gesteld maar de oplossing heeft maar één keer gewerkt.
Ik heb een XLTM bestand (sjabloon) zonder adresgegevens.
In dit bestand wordt na opening via een formulier de naam (op werkblad1 in “cel H13” ingegeven) geplaatst als het wordt opgeslagen als “cel H13”.xlsm in C:\dir1\actie\.
De naam in “cel H13” is dus steeds anders.
Er is ook een adres.XLS bestand waar de adresgegevens in staan.
Beide bestanden worden bewaard in c:\dir1\actie\.

In een ander werkblad (werkblad2) van het bestand “cel H13”.xlsm moeten de gegevens komen uit het adres.XLS bestand via een commandbutton1 en geplaatst in cel A2.
Nadat de actie is afgelopen, moet er weer via een commanbutton2 een kopie gemaakt worden ( van A2..M201) van dit werkblad2 naar het adres.XLS bestand in cel A2.

Wie zou mij hierbij kunnen assisteren, want ik kom er niet meer uit.
Onderstaande macro werkt goed.
Deze verplaatst data van cel H13.xlsm naar cel A2 van adres.xls
Code:
Sub Verplaatsen()
' Verplaatsen Macro
Range("A2:M201").Select
Selection.Copy
Windows("adres.xls").Activate
Range("A2").Select
ActiveSheet.Paste
Range("A2").Select
End Sub

Deze macro die dus omgekeerd moet werken doet het niet.
Code:
Sub Aanvul()
' Aanvul Macro
Workbooks.Open Filename:="C:\dir\Actie\adres.xls"
Range("A2:M201").Select
Selection.Copy
'Windows("cel H13.xlsm").Activate
ActiveSheet.Paste
Range("A2").Select
Windows("adres.xls").Activate
Range("A2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "20310001"ActiveWorkbook.Save
ActiveWindow.Close
End Sub

Beide macro's staan in module6.
Ik gebruik Excel 2013.

Bij voorbaat mijn dank, rubik.
 
Laatst bewerkt door een moderator:
Ook in deze nieuwe forum software kan je nog steeds een voorbeeld bestand plaatsen en code in codetags zetten
 
Nu nog een document waar Module6 in staat ;)
 
Beste Edmoor,

Allereerst bedankt voor je reactie.
Ik dacht dat een bestandje niet nodig zou zijn, maar heb er maar even 2 gemaakt.
Het xltm bestand is denk ik niet nodig?
Daar wordt alleen de naam ingegeven voor de naam van het te bewaren bestand wat in cel H13 komt te staan.
Het is nu ook geen module6 maar een module1.
Ik denk dat het zo duidelijk genoeg is?

Met vriendelijke groet, Rubik.
 

Bijlagen

  • Cel-H13.xlsm
    22,3 KB · Weergaven: 4
  • adres.xls
    69,5 KB · Weergaven: 4
Beste Edmoor,

IK heb inmiddels de macro werkend. Maar werkt nog alleen met een vaste naam.
Ik open een bestand wat op de Desktop staat met de extensie XLTM, wat een sjabloon is.
Na opening veranderd de naam van het bestand in een naam die is ingegeven op een formulier en geplaatst in een werkblad in cel H13, en de extensie XLTM veranderd in XLSM als het bestand wordt bewaard. Dit doet een macro.
Dan moet dit bestand geopend worden om de adres gegevens er in te plaatsen.
Deze verandering van bestandsnaam had ik graag in de macro op werkbook Cel-H13.xlsm gehad.
Dus sjabloon.XLTM veranderd in een naam die is ingegeven in Cel-H3 van een werkblad.
Deze naamsverandering moet dan in de macro verwerkt worden.
Maar hoe??

Het gaat dus alleen om deze regel (Windows("Cel-H13.xlsm").Activate)
In deze regel moet de naam Cel-H13 van werkblad1 random wijzigen.
Zoiets:
Sheets("Werkblad1").Select
Range("H13").Select
Windows("H13&.xlsm").Activate

Iemand nog een oplossing?
Met vriendelijke groet, Rubik.
 
Maak daar eens dit van:
Code:
Windows(Sheets("Blad1").Range("H13") & ".xlsm").Activate
 
Hallo edmoor,
Dank je voor je bericht, alleen werkt het niet en krijg ik de melding "het Subscript valt buiten het bereik".
Toch staat er in princiepe hetzelfde.
Ook als ik Blad1 verander in Werkblad1 dan is er geen verschil.

m.vr.gr.
 
Blad1 H13 moet dan uiteraard wel een naam bevatten van een document dat je op dat moment ook geopend hebt.
 
Ja, klopt dat is ook zo.
Dezelfde naam in H13 wordt ook gebruikt bij het bewaren van het bestand, dus dat werkt wel.
 
Toch zegt de foutmelding dat er iets niet klopt op dat gebied.
Wat dat is kan ik uiteraard zo niet zien.
 
Als ik de naam in cel H13 in dit geval Pasen gebruik "Windows("Pasen.xlsm").Activate", werkt het wel.
Hoe kan ik de macro in codetags zetten dan stuur ik de nieuwe macro op.
 
Plaats gewoon je bestand met de code zoals deze nu is.
 
Hierbij de bestanden.
 

Bijlagen

  • Cel-H13.xlsm
    35,9 KB · Weergaven: 3
  • adres.xlsx
    22,1 KB · Weergaven: 3
Doe dit eens in het document Cel-H13.xlsm:
Code:
Sub Aanvul()
    Application.ScreenUpdating = False
    Set wbAdres = Workbooks.Open("C:\Dir1\Aktie\adres.xlsx")
    ThisWorkbook.Sheets("Werkblad2").Range("A2:M201").Value = wbAdres.Sheets("Adres").Range("A2:M201").Value
    wbAdres.Close False
    Range("A2") = "20310001"
    ThisWorkbook.Save
    Application.ScreenUpdating = True
End Sub
Dan heb je dat hele verhaal van wisselen tussen documenten en die cel H13 niet nodig.
 
Laatst bewerkt:
Hallo edmoor,
Dank je voor de hulp en het werkt precies zoals we het graag hadden gehad.
Nu kan ik misschien het bestand afdragen en hoop ik er van af te zijn.

Nogmaals bedankt en misschien tot een andere keer.

Met vriendelijke groet, Rubik.
 
Graag gedaan.
Kijk ook wat mijn voorbeeld precies doet.
In je eigen code stond e.e.a. aan overbodige dingen en in onjuiste volgorde waardoor je tegen die problemen aanliep.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan