Excel, select vse kar ni bold ?

Pomoč pri izdelavi makrov
Odgovori
BubikolRamios
Prispevkov: 19
Pridružen: Če Sep 08, 2005 2:03 pm

Excel, select vse kar ni bold ?

Odgovor Napisal/-a BubikolRamios »

v excelu bi rad izbral, in zbrisal vsebino vsem celic ki niso bold.

na netu sem našel:
Cells with same format

'All cells in the specified range that contain the same format as the *first* cell specified in range.
On Error GoTo SpecialCells_Error
Set {RANGE:rngCellsWithSameFormat} = {RANGE:rng}.SpecialCells(xlCellTypeSameFormatConditions)

GoTo SpecialCells_Finish
SpecialCells_Error: 'If nothing you will get a run time error '1004'
Resume SpecialCells_Finish
SpecialCells_Finish:
potem pride še jasno: Selection.ClearContents

zdaj pa ne vem kako naj to pretvorim tako da bo delalo.

Hvala za pomoč
admin
Site Admin
Prispevkov: 3690
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Kje na netu pa ste našli tole in v kakšnem kontekstu naj bi delovalo.

Jaz osebno bi se "sprehodil" čez celotno območje in pač pobrisal celice ki mi "niso všeč". Torej klasična for each zanka.
lp,
Matjaž Prtenjak
Administrator
BubikolRamios
Prispevkov: 19
Pridružen: Če Sep 08, 2005 2:03 pm

Odgovor Napisal/-a BubikolRamios »

admin
Site Admin
Prispevkov: 3690
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

:? S tole kodo se jaz nebi kaj veliko ukvarjal, spodaj vam prilagam makro, ki naredi, kar želite. Popraviti morate samo območje kjer želite brisati neodebeljene celice (nekaj namesto A1:A10):

Koda: Izberi vse

Sub brisiNeodebeljeneCelice()
  Dim celica
  
  For Each celica In Range("a1:a10")
    If Not (celica.Font.Bold) Then celica.ClearContents
  Next
End Sub
lp,
Matjaž Prtenjak
Administrator
BubikolRamios
Prispevkov: 19
Pridružen: Če Sep 08, 2005 2:03 pm

Odgovor Napisal/-a BubikolRamios »

ja to sem potem že sam pogruntal, samo na živce mi gre ker je pač tule eno nedefinirano področje.
Če imam naprimer ("a1:z500") je vedno možnosz da bo nekaj izven tega območja, in takole predefiniran range enkrat ne bo delal OK
admin
Site Admin
Prispevkov: 3690
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

:) Bubilko, Bubilko, tudi zgoraj bi imeli vnaprej definirana področja... Kaj pa mislite, da pomeni {RANGE:rngCellsWithSameFormat}, v sicer tisti "njihovi" čudni sintaksi.

Tudi jaz nikoli ne uporabljam fiksnih območij, temveč pač ugotovim kako veliko podatkov je in če imate sklenjeno tabelo, lahko celotno tabelo preprosto zaobjamete z ukazom:

Koda: Izberi vse

Range("a2").CurrentRegion.Select
Kjer je a2 ena izmed celic...
lp,
Matjaž Prtenjak
Administrator
BubikolRamios
Prispevkov: 19
Pridružen: Če Sep 08, 2005 2:03 pm

Odgovor Napisal/-a BubikolRamios »

ni sklenjena, in jih je več različnih na različnih sheetih.
Pač pa ima vsak sheet v spodnji desni celici (zadnja ki ima pač sploh kaj vsebine) en določen text, zato:

Koda: Izberi vse

' poiščem zadnjo celico na desni spodaj, kjer gotovo piše 'Master:'

  Dim r As Range
  Set r = Sheet.Cells.Find(What:="Master:", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False)
  r.Activate
  
  ' določim range
  ActiveSheet.Range("A1:" & ActiveCell.Address).Select
Tole dela. Kako naj premaknem fokus s te r.active celice za eno v desno, preden določim range ?

Hvala za odgovore.
BubikolRamios
Prispevkov: 19
Pridružen: Če Sep 08, 2005 2:03 pm

Odgovor Napisal/-a BubikolRamios »

naj bi to delao takole:

Koda: Izberi vse

ActiveCell.Offset(0, 1).Activate
admin
Site Admin
Prispevkov: 3690
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Jap, to bo pravilno!
lp,
Matjaž Prtenjak
Administrator
Odgovori