31. maj 2002 - 17:15Der er
4 kommentarer og 1 løsning
Problemer med automatisk aktivering af en makro i Excel
Jeg har, i Excel 97, lavet et Excel-sheet med en pivot-tabel. Ud over den helt almindelige pivot, har jeg trukket nogle kolonner hen på "side", der gør det muligt at filtrere data på alle mulige måder. Når jeg foretager en selection, opdateres data selvfølgelig i pivot'en, men det bevarer ikke formateringen (denne funktion kom først til senere end v. 97). Derfor har jeg lavet en makro, som gendanner formateringen, og en knap, som brugerne kan trykke på for at aktivere makroen. Er der en smart funktion, som aktiverer min formateringsmakro hver gang en bruger har foretaget en selection, eller en funktion som kan bevare formateringen? Det må ikke påvirke autofilterfunktionen, som jeg har sat på kolonne overskrifterne i den store del af pivot-tabellen.
jeg har en ide du måske kan bruge (bygge videre på) Du skal ændre B2 til den celle der indeholder din selection indsæt dette i arkets eget kodemodul (højreklik på arkfanen, vis koder)
Private Sub Worksheet_Calculate() Static TestOmSkiftet If range("b2").Value <> TestOmSkiftet Then TestOmskiftet = range("b2").Value MinFormateringsmakro 'her kaldes din formateringsmakro End If End Sub
Det er også muligt at gemme formateringen, også i xl97. Jeg bruger lige en engelsk version nu. Højreklik på pivottabellen. Vælg (pivot) Indstillinger Fravælg Autoformatering og fravælg Gem formatering. Læg nu din nye formatering på. ind i indstillinger igen tilvælg Gem formatering.
Til Bak! Har testet! Det virker simpelt hen perfekt! MEN jeg har selections i b1, b2 og b3 - skal jeg lave tre private subs eller kan jeg gøre noget smartere. Du skal selvfølgelig nok få point!
Ok, her er den med 3 stk i b1, b2, b3 Har du prøvet det jeg skrev om pivot i xl97? Jeg har lige testet for at være helt sikker og hvis man gør som jeg skriver bevares den formatering man har givet tabellen. Problemet er hvis du har valgt et autoformat (i formater/autoformater). Der vil autoformatet nemlig bestemme.
Private Sub Worksheet_Calculate() Static TO1, TO2, TO3 If Range("b1").Value <> TO1 Or Range("b2").Value <> TO2 Or Range("b3").Value <> TO3 Then TO1 = Range("b1").Value TO2 = Range("B2").Value TO3 = Range("B3").Value MinFormateringsmakro 'her kaldes din formateringsmakro End If End Sub
Mange Tak, Bak! Det var et genialt svar. Det spiller MAX - KANON!
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.