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 Seriesodliczaj = 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
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 Integercol_number = Val(InputBox(”Podaj numer kolumny do grupowania”))
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).SelectFor 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
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
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
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.