Forfatter |
Emne Søg Emne funktioner
|
Jesper C
Forum Begynder
Medlem: 20.Feb.2018
Land: DK
Status: Offline
Point: 9
|
Emne: Ny fil, med data fra ark og specifik navn Sendt: 09.Sep.2018 kl. 22:04 |
Hej folkens.
Jeg er helt ny til VBA og makroer, men jeg vil rigtig gerne lave et stykke kode der: 1: kopiere "skabelon.xlsx" 2: kopiere data fra ark "ny kunde" i "portal.xlsm" enten igennem celler eller input bokse til skabelonen i den nye fil. 3: gemmer filen i den sammen mappe som skabelon ligger i, under et navn defineret i et felt i ny kunde.
Jeg har førhen gjort dette manuelt, men da jeg for nylig har fået øjne op for VBA, tænker jeg det må kunne automatiseres. =)
Jeg har søgt på nettet, uden at finde et svar som jeg selv kan tyde. Eksempler på sider jeg har fundet:
Men da jeg ikke har kunne tyde dem nok til at kunne omformulere dette (jeg har fået noget af det til at virke) og jeg er slet ikke skarp nok, endnu, til at lave noget selv - jeg lære dog hurtigt og jeg elsker at rode med ting jeg ikke forstår og så forstå det.
|
 |
|
|
 |
maxzpad
Guld bruger
Medlem: 04.Aug.2016
Land: Danmark
Status: Offline
Point: 721
|
Accepteret svar
Sendt: 12.Sep.2018 kl. 12:42 |
Hej Jesper
Jeg vil nok generelt anbefale, at du Google'r efter "Excel VBA tutorial", så du kan få det grundlæggende på plads. Her vil du også lære, at scriptet/koden kan indsættes i et Module i Visual Basic Editor (VBE).
Et eksempel:
Sub MinMakro()
' Dimensionér en variabel til det nye filnavn Dim strNySkabelon As String
' Giv variablen værdien fra celle C1 i arket "ny kunde" i filen "portal.xlsm" ' (cellen skal indeholde det nye filnavn inkl. filtypen .xlsx) strNySkabelon = Workbooks("portal.xlsm").Sheets("ny kunde").Range("C1")
' Kopier skabelon.xlsx direkte til fil med nyt navn FileCopy "C:\mappenavn\skabelon.xlsx", "C:\mappenavn\" & strNySkabelon
Workbooks.Open "C:\mappenavn\" & strNySkabelon
' Gentag for det antal celler, du ønsker at overføre/kopiere imellem de to filer Workbooks(strNySkabelon).Sheets("ArkNavn").Range("A1") = Workbooks("portal.xlsm").Sheets("ny kunde").Range("B8")
' Gem den nye fil Workbooks(strNySkabelon).Save
End Sub
Det kan skrives/kodes "smukkere", så ovenstående er blot et hurtigt eksempel.
Mvh Max
|
 |
maxzpad
Guld bruger
Medlem: 04.Aug.2016
Land: Danmark
Status: Offline
Point: 721
|
Sendt: 11.Sep.2018 kl. 16:01 |
Skal makroen køre fra filen "portal.xlsm"? Det antager jeg, da "skabelon.xlsx" ikke kan indeholde makroer.
Du kan kopiere "skabelon.xlsx" således:
FileCopy "C:\mappenavn\skabelon.xlsx", "C:\mappenavn\skabelon_kopi.xlsx"
Herefter skal du åbne kopien, før du kan indsætte data i den:
Workbooks.Open "C:\mappenavn\skabelon_kopi.xlsx"
Overføre data - hvis det er celle til celle (f.eks. fra B8 til A1):
Workbooks("skabelon_kopi.xlsx").Sheets("ArkNavn").Range("A1") = Workbooks("portal.xlsm").Sheets("ny kunde").Range("B8")
Gem filen under nyt navn:
With Workbooks("skabelon_kopi.xlsx")
.SaveAs FileName:=.Path & "\nyt_filnavn.xlsx", FileFormat:=xlWorkbookDefault
End With
|
 |
maxzpad
Guld bruger
Medlem: 04.Aug.2016
Land: Danmark
Status: Offline
Point: 721
|
Sendt: 11.Sep.2018 kl. 16:09 |
Hov, glemte lige, du ville have nyt filnavn fra celle i "ny kunde" - f.eks. celle C1
With Workbooks("skabelon_kopi.xlsx")
.SaveAs FileName:=.Path & "\" & Workbooks("portal.xlsm").Sheets("ny kunde").Range("C1"), FileFormat:=xlWorkbookDefault
End With
|
 |
Jesper C
Forum Begynder
Medlem: 20.Feb.2018
Land: DK
Status: Offline
Point: 9
|
Sendt: 12.Sep.2018 kl. 11:54 |
Det ser rigtig fornuftigt og forståeligt ud maxzpad! Jeg har dog nogle afklarende spørgsmål:
Hvorledes skal scriptet startes? Noget privat. () what ever i Portal.xlsm("skabelonArk")
Kan jeg gentage step "kopier data" så mange gange jeg vil, eller skal det opdeles på nogen måde?
Nu skriver du "skabelon_kopi" i overfør data delen, ændre vi først navnet til sidst, således at det gemmes igen og ændre navn til indholdet i en celle?
Yep - så ny er jeg, men jeg giver ikke op - dette er lige det jeg ledte efter! Og jeg sidder allerede og leger med det, men jeg kan lige så godt være på forkant, for jeg smadre med garanti funktioner cirka 100 gange i løbet af de næste par dage!
|
 |
