Just nu i M3-nätverket
Gå till innehåll

Makroproblem


Lassepiano

Rekommendera Poster

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

Länk till kommentar
Dela på andra webbplatser

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

Länk till kommentar
Dela på andra webbplatser

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.

Länk till kommentar
Dela på andra webbplatser

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.

Länk till kommentar
Dela på andra webbplatser

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

Länk till kommentar
Dela på andra webbplatser

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 :)

Länk till kommentar
Dela på andra webbplatser

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

Länk till kommentar
Dela på andra webbplatser

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

Länk till kommentar
Dela på andra webbplatser

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!

Länk till kommentar
Dela på andra webbplatser

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

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...