Avatar billede Snakie45 Praktikant
07. januar 2017 - 12:53 Der er 4 kommentarer

makro til automatisk ændring af kritere i flere celler

Hej.
Jeg sidder og bokser med et ark, hvis primære mål er at indtaste I så få indtastningsark, som det er muligt.
Herefter har jeg I andre ark ved hjælp af sum.hviser opstillet en række kriterier, som når de er opfyldt, automatisk opsummeres I de enkelte celler. Da dette er en løbende process, ved jeg allerede nu, at jeg til næste år skal ændre et årstalskriterie. Skal jeg vitterligt ind I hver celle og gøre dette? eller kan man lave en makro der ændrer eksempelvis 2017 til 2018?
Og da jeg har ret mange varenumre, kunne det være super fedt blot at kunne ændre et enkelt bogstav I formlen, via en makro, frem for at skulle ind på hver enkelt celle og gøre det.
Min formel ser sådan ud:
=SUM.HVISER('Produktion Lindeman'!J:J;'Produktion Lindeman'!H:H;"E226";'Produktion Lindeman'!I:I;"Classic";'Produktion Lindeman'!A:A;"2017";'Produktion Lindeman'!C:C;"2")*0,0398

Det eneste jeg reelt ønsker at ændre I ca 400 celler er E226 til A226, altså I dette tilfælde E'et byttes ud med et A.

Er ikke den store makro haj, men hvis jeg indspiller en makro, mens jeg foretager ændring, kan jeg ikke bruge makro når jeg stiller mig på en anden celle. Så ændrer makroen på de øvrige cellereferencer, så eksempelvis J:J bliver til L:L ???

Håber på et skarpt input derude fra. På forhånd tak.
Jacob
Avatar billede supertekst Ekspert
07. januar 2017 - 15:03 #1
Har du mulighed for at Uploade/Maile et uddrag af data?
I givet fald kan jeg prøve at skrive den nødvendige VBA-kode (makro).
Avatar billede kim1a Ekspert
08. januar 2017 - 11:23 #2
Kan du slippe afsted med en søg og erstat?

F.eks. søg "E226" erstat med "A226"
Avatar billede jkrons Professor
08. januar 2017 - 12:07 #3
Det nemmest må være at skrived årstallet i en celle, fx X100 så din formel kommer til at hedde

=SUM.HVISER('Produktion Lindeman'!J:J;'Produktion Lindeman'!H:H;"E226";'Produktion Lindeman'!I:I;"Classic";'Produktion Lindeman'!A:A;X100;'Produktion Lindeman'!C:C;"2")*0,0398

Hvis du i stedet for E226 skriver INDIREKTE(X101) og så i X101 skriver E226 så skulle du bare kunne ændre det her til A226. Det kræver selvfølgelig at dine formler skal ændres overalt. Til gengæld er det fremtidssikret.
Avatar billede supertekst Ekspert
10. januar 2017 - 09:54 #4
Forslag, der er fremsendt:

Public Sub Test()
Dim ptFormel As String, nyFormel As String
Dim ræk As Integer, kol As Integer, skp As Integer
    Application.ScreenUpdating = False
    For ræk = 88 To 100
        For kol = 3 To 19 Step 2
            ptFormel = Cells(ræk, kol).Formula
   
            nyFormel = Replace(ptFormel, "E226", "A226", , , 2)
            Cells(ræk, kol).Formula = nyFormel
        Next kol
    Next ræk
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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



IT-JOB

Cognizant Technology Solutions Denmark ApS

Test Architect - Projects

Udviklings- og Forenklingsstyrelsen

Data Engineers til bekæmpelse af skatteunddragelse

Udviklings- og Forenklingsstyrelsen

Erfaren IT-projektleder til Data & Analytics