Jeg har to kolonner, A og B, A indholder navne og B tal. Dem vil jeg så have sorteret til to nye kolonner, C og D. De skal sorteres så D1 er det højeste tal i hele kolonne B, hvor navnet for det felt står i C1. Dette er muligt med Excel's sorter funktion, men da det skal ske automatisk, er den ubruglig.
Et eksempel på hvordan det gerne du ende med er således: A B C D hans 3 svend 5 svend 5 lars 4 erik 2 hans 3 lone 3 lone 3 lars 4 erik 2
Lige nu gør den det her: A B C D hans 3 svend 5 svend 5 lars 4 erik 2 hans 3 lone 3 hans 3 lars 4 erik 2
Problemet ligger i at få det rigtige navn vist. Jeg bruger denne formel til at hente navnet: INDEKS(A1:D5;SAMMENLIGN(D1;B1:B5;0);1)
Jeg har prøvet at kigge lidt på det igen. Hvis du kopiere nedenstående makro ind i modulet Worksheet_Change slipper du for at skulle haven en kommandoknap. Makroen kopierer kolonne A+B til C+D, hvorefter den sorterer på D.
Hvordan virker en makro i forhold til en formel ? Skal man ikke selv starte den ? Og den vigtige ting, hvor skal jeg kopier den makro der hen for den kan køres ?
En makro er et lille program der udfører det man nu sætter den til, lidt lige som en formel, men nogle gange kan en formel ikke gøre det man gerne vil have gjort. Man kan også bruge en makro til at automatisere nogle arbejdsgange (f.eks. sortering).
Nogle gange skal man selv starte makroen, det kan bl.a. gøres vha. en knap, man trykker på, eller som i det her tilfælde, sætter man makroen ind, så den selv kører i det øjeblik, der ændres i arket.
Jeg vil lige gøre opmærksom på, at jeg ikke er en stor makro-haj, og jeg har fundet ud af, at uanset hvor i arket man befinder sig, hvis man laver en ændring springer den til første tomme celle i kolonne B, det skal du lige være opmærksom på! Det må være muligt at få den til at gøre det hvis der kun ændres i kolonne A eller B, men det har jeg ikke fundet ud af endnu :-) Til gengæld tager den automatisk de rækker du evt. måtte tilføje senere, idet den gennemsøger til sidste celle i kolonnen.
Når du skal have sat makroen ind højreklikker du på fanebladet (fx. ark1) og trykker på 'Vis programkode'. Øverst i det højre vindue er der to rullegardiner, det venstre skal stå på 'Worksheet' og i det højre vælger du 'Change'. Så er det bare at copy/paste makroen ovenfor ind mellem
'Private Sub Worksheet_Change(ByVal Target As Excel.Range)'
og
'End Sub'
Det du nu be'r den om, er at køre den makro, hver gang der sker en ændring i lige præcis dette ark (ark1). De andre ark vil ikke blive påvirket af makroen.
Håber forklaringen er god nok, eller må du sige til.
Jeg har siddet og leget lidt med makroen, og kan nu tilbyde dig hele 3 ting :-)
1. Makroen kører automatisk ved ændring i arket, men nok ikke den optimale løsning. 2. Makroen kører, når der trykkes på en kommandoknap, en udmærket løsning, der har det lille minus, hvis der er mange data, bliver man nødt til at scrolle op til knappen igen. Man kan dog placere knappen øverst i arket, og derefter fryse rækken så den altid vises. Dette er en metode jeg selv bruger en del (indtil nu). 3. Makroen kører når man trykker på en bestemt tast f.eks. ½ tegnet. Det her er en metode, jeg tror, jeg vil benytte noget mere i fremtiden.
Hvis du er lidt usikker på at få placeret makroen rigtig, så kan jeg sende dig et testark hvor alle 3 løsninger er repræsenteret, så du kan se hvordan de virker. Smid din e-mail adresse eller skriv til soeren109@hotmail.com
Du skriver, at du kan lave det med "hånden" i Excel, så kan du også altid lave det med en makro.
Gå i Funktioner/Makro/indspil makro Giv den her et navn og et "Shortcut" Ctrl+a Derefter laver du det hele med Hånden og slutter af med at standse indspilningen.
Uanset hvor du står i regnearket, så kan du køre makroen ved at trykke Ctrl+a.
Pas på når du laver makroen. Brug helst go to (F5) når du skal gå til et felt istedet for at benytte musen. Du bør også sørge for at der er en blank kolonne til venstre og til højre for din "liste", så har Ecxel lidt lettere ved at finde ud af hvad du vil. Det vil sige at jeg vil anbefale dig at have den oprindelige liste fra B2..C2 og lade den gå ned til B(x)..C(x). Lav så den sorterede liste i E2..F2 og nedefter.
Så kan du indspille makroen ved at sige F5 B2 OK F5 "speciel" "Aktuelt område" OK Ctrl+c F5 E2 OK Ctrl+v Data Sortering OK
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.