oleelo Nybegynder
07. september 2015 - 18:12 Der er 16 kommentarer og
1 løsning

Flytte data imellem to åbne excel applikationer m. vba

Hej
Jeg har to Excel åbne på en gang og skal kopier data fra Ark1 til Ark1 imellem de to åbne regneark automatisk (vba). Bemærk at det er to forskellige "Excel begivenheder" da arket med koder er åben i et og et progran har åbnet det andet regneark i et nyt Excel.

på forhånd tak oleelo
supertekst Ekspert
08. september 2015 - 10:37 #1
Hej

1) Er der flere ark i filerne?
2) Hvorfra og hvortil?
3) Skal der bevares data på "modtagerarket" - eller kan ark1 erstattes af det kopierede?
4) Hvilken "hændelse" skal udføre VBA-koden?
oleelo Nybegynder
08. september 2015 - 13:38 #2
Hej supertekst

Ad 1) Ja 4 ark til file tempRes og 7 ark i filen SumResultater

Ad 2) Fra tempRes til filen SumResultater

Ad 3)I første omgang er det fint med hele arket (navn: temp ) som ikke eksistere i filen SumResultater.

ad 4) en knap i SumResultater på arket "start".

hilsen oleelo
supertekst Ekspert
08. september 2015 - 13:51 #3
Ok
supertekst Ekspert
08. september 2015 - 14:36 #4
Rem Anbringes under arket Start

Rem Version 1
Rem =========
Private Sub CommandButton1_Click()
Dim antalXls As Integer, vbaXLSNavn As String, f As Integer
Dim dataXLSNavn As String

Dim vbaXLS As Object, dataXLS As Object

Rem antal åbne XLS-filer
    antalXls = Workbooks.Count

Rem VBA-filens navn
    vbaXLSNavn = ActiveWorkbook.Name
   
    For f = 1 To antalXls
        If Workbooks(f).Name <> vbaXLSNavn Then
            dataXLSNavn = Workbooks(f).Name
            Set dataXLS = Workbooks(f)
            Exit For
        End If
    Next f
   
    dataXLS.Activate
    Sheets("temp").Select
    Sheets("temp").Copy Before:=Workbooks("SumResultater.xlsm").Sheets(2)
End Sub
supertekst Ekspert
08. september 2015 - 14:38 #5
Hvis ønskeligt - kan du få mine testfiler - @-adresse under min profil.
oleelo Nybegynder
08. september 2015 - 17:36 #6
Hej igen

Koden virker fint HVIS mit ark 'tempRes' er Åbnet i den samme Excel som 'SumResultater'  , hvis jeg derimod har Excel åben to gange med hver sin fil så virker koden ikke da den ikke kan se den anden Excel begivenhed  "antalXls=1"

Håber du kan hjælp mig vider, problemet er at få flere åbne Excel begivenheder til "se hinanden".

hilsen oleelo
supertekst Ekspert
08. september 2015 - 17:45 #7
Så godt din beskrivelse af problemet.
Hvordan kan jeg selv simulere denne situation?
oleelo Nybegynder
08. september 2015 - 18:59 #8
Hej
Jeg har Excel liggende på "StartLinjen" , starter Excel. Højreklikker henover Excel på "StartLinjen" og kikker på Excel.
I Tast Manager ses nu at Excel er startet to gange. Jeg har Windows 7 og Excel 2007.

Oleelo
supertekst Ekspert
08. september 2015 - 23:26 #9
Hej
Tak for det - jeg anvender Win 10 & office 2007 & 2013
Vender tilbage onsdag.
supertekst Ekspert
09. september 2015 - 14:58 #10
Hej
Har fået de ønskede omgivelser - men endnu er det ikke lykkedes.
Fortsætter..
supertekst Ekspert
10. september 2015 - 10:43 #11
Bemærk - her anvendes en kopiering til arket "Temp" i filen
SumResultater

Rem Version 2
Rem =========
Private Sub CommandButton1_Click()
Dim antalRæk As Integer, antalKol As Integer

Dim xlsApp As Excel.Application, xlsRes As Excel.Application

Dim antalXls As Integer, f As Integer
Const dataXLSNavn = "tempRes.xlsx"
Const vbaXLSNavn = "SumResultater.xlsm"
Dim vbaXLS As Excel.Application, dataXLS As Excel.Application
Dim sti As String
    sti = ActiveWorkbook.Path & "\"
    Set xlsApp = GetObject(sti & "tempRes.xlsx").Application
    xlsApp.Sheets("temp").Activate
   
    antalRæk = xlsApp.ActiveCell.SpecialCells(xlLastCell).Row
    antalKol = xlsApp.ActiveCell.SpecialCells(xlLastCell).Column
   
    xlsApp.Range(xlsApp.Cells(1, 1), xlsApp.Cells(antalRæk, antalKol)).Select
    xlsApp.Selection.Copy
   
Rem ---

    Set xlsRes = GetObject(sti & "sumResultater.xlsm").Application
    xlsRes.Sheets("temp").Activate
    xlsRes.ActiveSheet.Range("A1").Select
   
    ActiveSheet.Paste
    xlsApp.Application.CutCopyMode = False
End Sub
oleelo Nybegynder
10. september 2015 - 14:08 #12
Hej
Jeg får først kikket på det i morgen, med det ser da rigtig ud.
Så på forhånd tak
Oleelo
supertekst Ekspert
10. september 2015 - 14:18 #13
Hej

Ok - selv tak
oleelo Nybegynder
11. september 2015 - 14:57 #14
Hej
Nu har jeg testes på min egne filer og det virker helt efter hensigten,super

Tak oleelo
oleelo Nybegynder
11. september 2015 - 14:59 #15
Jeg prøver lige igen at Accepter dit svar
oleelo
oleelo Nybegynder
11. september 2015 - 15:00 #16
Og Igen
supertekst Ekspert
11. september 2015 - 15:19 #17
Fint & selv tak..
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

Opret Preview

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





Premium
Ny topchef skal lede det danske it-sikkerhedsfirma CSIS mod nye internationale markeder
CSIS' nye topchef, Daniel Shepherd kommer til at stå i spidsen for selskabets ekspansion i nye markeder.
Computerworld
Apples næste MacOS rummer en potentiel bombe for udvalgte Mac-brugere
Brugere af Apples nyeste Macbooks og Macs kan opleve at visse apps ikke længere vil fungere i udvalgte regioner.
CIO
Har du rost din mellemleder i dag? Snart er de uddøde - og det er et tab
Computerworld mener: Mellemledere lever livet farligt: Topledelsen får konstant ideer med skiftende hold i virkeligheden, og moden går mod flade agile organisationer. Men mellemlederen er en overset hverdagens helt med et kæmpe ansvar. Her er min hyldest til den ofte latterliggjorte mellemleder.
Job & Karriere
IBM Danmark trækker tilbud om frivillige fratrædelser tilbage for stort antal ansatte: "IBM har taget røven på sine ansatte"
Som led i IBM Danmarks store fyringsrunde fik 130 ansatte grønt lys til at forlade selskabet på en frivillig fratrædelsesordning. Men nu har IBM Danmark trukket det oprindelige tilbud tilbage for størstedelen af de ansatte.
White paper
Gratis whitepaper: Hvad er EDI, og hvordan kan det styrke min forretning?
Overvejer du EDI, og ønsker du at undersøge, om EDI er den rette investering for din virksomhed? Har en af dine kunder eller leverandører for nyligt bedt dig om at udveksle elektroniske dokumenter (EDI)? Så hent dette whitepaper og få et overblik over, hvad EDI er, og hvilke fordele producenter og grossister som dig kan se frem til, når du investerer i EDI til din forretning.