Hvis det er en helt simpel "kopisunktion", så: I ark 2, hvor kopien skal ende, der skriver du blot et + i cellen, hvor rækken(kolonnen?) skal starte, skifter om til kilde arket oppe under menuen vindue, og klikker på den celle hvis værdi skal kopieres. Du vil så få et indhold meget lig dette =+[Mappe1.xls]Ark1!$A$1
Du skal så fjerne de 2 $ tegn, og kan derefter bruge fyldhåndtaget, både lodret og vandret....
Det dur perfekt, hvis rækkerne i kilden ligger ligesom rækkerne skal ligge i "kopiarket"
Desværre, så er det jo sjældent "så enkelt"
Hvis det er mere bøvlet....er det næsten altid, så er det fx. noget a'la at du ønsker "dagens tal" kopieret over i et skema, hvor tallene for alle dage så står opført side om side.
ALtså at data fra samme kilderække, hver dag/hver gang, - ønskes overført til en ny målrække.
Hvis det er den "gade" vi er henne i, så må jeg passe. Det kan muligvis løses, men ikke af mig.
Som Janvogt siger, så kan man også lave en "gentag srbejdsgang" ved at indspille en såkaldt makro, som er en "se-hvad-jeg-gør,-og-gør-nøjagtigt-ligesådan-når-jeg-klikker-på-en-enkelt-knap" funktion.
Den er ligeledes velegnet, til at gentage 100% ens handlinger.
Hvis du (som jeg formoder) skal have noget, som ændrer sig en anelse, hver gang funktionen køres, så tror jeg at du lettere får et brugbart svar under VB programmering.
- Jeg har 500 rækker med forskellige tal i ark1 - Jeg skal så indsætte først række 1 i ark 2, der giver et resultat i ark 3. - Resultatet i ark3 skal lagres.
- Derefter gentager processen sig nu med række 2 kopieres over i ark2, der giver en nyt resultat i ark3, som skal lagres osv. osv.
Håber I kan hjælpe
Synes godt om
Slettet bruger
16. april 2003 - 14:42#7
Prøv denne her:
--------------- Public Sub kopierOmraade() ActiveCell.CurrentRegion.Copy Sheets(2).Range("A1") End Sub ---------------
1. Klik på en celle der ligger inden for det område du gerne vil kopiere. 2. Aktiver makroen.
jeg har prøvet den og den kopiere fint. Men når første række i ark1 lad os kalde den a1:c1 er kopieret til ark2 a1:c1 skal kommandoen går videre til a2:c2 i ark1 og kopiere det til ark2 a1:c1.
Det skal den gøre f.eks. 500 gange eller 1000 gange
For hver gang der kommer et nyt sæt data til ark2 bliver der beregnet i ark3 som skal lagres. Dvs. a1:c1 ark1 kopieres til ark2 a1:c1, som i ark3 giver x. Nu a2:c2 ark1 kopieres til ark2 a1:c1, som i ark3 giver x1. osv.
Synes godt om
Slettet bruger
16. april 2003 - 14:56#10
OK. Dvs. alle rækkerne fra Ark1 skal kopieres over i den samme række (A1:C1) i Ark2.
Hvad er egentlig formålet med det ? Hvordan bruger du så dataen fra Ark2 i Ark3 ?
Synes godt om
Slettet bruger
16. april 2003 - 14:59#11
Bliver data i Ark3 lagret på en ny række hver gang ? Er det ikke nemmere bare at lave beregningerne i Ark3 og springe mellemledet (Ark2) over ?
formålet er jeg vha. rækkerne i ark1 udtrækker forskellige scenarier i ark2. Dvs. række a1:c1 i ark1 giver et sæt data i ark2 som skal lagres i ark3. Række a2:c2 giver et nyt udtræk i ark2 som beregnes og skal lagres i ark3 osv. Dette skal jeg gøre måske 5000-6000 gange. Ja data i ark3 skal lagres på ny række hver gang da det er disse output der er de interessante. Iøvrigt tak for hjælpen hidtil
Synes godt om
Slettet bruger
16. april 2003 - 15:53#13
Ok, ny version... :-)
---------
Public Sub kopierOmraade2()
Dim maxRow As Integer
maxRow = ActiveCell.CurrentRegion.Rows.Count
For i = 1 To maxRow Range(Cells(i, 1), Cells(i, 3)).Copy Sheets(2).Range("A1:C1") ' ' Her laves beregninger i Ark3 ' Next i
End Sub --------------
Den forudsætter at dit dataområde i Ark1, starter i række 1 samt ikke har nogen tomme rækker.
Hej jeg prøver at give en kort version af problemmet som opstillet i regnearket:
Data som ligger i ark 1 som Ark1 Række 1: 1 5 10 Række 2: 1 5 20
I ark2 skal VBA koden så kopiere række1 fra ark1 over i ark2 række 1 og dette giver så et udtræk (1 står for 50, 5 står for 100 osv.) f.eks
Ark2 Række 1: 50 100 300
Derefter skal koden i ark3 beregne middelværdien og lagre resultatet.
Ark3 Række 1 ca. 116
Herefter skal række 2 i ark1 gennemgåes: Ark1 Række 1: 1 5 10 Række 2: 1 5 20
I ark2 skal VBA koden så kopiere række2 fra ark1 over i ark2 række 1 og dette giver så et nyt udtræk f.eks
Ark2 Række 1: 50 100 550
Derefter skal koden i ark3 beregne middelværdien og lagre resultatet i ark3.
Ark3 Række 1 ca. 116 Række 2 ca. 233
Osv. osv. 5000 gange. Altså skal jeg ende ud med ekslvis. 5000 middelværdier
Synes godt om
Slettet bruger
16. april 2003 - 18:26#15
Prøv med denne her:
----------------- Public Sub kopierOmraade3()
Dim maxRow As Integer Dim tempRng As Range
maxRow = ActiveCell.CurrentRegion.Rows.Count Set tempRng = Sheets(2).Range("A1:C1")
For i = 1 To maxRow Range(Cells(i, 1), Cells(i, 3)).Copy tempRng 'Konvertering af værdier sker her (1 -> 50, 5 -> 100 osv.) Sheets(3).Cells(i, 1) = Application.WorksheetFunction.Average(tempRng) Next i
End Sub ------------------
Jeg kan ikke lige gennemskue den konvertering du laver i Ark2, jeg har angivet hvor den evt. skal foregå.
og det endelige gns bliver dette som er det interessante -0,287458351 Ideen er at jeg 5000 gange kan få den sidste middelværdien udregnet 5000 gange for forskellige udtræk
Jeg må vist hellere forhøje mit point til 500
Synes godt om
Slettet bruger
16. april 2003 - 20:26#17
Jeg kigger lige på det... Max. point i Experten for et spørgsmål er 200 point. 60 point er det anbefalede for "svære" spørgsmål.
Du skulle nødig få ballade med Co-Administratorene :-)
Synes godt om
Slettet bruger
16. april 2003 - 20:28#18
Det vil hjælpe lidt hvis du havde mulighed for at tilsende mig et eksempel ark. tc@elvis.dk
Hvis evt. firmapolitik forbyder det, så må jeg klare mig med det du har skrevet indtil videre.
Synes godt om
Slettet bruger
16. april 2003 - 20:50#19
For at kunne få de rigtige værdier over i Ark3, skal jeg sådan set bare vide i hvilket område de "relative tal" ligger (i Ark2), da det er dem (som jeg forstår det) der skal danne grundlag for middelværdien som skal overføres til Ark3.
Synes godt om
Ny brugerNybegynder
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.