excel

Make wykres transparent ;>

Friday, July 10th, 2009 | VBA | No Comments

Sub make_chart_transparent()
    With ActiveChart
        .ChartArea.Border.LineStyle = xlNone
        .ChartArea.Interior.ColorIndex = xlNone
        .PlotArea.Border.LineStyle = xlNone
        .PlotArea.Interior.ColorIndex = xlNone
        .Legend.Delete
     End With
    
     With ActiveChart.Axes(xlCategory)
        .MajorTickMark = xlNone
        .MajorTickMark = xlNone
        .TickLabelPosition = xlNone
     End With
   
    With ActiveChart.Axes(xlValue)
        .MajorTickMark = xlNone
        .MajorTickMark = xlNone
        .TickLabelPosition = xlNone
     End With
    
     For Each ax In ActiveChart.Axes
        ax.HasMajorGridlines = False
        ax.Border.ColorIndex = xlNone
     Next
    
    For Each sr In ActiveChart.SeriesCollection
        sr.Border.LineStyle = xlNone
        sr.HasDataLabels = False
    Next
               
End Sub

Kolorowanie punktów danych w serii, wykres xls

Sub kolorowanie_serii()
Dim sr As Series

odliczaj = val(InputBox(”Odliczaj co -n- kolumn”))

With ActiveChart
    For Each sr In .SeriesCollection
         For i = LBound(sr.Values) To UBound(sr.Values)
            If i Mod odliczaj = 0 Then
                sr.Points(i).Interior.ColorIndex = 35
            End If
        Next i
    Next
 End With
End Sub

Tags: ,

VBA - Grupowanie kolorem

Wednesday, July 8th, 2009 | VBA | 1 Comment

Sub grupuj_kolorem()
Dim row As Range
Dim target As Range
Dim x As Integer
Dim licznik As Integer

col_number = Val(InputBox(”Podaj numer kolumny do grupowania”))

Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select

For Each row In Selection.Rows
    Set target = row.Range(Cells(1, col_number), Cells(1, col_number))
    If target.Value <> target.Offset(-1, 0).Value Then
        x = Abs(x - 1)
        licznik = licznik + 1
    End If
    If x = 0 Then
        row.Interior.ColorIndex = 35
    Else
        row.Interior.ColorIndex = 37
    End If
Next
MsgBox (”Liczba Grup: ” & licznik)
End Sub

Tags:

Excel - oznacz myszką wybrany wiersz

Thursday, June 4th, 2009 | VBA | No Comments

Private Declare Function GetKeyState Lib “user32″ (ByVal nVirtKey As Long) As Integer
Private Const kCapital = 20
Private Const kNumlock = 144
Private Const TargetCol = 3

Public Function CapsLock() As Boolean
CapsLock = KeyState(kCapital)
End Function

Private Function KeyState(lKey As Long) As Boolean
KeyState = CBool(GetKeyState(lKey))
End Function
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If CapsLock Then
    For Each cell In Target.Cells
        x = ActiveSheet.Cells(cell.Row, TargetCol)
        x = Abs(x - 1)
        ActiveSheet.Cells(cell.Row, TargetCol).Value = x
    Next
End If
End Sub

Sub dodaj_formatowanie()
    Range(”A1:D31″).Select
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:=”=$D1=1″
    Selection.FormatConditions(1).Interior.ColorIndex = 36
End Sub

Tags: ,

Projektowanie aplikacji VBA

Wednesday, December 10th, 2008 | VBA | No Comments

Microsoft Developer Network prezentuje przewodnik dotyczący projektowania aplikacji w środowisku OfficeXP. Projektowanie, debugowanie, obsługa błędów, na co zwrócic uwagę podczas projektowania interfejsu użytkownika, bezpieczeństwo i kilka podobnych zagadnień.

Warto rzucić okiem przed rozpoczęciem większego projektu, albo kiedy brakuje pomysłów “co jeszcze mogę poprawić” przed ostatecznym zakończeniem projektu.

http://msdn.microsoft.com/en-us/library/aa140974(office.10).aspx

Tags: , ,

Pętle w VBA - czy efektywne?

Friday, December 5th, 2008 | VBA | No Comments

Dlaczego należy unikać sotoswania pętli programując Excela w VBA? W wielu przypadkach wbudowane funkcje Excela wykonają zadanie znacznie szybciej niż funkcje oparte na iteriacji po wszystkich elementach zbioru.

Zanim stworzysz pętlę pomyśl czy któraś z funkcji: SpecialCells, AutoFilter, Find, AdvancedFilter lub Subtotals nie znajdzie zastosowania.

http://www.ozgrid.com/VBA/VBALoops.htm

Tags: , ,

Search