Avatar billede zjat Nybegynder
04. januar 2010 - 23:02 Der er 12 kommentarer og
1 løsning

VBA: Gem som.. og overfør til andet excelark?

Hej Alle sammen

Håber i kan hjælpe med disse problemer.

1) Jeg har et excel ark, hvor jeg gerne vil have en knap.

Knappens funktion skal gemme filen som filnavnet i 2 celler.

Dvs. Der står "Hans" i A1 og "dato i dag" i A2. Man trykker på knappen og filen bliver gemt som "Hans 040110.xls".

2) Derudover vil jeg gerne have en anden knap, som gør følgende:

Ved tryk tager den oplysningerne i arket og kopier til ind i en bestemt excel fil.

Dvs. Der står "Ole" i A1, "Viggo" i A2 og "Gudrun" i A3. Ved tryk på knap kopieres disse værdier over i filen "navne.xls" i et bestemt ark og nedenunder informationerne fra de tre felter, da knappen sidst blev aktiveret.

Der er 90 point for spørgsmål 1 og 90 point for spørgsmål 2 :)
Avatar billede martin_moth Mester
05. januar 2010 - 08:03 #1
1)
[code]
Dim strFileName as String
Filename = "C:\" & Cells(1,1).value & Cells(1,1).value & ".txt"
ActiveWorkbook.SaveAs Filename:=strFilename
[/code]
Avatar billede martin_moth Mester
05. januar 2010 - 08:05 #2
Hov - den lavede ged i det. Prøver igen:

1)
Dim strFileName as StringFilename
Filename = "C:\" & Cells(1,1).value & Cells(1,2).value & ".xls"
ActiveWorkbook.SaveAs Filename:=strFilename
05. januar 2010 - 08:15 #3
1)
Dim strFileName as String
strFileName = "C:\" & Range("A1").value & Range("A2").value & ".xls"
ActiveWorkbook.SaveAs Filename:=strFilename

Man kan også åbne en fildialog så brugeren kan vælge hvor der skal gemmes:

http://www.it-fjernundervisning.dk/Excel_VBA/VBA_programmering/Arbejde_med_dokumenter.aspx
Avatar billede martin_moth Mester
05. januar 2010 - 08:17 #4
2)

'Aktiver dit "hovedark, og kopier cellerne
Windows("c:\Hovedark.xls").Activate
Range("A1:C1").Select
Selection.Copy

'Aktiver navne.xls
Windows("c:\Navne.xls").Activate

'Find sidste tomme række
Range("A1").Select
Selection.End(xlDown).Select

'Indsæt fra udklipsholderen neden under sidste række
Cells(ActiveCell.Row + 1, 1).Select
ActiveSheet.Paste

'Aktiver Hovedarket igen, og de-marker din markerig
Windows("c:\Hovedark.xls").Activate
Range("A1").Select
05. januar 2010 - 08:32 #5
alternativ 2)
Sub copy()
    Dim wkbNavne As Workbook
    Dim wksAktuel As Worksheet
    Set wksAktuel = ActiveWorkbook.Worksheets(1)
    Set wkbNavne = Workbooks.Open("C:\navne.xls")
    With wksAktuel
        Dim c As Range
        For Each c In .Range("A1", .Range("A1").End(xlDown)).Cells
            c.copy Destination:=wkbNavne.Worksheets(1).Range("A65536").End(xlUp).Offset(1, 0)
        Next
    End With
End Sub

Tilføjer alle navne i kolonne A til renearket navne.xls - kolonne A
Avatar billede zjat Nybegynder
07. januar 2010 - 09:30 #6
Jeg prøver lige de forskellige løsninger, så vender jeg tilbage :)
Avatar billede zjat Nybegynder
07. januar 2010 - 12:26 #7
Løsning 2: hjælper desværre ikke, hvis man ikke har dokumentet åbnent, der skal kopieres til, så kan man ikke kopiere ind i det :(
Avatar billede zjat Nybegynder
07. januar 2010 - 13:05 #8
Hej Martin

'Aktiver navne.xls
Windows("c:\Navne.xls").Activate

Denne funktion vil den ikke godkende :( "subsript out of range"
Avatar billede martin_moth Mester
07. januar 2010 - 19:33 #9
må være fordi du ikke har kaldt filen for "navne.xls"
Avatar billede martin_moth Mester
08. januar 2010 - 08:32 #10
Du skal have filen åben, før du kører koden. Ellers skal der tilføjes i koden så koden selv åbner filen.
Avatar billede zjat Nybegynder
08. januar 2010 - 14:24 #11
Martin: 2) Ahh...der er ingen mulighed for ikke at åbne filen? Det ville nemlig være den bedste løsning :)

1) Det skal gerne være sådan at brugeren ikke skal svare på noget omkring gemningen - Martin har scoret point for dette spørgsmål :)
Avatar billede martin_moth Mester
08. januar 2010 - 18:38 #12
Hvis du vil sætte noget ind i nogle celler i et regneark, er du nødt til at åbne det først.

Men koden kan åbne det for dig, og lukke det igen. Det hele kan gøres "usynligt" ved at sætte application.screenupdate til false i starten og true i slutningen af koden.

Søg på eksperten om at åbne og lukke filer. Hvis filen altid hedder det samme, og ligger samme sted, er det ret nemt. Overvej om du skal sikre dig imod at 2 brugere kan åbne arket samtidigt osv osv
Avatar billede zjat Nybegynder
27. januar 2010 - 23:46 #13
HØRT :) jeg takker for de gode svar!

Smid svar så får du point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester