Gå til innhold

Eksportere data med excel


Anbefalte innlegg

Hei

Jeg har et ønske når det gjelder eksportering av data i excel. Her er en forklaring:

Jeg har ca 10 lister i excel som kommer til meg hver uke, listene er like, men de har forskjellige verdier.

Hver liste har en knapp, koden under den knappen åpner et bestemt regneark og legger verdiene inn og lukker derretter regnearket.

Mitt problem er at når neste liste skal behandles så vil jeg at den skal finne neste ledige rad også legge verdiene under der. Da vil lista bli lengre og lengre, istedet for at den overskriver hver gang.

Koden som ligger under knappen ser slik ut :

 

Private Sub CommandButton1_Click()

Dim wbSource As Workbook

Dim wbTarget As Workbook

 

'Definere denne arbeidsboken som wbSource

Set wbSource = ActiveWorkbook

 

'Åpne filen c:\Mottaker.xls, og definere den som wbTarget

Set wbTarget = Application.Workbooks.Open("C:\kONTROLLMÅLINGER.xls")

 

'Sette A1 i wbTarget til det samme som A1 i wbSource

wbTarget.Sheets(1).Range("A1:p37").Value = wbSource.Sheets(1).Range("h6:w42").Value

 

wbTarget.Close True 'True betyr at du skal lagre endringer

 

End Sub

 

Noen som kan vise meg hvordan jeg skal løse dette ?

Hilsen Frode

Endret av Møllerodden
Lenke til kommentar
Videoannonse
Annonse

Hei Frode

 

Dim wbSource As Workbook

Dim wbTarget As Workbook

 

'NY:

Dim rngSrc As Range

Dim RngTrg As Range

 

 

'Definere denne arbeidsboken som wbSource

Set wbSource = ActiveWorkbook

 

'Åpne filen c:\Mottaker.xls, og definere den som wbTarget

Set wbTarget = Application.Workbooks.Open("C:\kONTROLLMÅLINGER.xls")

 

'NY

Set rngSrc = wbSource.Sheets(1).Range("h6:w42")

 

Set RngTrg = wbTarget.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(rngSrc.Rows.Count, rngSrc.Columns.Count)

 

'ENDRET

RngTrg.Value = rngSrc.Value

 

HTH. Beste hilsen Harald

Lenke til kommentar
Hei Frode

 

Dim wbSource As Workbook

Dim wbTarget As Workbook

 

'NY:

Dim rngSrc As Range

Dim RngTrg As Range

 

 

'Definere denne arbeidsboken som wbSource

Set wbSource = ActiveWorkbook

 

'Åpne filen c:\Mottaker.xls, og definere den som wbTarget

Set wbTarget = Application.Workbooks.Open("C:\kONTROLLMÅLINGER.xls")

 

'NY

Set rngSrc = wbSource.Sheets(1).Range("h6:w42")

 

Set RngTrg = wbTarget.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(rngSrc.Rows.Count, rngSrc.Columns.Count)

 

'ENDRET

RngTrg.Value = rngSrc.Value

 

HTH. Beste hilsen Harald

 

Hei Harald

Takk for svaret, når jeg trykker på knappen på de ene regnearket, så tømmer den data over til det andre, det virker nå. Men når jeg trykker på knappen en gang til, så vil jeg at kommandoen under knappen skal legge dataene over under der som den la ut sist, slik at lista blir lengre og lengre.

Hvordan gjør jeg det ?

Lenke til kommentar

Ja det er en felle selvfølgelig. Juster til dette, så sjekker vi alle kolonnene A til P. Knappetrykk-operasjoner merker ikke slike små forsinkelser:

 

Dim i As Long, R As Long, Rmax As Long

 

'....

 

For i = 1 To 16

R = wbTarget.Sheets(1).Cells(Rows.Count, i).End(xlUp).Row

If R > Rmax Then Rmax = R

Next

 

Set RngTrg = wbTarget.Sheets(1).Cells(Rmax + 1, 1).Resize(rngSrc.Rows.Count, rngSrc.Columns.Count)

 

HTH. Beste hilsen Harald

Endret av Harald Staff
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...