luni, 12 mai 2008

cum sa ... Copiati un rind intr-un nou sheet, la sfirsit

Public Sub Copiaza(GotoNewSheet as string)

Dim GotoNewSheet As String
Dim i As Integer
i = ActiveCell.Row
Dim rangeToCopy As Range

Set rangeToCopy = Rows(i & ":" & i) 'selecteaza tot rindul

Dim r As Range
Set r = Sheets(GotoNewSheet).UsedRange

Sheets(GotoNewSheet).Select
Sheets(GotoNewSheet).Range("A" & (r.Rows.Count + 1)).Select
rangeToCopy.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False

end sub

marți, 15 aprilie 2008

cum sa ... Adaugati o luna la o data

Vreti sa adaugati o luna la o data, dar nu stiti cite zile poate avea luna respectiva - 27 ? 30 ? 31 ?
Folositi urmatorul macro:


Function AdaugaData(r As Range, NumarLuni As Long)
AdaugaData = DateAdd("M", NumarLuni, r)
End Function


Nu uitati sa formatati celula ca data (CTRL+1,alegeti date)

cum sa ... Sortati in Excel dupa culoare

Daca aveti Excel 2007, aveti noroc - este deja prevazut in filtre .



Daca aveti Excel 2003, una din posibilitati este sa creeati un macro de forma urmatoare:

Function Culoare(ByVal Rind As Range, CelulaCuloareDefault As Range) As String
Dim v As Range, DefColor As Variant
DefColor = CelulaCuloare.Interior.Color
For Each r In CelRange.Cells
If r.Interior.Color <> DefColor Then
Culoare = Hex(r.Interior.Color)
Exit Function
End If
Next v
Culoare = Hex(DefColor)
End Function

Introduceti macro-ul si puneti formula :
=Culoare(D2:E2;D2)