Bjarnehansen
Platin bruger
Medlem: 20.Nov.2011
Land: DK
Status: Offline
Point: 5615
|
Sendt: 12.Sep.2018 kl. 12:06 |
Hej Max
Tillykke med den runde dag 
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag. Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK
|
 |
maxzpad
Guld bruger
Medlem: 04.Aug.2016
Land: Danmark
Status: Offline
Point: 721
|
Accepteret svar
Sendt: 12.Sep.2018 kl. 12:42 |
Hej Jesper
Jeg vil nok generelt anbefale, at du Google'r efter "Excel VBA tutorial", så du kan få det grundlæggende på plads. Her vil du også lære, at scriptet/koden kan indsættes i et Module i Visual Basic Editor (VBE).
Et eksempel:
Sub MinMakro()
' Dimensionér en variabel til det nye filnavn Dim strNySkabelon As String
' Giv variablen værdien fra celle C1 i arket "ny kunde" i filen "portal.xlsm" ' (cellen skal indeholde det nye filnavn inkl. filtypen .xlsx) strNySkabelon = Workbooks("portal.xlsm").Sheets("ny kunde").Range("C1")
' Kopier skabelon.xlsx direkte til fil med nyt navn FileCopy "C:\mappenavn\skabelon.xlsx", "C:\mappenavn\" & strNySkabelon
Workbooks.Open "C:\mappenavn\" & strNySkabelon
' Gentag for det antal celler, du ønsker at overføre/kopiere imellem de to filer Workbooks(strNySkabelon).Sheets("ArkNavn").Range("A1") = Workbooks("portal.xlsm").Sheets("ny kunde").Range("B8")
' Gem den nye fil Workbooks(strNySkabelon).Save
End Sub
Det kan skrives/kodes "smukkere", så ovenstående er blot et hurtigt eksempel.
Mvh Max
|
 |
Jesper C
Forum Begynder
Medlem: 20.Feb.2018
Land: DK
Status: Offline
Point: 9
|
Sendt: 12.Sep.2018 kl. 13:40 |
Hej Max.
Jeg var kommet frem til dette - jeg har læst mange forskellige start tutorials, men når man ikke skal bruge mange af de ting der kommer frem er jeg desværre ikke så god til at "forstår" de tutorials - jeg lære bedst ved at sidde med det der driller mig og få dette til at virke.
Tak for det. Jeg kigger på det og ser om jeg kan få det til at virke!
|
 |
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5479
|
Sendt: 12.Sep.2018 kl. 14:47 |
Ja, det var tider, dengang man kun var en ung 'årsunge' på sølle 50 år...
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
 |
InfoTAL
Sølv bruger
Medlem: 05.Okt.2017
Land: DK, 6900
Status: Offline
Point: 385
|
Sendt: 12.Sep.2018 kl. 15:07 |
Til Max. Herfra sendes også et stort tillykke med fødselsdagen.
|
InfoTAL v/H.C. Bruger Excel 2024 DK, 64 bit. Svar gives/modtages.. Accepteret løsning: MARKER tråden med TAK/Accepteret svar s.e.&o.
|
 |
maxzpad
Guld bruger
Medlem: 04.Aug.2016
Land: Danmark
Status: Offline
Point: 721
|
Sendt: 13.Sep.2018 kl. 08:17 |
Tak til alle jer der har ønsket mig tillykke i går
|
 |
Jesper C
Forum Begynder
Medlem: 20.Feb.2018
Land: DK
Status: Offline
Point: 9
|
Sendt: 13.Sep.2018 kl. 10:11 |
Hej Max.
Tusind tak for hjælpen, jeg har fået det til at virke. For at kopiere flere celler manglede der lige et .Value efter den range man ville kopiere. (Såfremt det ikke var en "A1:B2" område der blev kopieret.)
Jeg forstår dog ikke den pop-up som kommer, der står at: "Beskyttelsesadvarsel: Dokumentet indeholder makroer, ActiveX-objekter, oplysninger om XML-udvidelsespakken eller webkomponenter. Disse kan indeholde personlige oplysninger, der ikke kan fjernes af dokumentinspektionen" Kan denne undgås? Eller er det fordi mit dokument som jeg kopiere fra indeholder makroerne, selvom skabelon og ny fil ikke gør? Google gav mig ikke et svar på dette!
(Den kopiere kun data og ikke makroer ol.)
Jeg har markeret dit svar som løsningen!
|
 |
maxzpad
Guld bruger
Medlem: 04.Aug.2016
Land: Danmark
Status: Offline
Point: 721
|
Sendt: 13.Sep.2018 kl. 10:26 |
Jeg kan se, at Allan (Forum Admin) har svaret på dette tilbage i 2015: "Gå til FilerIndstillinger Center for sikkerhed og rettighedsadministration Indstillinger for Center for sikkerhed og rettighedsadministration Indstillinger for beskyttelse Fjern markeringen i Fjern personlige oplysninger fra filegenskaberne når filen gemmes."
|
 |
Jesper C
Forum Begynder
Medlem: 20.Feb.2018
Land: DK
Status: Offline
Point: 9
|
Sendt: 13.Sep.2018 kl. 10:27 |
Tak for det Max!
Tråd hermed afsluttet og lukket.
|
 |