Avatar billede laurbjerg Nybegynder
19. august 2003 - 11:25 Der er 10 kommentarer og
1 løsning

nye uger ?

Jeg har nedenstående formel i et felt:
=SUM(E109+'J:\Vaer\Produktivitet\Vest\NY PRODUKTIVITET\År 2003\[uge 32.xls]Produktivitetsrapport - SMED'!$E$109+'J:\Vaer\Produktivitet\Vest\NY PRODUKTIVITET\År 2003\[uge 31.xls]Produktivitetsrapport - SMED'!$E$109+'J:\Vaer\Produktivitet\Vest\NY PRODUKTIVITET\År 2003\[uge 30.xls]Produktivitetsrapport - SMED'!$E$109+'J:\Vaer\Produktivitet\Vest\NY PRODUKTIVITET\År 2003\[uge 29.xls]Produktivitetsrapport - SMED'!$E$109)

Nu skal jeg i næste uge bruge samme formel, men alle uge+1,
altså istedet for startende med uge 32 , så starter den med uge 33.

Hvordan kan jeg det uden at skulle rette alle formler (ca. 1200 stk) ??
Avatar billede fobian Nybegynder
19. august 2003 - 12:00 #1
Denne macro anvender søg og erstat-funktionen. Du skal blot indtaste det nye ugenr i inputboxen, når macroen er startet - derefter klarer macroen resten :-)

Sub SkiftUge()
Dim sluguge As String
Dim Find As String
Dim ErstatMed As String
Dim i As Integer

    slutuge = InputBox("Indtast nyt uge nr. (f.eks. 33)", , 33)
   
    For i = slutuge To slutuge - 3 Step -1
        Find = "uge " & i - 1
        ErstatMed = "uge " & i
        Cells.Replace What:=Find, Replacement:=ErstatMed, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False
    Next
End Sub
Avatar billede laurbjerg Nybegynder
19. august 2003 - 12:21 #2
Hvor skal ovenstående installeres og hvor er inputboxen ?
Avatar billede fobian Nybegynder
19. august 2003 - 12:43 #3
Hvis du har alle dine formler på et faneblad i regnearket kan du 'højreklikke' på fanebladet og vælge "vis programkode". Visual Basic editoren åbner og viser macromodulet til det aktuelle faneblad.

Der står sikkert:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

End Sub

Det kan du bare slette. Herefter kopierer du koden over på denne side og lukker VBA-editoren igen. Så går du tilbage til dit regneark og vælger Funktioner->Macro->Macroer. Nu får du en menu frem på skærmen, som viser de macroer der kan afspilles. Klik på 'SkiftUge' og klik på afspil - så kommer inputboxen frem og macroen kører :-)

p.s.
Hvis du har de samme formler i flere ark(faneblade) kan man tilføje et modul i VBA-editoren, hvor man kan afspille koden fra alle ark.
Avatar billede laurbjerg Nybegynder
19. august 2003 - 12:45 #4
Fobian_ jeg har fundet ud af det og det fungerer udemærket, så her er nogle point .

Jeg takker.
Avatar billede fobian Nybegynder
19. august 2003 - 12:51 #5
Selv tak :-)
Avatar billede laurbjerg Nybegynder
19. august 2003 - 13:08 #6
>fobian

Der var jeg lige hurtigt nok. Det fungerer ikke alligevel. Det var kun lige første gang det virkede. Nu sker der ingenting når man ændrer på ugerne ?
Avatar billede laurbjerg Nybegynder
19. august 2003 - 13:24 #7
>fobian  Og dog. den ændrer godt nok på ugerne , men den ændrer dem ikke til det rigtige. Nogle steder ændrer den de 3 første uger til det samme og andre steder ændrer den de 2 første uger til det samme. Det var meningen at, når den ændrer skal den ændrer således: hvis der står uge 35, uge 34, uge 33 , uge 32 i alle de ovennævte formler, så skal den ændrer dem til eks. uge 36 , uge 35 , uge 34 , uge 33 ???
Avatar billede fobian Nybegynder
19. august 2003 - 14:42 #8
Jeg har lavet macroen som en søg og erstat funktion, hvor den søger efter et tal og erstatter den med et andet. Jeg ved ikke om det er fordi du kører macroen flere gange med det samme tal f.eks. 33, for så går det galt. Man kan kun køre macroen én gang med hvert tal. Du kan f.eks. prøve at teste med tallene 33-35 og se om ikke det skulle virke.
Avatar billede laurbjerg Nybegynder
19. august 2003 - 14:49 #9
Sorry, sorry, endnu engang var jeg for hurtig. Der stod forskellige uger i nogle af formlerne. det fungerer fint
Avatar billede fobian Nybegynder
19. august 2003 - 14:52 #10
py-ha ;-)
Avatar billede aheiss Praktikant
19. august 2003 - 16:04 #11
Der kom jeg lige for sent, her er en anden mulighed, som fungerer i et udvalgt område.

Sub uger()
slutuge = InputBox("Indtast ny uge nr. ", , 33)
For Each cell In Selection
cell.Select
Dim SearchString, SearchChar, MyPos1, MyPos2, MyPos3, MyPos4
SearchString = Selection  ' Cellen, der skal søges i.
SearchChar = "Uge"    ' Søg efter "Uge".
    MyPos1 = InStr(1, SearchString, SearchChar, 1)
    MyPos2 = InStr(MyPos1 + 2, SearchString, SearchChar, 1)
    MyPos3 = InStr(MyPos2 + 2, SearchString, SearchChar, 1)
    MyPos4 = InStr(MyPos3 + 2, SearchString, SearchChar, 1)
    MyPos5 = Len(ActiveCell)

    omrode1 = (Mid(ActiveCell, 1, MyPos1 + 3))
    omrode2 = (Mid(ActiveCell, MyPos1 + 6, MyPos2 - MyPos1 - 2))
    omrode3 = (Mid(ActiveCell, MyPos2 + 6, MyPos3 - MyPos2 - 2))
    omrode4 = (Mid(ActiveCell, MyPos3 + 6, MyPos4 - MyPos3 - 2))
    omrode5 = (Mid(ActiveCell, MyPos4 + 6, MyPos4 - MyPos3 - 2))

ActiveCell.Formula = omrode1 & slutuge _
                  & omrode2 & slutuge - 1 _
                  & omrode3 & slutuge - 2 _
                  & omrode4 & slutuge - 3 _
                  & omrode5
Next
End Sub
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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