Avatar billede Xedmann Juniormester
29. december 2017 - 13:27 Der er 8 kommentarer og
1 løsning

Kopiering af formler

Hej eksperter

Jeg kan simpelthen ikke regne ud hvordan jeg får Excel til at forstå hvordan intervallet springer... Er der en løsning, eller skal jeg taste disse formler manuelt, til begge hænder sover? :-)

Jeg har en formel på ark 2, som referer til celler på ark 1(1801).

Den ser sådan ud (der er tale om en kolonne):
=1801!b22 (celle 1)
=1801!b24 (i celle 2, nedenunder celle 1)
=1801!c22 (i celle 3 nedenunder celle 2)
=1801!c24 (osv.)
Dette fortsætter op til og med f...
Derefter skifter formlen til:
=1801!b27 (celle 1)
=1801!b29 (i celle 2, nedenunder celle 1)
=1801!c27 (i celle 3 nedenunder celle 2)
=1801!c29 (osv.)
Dette fortsætter til og med f...
Så skal den så hedde (=1801!b32 og b34) og (b37 og b39) op til og med f
Og derefter b42 og b44 osv osv

Håber på der sidder en skarp Excel-haj derude!
Avatar billede excelent Ekspert
29. december 2017 - 17:18 #1
Sub xFormula()

start1 = 2 ' start1=start række  - Ret B til aktuel kolonne

For t = 2 To 6
Cells(start1, "B").Formula = "=1801!" & Chr(64 + t) & "22"
Cells(start1 + 1, "B").Formula = "=1801!" & Chr(64 + t) & "24"
start1 = start1 + 2
Next

start2 = 2

For t = 2 To 6 ' start2=start række  - Ret C til aktuel kolonne

Cells(start2, "C").Formula = "=1801!" & Chr(64 + t) & "27"
Cells(start2 + 1, "C").Formula = "=1801!" & Chr(64 + t) & "29"
start2 = start2 + 2
Next

'osv osv

End Sub
Avatar billede Xedmann Juniormester
29. december 2017 - 18:21 #2
Jeg er blank i forhold til dit svar. :-)
Bruger dansk excel.
Avatar billede excelent Ekspert
29. december 2017 - 18:33 #3
Det er en Visual Basic Code "Makro"
er du bekendt med dem ?
Avatar billede Xedmann Juniormester
29. december 2017 - 18:47 #4
Nej desværre... Jeg er totalt novice.
Avatar billede excelent Ekspert
29. december 2017 - 18:58 #5
I arket taster du ALT + F11 (dette er VBA editor)
I menuen Insert vælger du Module
Så indsætter du vba-koden i den store hvide boks til højre
vba-Koden er alt imellem Sub xFormula() og End Sub
begge linier inclusive

Tilbage i arket taster du ALT + F8 og vælger xFormula
og klikker på Run/Start

formlerne indsættes i området B2:C11
Avatar billede Xedmann Juniormester
29. december 2017 - 19:45 #6
Jeg må have forklaret mig forkert. :-) Prøver lige igen.

Vi har kolonne C i ark 2, som skal trække info fra ark 1.
Ark 2 skal konverteres til en csv-fil, så jeg kan trække noget info fra skemaet over i min outlook-kalender.

Det starter her:

C12's formel hedder =1801!b7
C13's formel hedder =1801!b9
C14's formel hedder =1801!c7
C15's formel hedder =1801!c9
C16's formel hedder =1801!d7
C17's formel hedder =1801!d9
C18's formel hedder =1801!e7
C19's formel hedder =1801!e9
C20's formel hedder =1801!f7
C21's formel hedder =1801!f9

-------------Ovnstående er 1 uge-------------

C22's formel hedder =1801!b12
C23's formel hedder =1801!b14
C24's formel hedder =1801!c12
C25's formel hedder =1801!c14
C26's formel hedder =1801!d12
C27's formel hedder =1801!d14
C28's formel hedder =1801!e12
C29's formel hedder =1801!e14
C30's formel hedder =1801!f12
C31's formel hedder =1801!f14

---------Ovenstående er 1 uge-------------

Og sådan fortsætter det til og med C231. :-)

DVS. For hver uge stiger intervallet i formlen med 5.
Fra C32-C41 hedder den skiftevis 1801!b17 og 1801!b19

Giver det mening?
Avatar billede excelent Ekspert
29. december 2017 - 20:02 #7
Slet den første kode og erstat den med denne :

Sub zFormula()
start1 = 12

For t = 7 To 116 Step 5
For r = 2 To 6
Cells(start1, "C").Formula = "=1801!" & Chr(64 + r) & t
Cells(start1 + 1, "C").Formula = "=1801!" & Chr(64 + r) & t + 2
start1 = start1 + 2
Next
Next

End Sub
Avatar billede Xedmann Juniormester
29. december 2017 - 20:24 #8
Det virker! Ville ønske jeg kunne gennemskue den ovenstående formel. Men jeg fatter simpelthen ikke hvad det er du har skrevet.
Plejer ellers nok at kunne gennemskue det og lære af det. :-)

Mange tak for hjælpen!
Avatar billede excelent Ekspert
29. december 2017 - 20:40 #9
velbekom

Chr(65) returnerer bogstavet A (65 er tegnets ascii kode)
Chr(64+r) returnerer bogstavet B hvis r har værdien 2
altså 64+r som er 2 = 66 som er ascii-koden for B
Så tilføjes variablen t som i første gennemløb har værdien 7
"=1801!" siger sig selv, som er Arknavnet, hertil tilføjes ovenstående
fundne værdier  B og 7
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

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