Just nu i M3-nätverket
Jump to content

Makroproblem


Lassepiano

Recommended Posts

Hej!

Har gjort ett makro som sorterar elever tillsammans med deras individuella data i bokstavsordning i ett skolschema (som du Monshi hjälpte mig med häromdagen ang. ett annat problem). Det funkar utmärkt så länge jag inte kör filen i delat läge. I delat läge stannar makrot nämligen vid körning med felkoden '1004' och meddelar att "Denna åtgärd kräver att de sammanfogade cellerna har identisk storlek". Men det finns inga sammanfogade celler i det område som ska sorteras, inte i resten av bladet heller så vitt jag kan se. Jag vet att bl a sortering fungerar annorlunda i delat läge, men jag har kört ett likadant makro i en likadan, äldre fil tidigare i delat läge utan problem. Det verkar som om kod '1004' kan vara lite allt möjligt!?

Tacksam för hjälp

Lasse

Link to comment
Share on other sites

Borde väl lära mig VBA förstås, men just nu finns inte den tiden. Skickar med två filer. I den gamla funkar mitt sorteringsmakro både i delat och "odelat" läge, i den nya däremot endast i "odelat".

/Lasse

Link to comment
Share on other sites

1: Raderat dina filer - för mycket personlig information i dem!

 

2: Projekten låsta. Det räcker med om du kopierar VBA-koden och postar den här skulle jag tro.

 

3: Om du ändå behöver ladda upp dem, anonymisera dem.

Link to comment
Share on other sites

Det går att klistra in kod i inläggen.

 

men du har spelat in koden och inte fixat till den, jag ger dig här en lite mer generell sökrutin för båda böckerna:

Sub Sortera()
With Blad1
     	.Range("A3").CurrentRegion.Sort  Key1:=.Range("A3"), Order1:=xlAscending, Key2:= _
                           	.Range("B3"), Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, _
                           	MatchCase:=True, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
                            	DataOption2:=xlSortNormal
  End With
End Sub

Uppdatera bara så att Blad1 refererar till rätt blad så bör den fungera givet att cell A3 är del av din tabell och din tabell står själv på bladet, eller rättare sagt fritt på bladet.

Funktion CurrentRegion är samma som om du manuellt tar upp Gå till special och där väljer Aktuellt område.

Link to comment
Share on other sites

Ledsen, men jag får det inte att fungera. Skickar filen (anonymiserad!) med förslaget till makro. Området som ska sorteras är A3:BU180 med kol. A i första hand och kol. B i andra hand som nycklar och sedan ska markören återvända till A3. Det är alltså när jag kryssar "Dela dokument" på Verktygsmenyn som problemet uppstår.

/Lasse

Nytt.xls

Link to comment
Share on other sites

CurrentRegion fungerar inte eftersom det inte finns en tom rad ovan tabellen. Infoga en rad där och sedan ska koden se ut som:

    	With Blad1
   	.Range("A3").CurrentRegion.Sort Key1:=.Range("A3"), Order1:=xlAscending, Key2:= _
                           	.Range("B3"), Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, _
                           	MatchCase:=True, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
                           	DataOption2:=xlSortNormal
  End With

Blad1 är alltså VBA-namnet, det du ser i Utforskaren i VBA-editorn.

 

Så ska alltså koden och tabellen vara ordnad men det fungerar inte riktigt som det ska då heller ser jag, ett felmeddelande poppar upp så fort man försöker sortera på en delad arbetsbok.

 

Finner dock att om jag raderar allt bortom kolumn BU då fungerar det, det är med andra ord något i cellerna där bortom som ställer till med problem.

 

Receptet/lösningen blir alltså

  1. Infoga en tom rad ovan tabellen, dvs markera rad 2 och infoga en rad.
  2. Klipp ut formlerna bortom BU och placera, tillfälligt eller permanent, på ett annat blad i boken. Ta bra området med formler och rubriker, inte hela kolumnerna.
  3. Ta bort alla celler bortom BU.
  4. Klistra eventuellt tillbaka det du klippte ut i 2 men det gör du som du vill.
  5. Kopiera koden ovan in i din bok. Dela ut och sortera :)

Link to comment
Share on other sites

Har gjort precis som du sa, men får meddelandet 424, Objekt krävs. Har jag missat att skriva in nåt i makrot? Enligt felsök verkar felet vara i slutet, före End-raden

Link to comment
Share on other sites

Testade med att spela in ett makro på nytt, efter att ha flyttat de data som var till höger om sorteringsområdet till ett annat blad, och nu funkar allt som det ska. Tack för hjälpen!

/Lasse emoticons.png

Link to comment
Share on other sites

Har gjort precis som du sa, men får meddelandet 424, Objekt krävs. Har jag missat att skriva in nåt i makrot? Enligt felsök verkar felet vara i slutet, före End-raden

 

Felaktig referens. Dvs Blad1 heter inte blad1 hos dig utan något annat som du bör se i projektutforskaran i VBA-editorn.

 

Spela in makro nej nej, detta är så enkelt att du borde kunna redigera min kod. Bort bort bort med alla Select-satser!

Link to comment
Share on other sites

OK! Jag lovar att jag ska studera VBA, men nu funkar det ju faktiskt ändå, tack vare att du gjorde mig uppmärksam på cellerna utanför området, vilka nu befinner sig i ett annat blad.

För mig är det huvudsaken, eftersom många personer ska använda filen redan i morgon.

Angående makrot hade jag faktiskt skrivit bladets riktiga namn istf Blad1, så det måste vara något annat.

Tack för all hjälp.

/Lasse

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...