Avatar billede carstenr Nybegynder
02. august 2001 - 10:14 Der er 14 kommentarer og
1 løsning

Sortere i et excelark ved hjælp af en makro

Hej!

Jeg har lavet denne makro:

Range(\"B16:H65\").Select
    Selection.Sort Key1:=Range(\"E16\"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range(\"A1\").Select
Den sorterer så rækkevis, men problemet er når man opretter en række B66:H66, det ved makroen jo ikke!

Hvis der er en der kan hjælpe, må denne meget gerne komme med forslag, løsning eller forbedringer.
Det skal nævnes at makroen sortere efter dato, som er e kolonen.

Hilsen Carsten
Avatar billede askims Nybegynder
02. august 2001 - 10:22 #1
i stedet for at du vælger range(\"b16:h65\"), dette skal du erstatte med

range(\"b16:h16\").select
range(selection, selection.end(xlDown)).select

ASKIMS
Avatar billede lrp Nybegynder
02. august 2001 - 10:24 #2
Jeg går ud fra, at den øverste række altid er nr. 16 - og at der altid står noget i kolonne B (kolonne 2)

Prøv at slette din øverste linje (Range...) og indsæt følgende kode i toppen:

Række = 16
While Cells(Række, 2).Value <> \"\"
  Række = Række + 1
Wend
Range(\"B16:H\" & (Række - 1) & \"\").Select
Avatar billede fomse Nybegynder
02. august 2001 - 10:39 #3
Lytter lige med
Avatar billede johs_j Novice
02. august 2001 - 10:59 #4
Forskellen ligger i: Orientation:=xlLeftToRight
Avatar billede askims Nybegynder
02. august 2001 - 11:09 #5
What?
Hvilken forskel?
Avatar billede janvogt Praktikant
02. august 2001 - 11:31 #6
Jeg læser opgaven således, at celle E16 indeholder en overskrift som hedder dato eller noget lignende.
Så skal den færdige makro se således ud:

Sub sorter()
    Range(\"B17:H17\").Select
    Range(Selection, Selection.End(xlDown)).Select

    Selection.Sort Key1:=Range(\"E16\"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range(\"A1\").Select
End Sub

For at makroen fungerer rigtigt skal kolonne B og kolonne E indeholde lige mange rækker data hele vejen ned.
Avatar billede carstenr Nybegynder
02. august 2001 - 12:20 #7
Hej

Tak for de mange forslag´!

Må erkende, at der går lige et par timer før der er td til at afprøve dem alle. Derefter kommer der point...til den eller de rette person(er)!!

Ps. kan for en god ordens skyld sige til janvogt, at i B:16H65 er rådata, og i e15 står der dato! Ændrer formentlig intet
Avatar billede janvogt Praktikant
02. august 2001 - 12:26 #8
Så skal du nok nærmere bruge denne her:

Sub sorter()
    Range(\"B16:H16\").Select
    Range(Selection, Selection.End(xlDown)).Select

    Selection.Sort Key1:=Range(\"E15\"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range(\"A1\").Select
End Sub
Avatar billede carstenr Nybegynder
02. august 2001 - 12:54 #9
Har prøvet janvogt, men får fejlmed.

Skal lige nævnes at nu står der \"dato\" i e13
og rådata er i række 15. (række 14 er tom)
Det kan måske skyldes, at i række 70 (fordi nu går den til 70, og 69 er tom), er der en sum formel af kolone D, og B og C er flettet sammen og i BC70 er der tekst. Og den medtager nemlig række 70 når den skal sorterer.

Hilsen Carsten
Avatar billede janvogt Praktikant
02. august 2001 - 12:57 #10
Ja, det er det, som giver problemer.
Hvis du mailer mig arket skal jeg hurtigt lave makroen.

jan_vogt_hansen@hotmail.com
Avatar billede askims Nybegynder
02. august 2001 - 13:03 #11
Prøv at indsætte dette i stedet for janvogt to første linjer med Range:

Række = 15
While Cells(Række, 2).Value <> \"\"
  Række = Række + 1
Wend
Range(\"B15:H\" & (Række - 2) & \"\").Select

Det er så forudsat, at rådataene starter i række 15, og ikke række 16 som du startede med.

ASKIMS
Avatar billede carstenr Nybegynder
02. august 2001 - 13:07 #12
Så er det mailet, du får lige nogle point:)
Avatar billede janvogt Praktikant
02. august 2001 - 13:15 #13
Jeg ville nu ellers godt dele dem med askims.
Han var egentlig først med \"selection.end(xlDown)\"-kommandoen.

>>> askims
Jeg smider lige lidt kompensationspoint ;-)
Avatar billede askims Nybegynder
02. august 2001 - 13:27 #14
-> jan

Hvor har du smidt dem henne? (Ska\' vi sige 10 point, for så komme jeg op på en 5.plads under regneark?) ;-)

Jeg havde så småt overført carstenr\'s navn til min sorte liste over personer, der ikke kan forvente at få min hjælp igen, da han åbenbart kun værdsætter at få den endelige løsning præsenteret i stedet for at tænke på de mellemliggende steps ;-)

ASKIMS
Avatar billede janvogt Praktikant
02. august 2001 - 13:28 #15
>>> carstenr
Jeg har ingenting modtaget!

>>> askims
2 minutter ....
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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