Jeg kunne godt tænke mig hjælp nedenstående tabel. Som i kan se har jeg tre intervaller, der hver har en startdato og en slutdato. Frekvens angiver hvor mange gange det pågældende interval skal gentages. Dag. iml angiver hvor mange dage imellem gentagelserne der skal være. Jeg vil gerne lave tabellen fuldendt, hvor man kan se alle intervallerne med deres gentagelser og de skal ligge i kronologisk orden. Interval 1 skal altså gentages igen efter 5 dage og det skal det 5 gange, så næste gang det skal gentages er dets start dato 10-04-2010 og slutdato er = varighed af interval 1 (05-04-2010 -27-03-2010). Det skal have nummer '4'.
Navn Start slut frekvens dag iml. 1 xxx 27-03-2010 05-04-2010 5 5 2 yyy 29-03-2010 15-04-2010 4 2 3 zzz 30-03-2010 25-04-2010 6 3
Ja der kan være feks. 77 og så vil der måske senere blive tilføjet én mere. Men hvis det komplicerer tingene, kan jeg som udgangspunkt godt klare mig med et svar til et fast antal rækker :-)
Håber at du er med på at når man har regnet frekvensen ud for feks. interval 1, som jo skal gentages 5 gange, så kommer der 5 rækker mere af den og de skal ligge sig i nummer orden og tage hele rækken med.
VBA-koden lægges under relevante ark ------------------------------------
Dim antalRækker As Integer, ræk As Integer, række As String, fRæk As Integer Dim navn As String, stDato As Date, slDato As Date, frekvens As Byte, dagIml As Byte, varighed As Byte Dim nyStart As Date, nySlut As Date, f As Byte Public Sub opbygFrekvenser()
Rem beregn antalrækker ved opstart antalRækker = ActiveCell.SpecialCells(xlLastCell).Row
fRæk = antalRækker + 1
Rem hent udgangsrækker For ræk = 2 To antalRækker række = ræk navn = Range("A" & række) stDato = Range("B" & række) slDato = Range("C" & række) frekvens = Range("D" & række) dagIml = Range("E" & række) varighed = DateDiff("d", stDato, slDato, 2)
For f = 1 To frekvens stDato = DateAdd("d", dagIml, slDato) slDato = DateAdd("d", varighed, stDato)
Range("A" & CStr(fRæk)) = navn Range("B" & CStr(fRæk)) = stDato Range("C" & CStr(fRæk)) = slDato fRæk = fRæk + 1 Next f Next ræk End Sub
Tak for din kode. Jeg har lagt koden ind under det relavante ark, men hvad skal jeg gøre for at aktivere den. Klikkede på 'run', men den kom med en 'run time error 13'.
Mit ark skal udbygges med mange kolloner (Regner med 25 ialt) og jeg kan se på koden at der er taget højde for kolonne A,B,C,D,E. Kan se hvad du gør for hver kollone, men ændrer det sig andre steder. De nye kolloner, vil blot være et navn med noget tekst, så det er ikke noget der har betyding, andet end at jeg skal have hele rækken med alle kolonner med når frekvensen er regnet ud.
For at aktivere koden fra Excel - Alt+F8 - Afspil makroen "OpbygFrekvenser"
Flere kolonner skulle ikke være et problem, når du kan se princippet - men det kan nu evt. gøres på en "lettere måde". Skal prøve at komme med et eksempel.
Prøv nårdu kører test og fejl opstår - så aktiver knappen Debug og tag et skærm-print & send det til mig (@-adr. under min pro-fil) - & evt. selve filen.
Foretager mig ikke yderligere før jeg hører nyt...
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.