Møllerodden Skrevet 26. mars 2008 Del Skrevet 26. mars 2008 (endret) 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 26. mars 2008 av Møllerodden Lenke til kommentar
Harald Staff Skrevet 27. mars 2008 Del Skrevet 27. mars 2008 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
Møllerodden Skrevet 27. mars 2008 Forfatter Del Skrevet 27. mars 2008 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
Møllerodden Skrevet 27. mars 2008 Forfatter Del Skrevet 27. mars 2008 Beklager Harald Det var min feil, koden din funker kjempefint, jeg var bare litt rask, for dataene som jeg tømte over fylte ikke opp i kolonne A, og da er det jo naturlig at den ikke legger dataene videre. Tusen Takk for hjelpen. Lenke til kommentar
Harald Staff Skrevet 27. mars 2008 Del Skrevet 27. mars 2008 (endret) 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 27. mars 2008 av Harald Staff Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå