Just nu i M3-nätverket
Jump to content

Skapa mellanrum i Exce


Martin Bergqvist

Recommended Posts

Martin Bergqvist

Finns det någon funktion i excel som gör

att man kan skapa mellanrum mellan var 5 rad?

 

Eller skapa olika bakgrundfärger på cellerna

på ett smidigt sätt.. Alltså så lite hantverk som möjligt

Link to comment
Share on other sites

Bakgrundsfärg i celler kan du ju styra genom "Villkorsstyrd formatering" med antingen en formel eller cellvärde.

 

Mellanrum mellan rader kan väl inte såvitt jag vet göras på annat sätt än att infoga tomma rader. Ibland kan ju också sammanfogning av celler vara till god hjälp.

 

Formathämtning kan ju också vara till god hjälp utan att det blir allt för mycket hantverkeri. *ler*

 

 

Link to comment
Share on other sites

Gör en egen, typ:

 

For Each Row In Selection.Rows
   If Row.Row Mod 2 = 0 Then
       Row.Interior.ColorIndex = 12
   End If
Next Row

 

Var 5:e lite högre

For Each Row In Selection.Rows
   If Row.Row Mod 5 = 0 Then
       Row.RowHeight = 25
   End If
Next Row

Ha det så kul

 

Link to comment
Share on other sites

Martin,

 

Ska du

- infoga en tomrad efter var 5:e rad

- eller färgsätta var 5:e rad

- eller infoga och färgsätta den nya raden

 

Förekommer det också formler i din uppställning?

 

Mvh

Dennis

Besök Sveriges ledande oberoende webbplats om MS Excel: http://www.xldennis.com

 

Link to comment
Share on other sites

Hej. som macrot ser ut så ändras den markering du gjort. DVS om du bara har markerat en cell så händer inte så mycket. anledningen till att jag skrev så är att det blir otroligt segt om du vill ändra hela bladet på en gång. Om du ändå vill det skall du byta ut Selection.Rows till ActiveSheet.Rows).

Testa, eller svara på Dennis frågor. Han har förmodligen något enkelt knep i bakfickan.

 

 

Var 3:e blåbärsrisgrönfärgad och var 10:e lite högre. Hela bladet. Tar minst 10-20 sekunder.

 

Sub Menlost()
ScreenUpdating = False
'For Each rw In Selection.Rows
For Each rw In ActiveSheet.Rows
   If rw.Row Mod 3 = 0 Then 
end if
rw.Interior.ColorIndex = 12
   If rw.Row Mod 10 = 0 Then rw.RowHeight = 25
end if
Next rw
ScreenUpdating = True
End Sub

 

 

Link to comment
Share on other sites

Martin Bergqvist

Hur skriver man for loopen så den går ifrån den raden man markerar? Som det är nu så räknar den från cell 1.

 

Skulle vilja att endast gör på det celler man markera.

 

Link to comment
Share on other sites

Testa något i den här stilen. Kolla hjäöpen och anpassa efter dina behov

 

Public Sub test()
Dim i As Integer
i = 0
'(Obs att du måste byta datatyp om
'du vill arbeta med mer än ca 32 000 rader)

' Välj autofliterområdet och Nollställ färg
ActiveSheet.AutoFilter.Range.Interior.ColorIndex = xlNone

' Välj autofliterområdet
ActiveSheet.AutoFilter.Range.Select
' gå igenom och räkna utifrån synliga rader
For Each rw In Selection.SpecialCells _(xlCellTypeVisible).Rows
i = i + 1
   If i Mod 2 = 0 Then rw.Interior.ColorIndex = 12
Next rw

End Sub

 

 

[inlägget ändrat 2002-09-13 15:12:15 av MH]

Link to comment
Share on other sites

Den här varianten arbetar bara med din markering, och endast med synliga celler.

 

1. Ändra siffran efter Mod för att bestämma hur ofta en formatering skall uppstå

2. Ändra siffran efter ColorIndex = för att ändra till en roligare färg (spela in ett nytt macro om du vill veta färgindex)

3. Ändra siffran efter RowHeight för att bestämma höjd

 

4. Lägg till en områdesangivelsen i början av scriptet om du vill bestämma vilken typ av område du vill jobba med, exempelvis:

ingenting (det du markerat manuellt)

Selection.CurrentRegion.select (Ett naturligt avgränsat område, det mest andvändbara)

ActiveSheet (hela det aktuella kalkylbladet)

ActiveSheet.AutoFilter.Range.Select (ditt autofilterområde)

osv osv

 

Public Sub Flumm()
Dim i As Integer
i = 0

'Selection.CurrentRegion.select

Selection.Interior.ColorIndex = xlNone
Selection.Rows.AutoFit

For Each rw In Selection.SpecialCells(xlCellTypeVisible).Rows
i = i + 1
If i Mod 2 = 0 Then rw.Interior.ColorIndex = 12
If i Mod 10 = 0 Then rw.RowHeight = 25
Next rw
End Sub

 

 

 

Link to comment
Share on other sites

Archived

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



×
×
  • Create New...