Sunteți pe pagina 1din 7

Modifica culorile de fundal pentru anumite cellule:

Se adauga un buton in excel si la proprietatile lui se adauga procedura:

Private Sub show_bkg_Click()

Dim i As Integer

Dim a As Integer

'arata messajul care cere activarea sau dezactivarea culorilor de fundal

a = MsgBox("Vrei sa activezi culorile de fundal?", 4, "Alege")

'verifica daca sa apasat yes(6) se arata culorile, daca sa apasat no se ascund culorile

If a = 6 Then

For i = 1 To 30

Worksheets("Sheet1").Range("A" & i).Interior.ColorIndex = i

Next

Else

For i = 1 To 30

Worksheets("Sheet1").Range("A" & i).Interior.ColorIndex = xlNone

Next

End If

End Sub

Modifica culorile de fundal pentru anumite cellule in functie de valorile inserate:


A) Se modifica in timp real, la modificarea valorilor celulei:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim KeyCells As Range

' The variable KeyCells contains the cells that will

' cause an alert when they are changed.

Set KeyCells = Range("A1:B30")


If Not Application.Intersect(KeyCells, Range(Target.Address)) _

Is Nothing Then

If Range(Target.Address) >= 5 Then

Worksheets("Sheet1").Range(Target.Address).Interior.ColorIndex = 3 'rosu

Else

Worksheets("Sheet1").Range(Target.Address).Interior.ColorIndex = 4 'verde

End If

End If

End Sub

B) Se modifica la actionarea butonului de validare:


Private Sub btnCheckVal_Click()
Dim i As Integer
For i = 1 To 30
'daca celula nu contine valori numerice se schimba fundalul in alb
If IsNumeric(Worksheets("Sheet1").Range("B" & i)) = False Or
Worksheets("Sheet1").Range("B" & i) = "" Then
Worksheets("Sheet1").Range("A" & i).Interior.ColorIndex = 0 'alb
Worksheets("Sheet1").Range("B" & i).Interior.ColorIndex = 0 'alb
Else
'daca celula contine valori numerice mai mari sau egale cu 5 se schimba fundalul in verde
If Worksheets("Sheet1").Range("B" & i) >= 5 Then
Worksheets("Sheet1").Range("A" & i).Interior.ColorIndex = 4 'verde
Worksheets("Sheet1").Range("B" & i).Interior.ColorIndex = 4 'verde
Else
'daca celula contine valori numerice mai mici decat 5 se schimba fundalul in rosu
Worksheets("Sheet1").Range("A" & i).Interior.ColorIndex = 3 'rosu
Worksheets("Sheet1").Range("B" & i).Interior.ColorIndex = 3 'rosu
End If
End If
Next

End Sub
C) Dupa editarea unei cellule in zona urmarita se activeaza butonul si se sterg formatarile de
culoare. Se modifica fundalul numai in functie de continutul celulelor dupa actionarea butonului
de validare:

Private Sub btnCheckVal_Click()


Dim i As Integer

For i = 1 To 30

'daca celula nu contine valori numerice se schimba fundalul in alb

If IsNumeric(Worksheets("Sheet1").Range("B" & i)) = False Or Worksheets("Sheet1").Range("B" & i)


= "" Then

Worksheets("Sheet1").Range("A" & i).Interior.ColorIndex = 0 'alb

Worksheets("Sheet1").Range("B" & i).Interior.ColorIndex = 0 'alb

Else

'daca celula contine valori numerice mai mari sau egale cu 5 se schimba fundalul in verde

If Worksheets("Sheet1").Range("B" & i) >= 5 Then

Worksheets("Sheet1").Range("A" & i).Interior.ColorIndex = 4 'verde

Worksheets("Sheet1").Range("B" & i).Interior.ColorIndex = 4 'verde

Else

'daca celula contine valori numerice mai mici decat 5 se schimba fundalul in rosu

Worksheets("Sheet1").Range("A" & i).Interior.ColorIndex = 3 'rosu

Worksheets("Sheet1").Range("B" & i).Interior.ColorIndex = 3 'rosu

End If

End If

Next

Sheets("Sheet1").btnCheckVal.Visible = False

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

Dim KeyCells As Range

' The variable KeyCells contains the cells that will

' cause an alert when they are changed.

Set KeyCells = Range("A1:B30")

Sheets("Sheet1").btnCheckVal.Visible = False

Dim i As Integer

For i = 1 To 30
Worksheets("Sheet1").Range("A" & i).Interior.ColorIndex = 0 'alb

Worksheets("Sheet1").Range("B" & i).Interior.ColorIndex = 0 'alb

Next

If Not Application.Intersect(KeyCells, Range(Target.Address)) _

Is Nothing Then

Sheets("Sheet1").btnCheckVal.Visible = True

End If

End Sub

Arata toate culorile:


Sub colors56()
'57 colors, 0 to 56
Dim i As Long
Dim str0 As String, str As String
For i = 0 To 56
Cells(i + 1, 1).Interior.colorindex = i
Cells(i + 1, 1).Value = "[Color " & i & "]"
Cells(i + 1, 2).Font.colorindex = i
Cells(i + 1, 2).Value = "[Color " & i & "]"
Next
End Sub

Program care afiseaza un mesaj de avertizare intermitent (foloseste merge,


copiere de formatare, bucla si metoda de evitare a buclei infinite):
Private m_blnLooping As Boolean

Sub BlinkMsg()
'seteaza vizibilitatea butoanelor
Sheets("Sheet1").btnShow.Visible = True
Sheets("Sheet1").btnClear.Visible = False
End Sub

Private Sub btnClear_Click()


m_blnLooping = False

'seteaza vizibilitatea butoanelor


Sheets("Sheet1").btnShow.Visible = True
Sheets("Sheet1").btnClear.Visible = False

'reseteaza/sterge mesajul si formatarile


Worksheets("Sheet1").Range("J10").Value = ""
Worksheets("Sheet1").Range("J10:S20").UnMerge
Worksheets("Sheet1").Range("A5").Copy
Worksheets("Sheet1").Range("J10:S20").PasteSpecial Paste:=xlPasteFormats
Cells(5, 1).Select
End Sub

Private Sub btnShow_Click()


'seteaza vizibilitatea butoanelor
Sheets("Sheet1").btnShow.Visible = False
Sheets("Sheet1").btnClear.Visible = True

'uneste celulele
Worksheets("Sheet1").Range("J10:S20").Merge

'formateaza noua celula si stabileste continutul ei


Worksheets("Sheet1").Range("J10").Font.Size = 100
Worksheets("Sheet1").Range("J10").Value = "Worning!"
Worksheets("Sheet1").Range("J10").HorizontalAlignment = xlCenter
Worksheets("Sheet1").Range("J10").VerticalAlignment = xlCenter

m_blnLooping = True
Do While m_blnLooping

Application.Wait (Now + TimeValue("00:00:01"))

If Worksheets("Sheet1").Range("J10").Interior.ColorIndex = 2 Then
Worksheets("Sheet1").Range("J10").Interior.ColorIndex = 3
Else
Worksheets("Sheet1").Range("J10").Interior.ColorIndex = 2
End If

DoEvents 'functie care returneaza controlul catre sistemul de operare


evitand blocarea data de bucla infinita
Loop
End Sub

Exemplu de lucru cu fisiere (creare, deschidere, inchidere, adaugare sheet,


scriere in fisier):

Private Sub FileHandle()

Dim i As Integer, j As Integer


Dim IsFile As Boolean

On Error Resume Next

'verifica existenta fisierului. Daca nu exista il creaza si il deschide,


daca exista il deschide direct
IsFile = ((GetAttr("C:\Users\bechefl001\Desktop\aiurea.xlsx") And
vbDirectory) <> vbDirectory)
If IsFile = False Then
Workbooks.Add
ActiveWorkbook.SaveAs
Filename:="C:\Users\bechefl001\Desktop\aiurea.xlsx"
ActiveWorkbook.Close
End If

Workbooks.Open Filename:="C:\Users\bechefl001\Desktop\aiurea.xlsx"

'daca numele primului sheet nu a fost modificat il modifica


If Sheets(1).Name <> "data" Then
Sheets(1).Name = "data"
End If

If IsEmpty(Worksheets("data").Cells(1, 1).Value) Then


For i = 1 To 100
For j = 1 To 30
Worksheets("data").Cells(i, j).Value = "cell " & i & "," & j & ""
Next j
Next i
Else
For i = 1 To 100
For j = 1 To 30
Worksheets("data").Cells(i, j).Value = ""
Next j
Next i
End If

'adauga sheet si redenumeste


Sheets.Add After:=ActiveSheet
Sheets(2).Name = "fff"
Sheets(1).Select

Application.DisplayAlerts = False
Sheets("Sheet1").Delete
Application.DisplayAlerts = True

Windows("test.xlsm").Activate
Worksheets("Sheet1").Range("D1:H11").Copy

Windows("aiurea.xlsx").Activate
Worksheets("fff").Range("a1").PasteSpecial xlPasteValues
Worksheets("fff").Range("a1").PasteSpecial Paste:=xlPasteFormats

ActiveWorkbook.Save
ActiveWindow.Close
End Sub

Afiseaza culorile:
Sub Culori()

Cells.Clear

Dim x As Long
Dim y As Long
Dim z As Long
Dim swrow As Long
Dim swcol As Long

swrow = 1
swcol = 1

For x = 0 To 250
For y = 0 To 250
For z = 0 To 250

If swrow < 39 Then


Cells(swrow, swcol).Select
Cells(swrow, swcol).Value = "RGB(" & x & ", " & y & ", " & z & ")"
Cells(swrow, swcol + 1).Interior.Color = RGB(x, y, z)
swrow = swrow + 1

Else
swrow = 1
swcol = swcol + 2

End If

Columns(swcol).AutoFit
Columns(swcol + 1).ColumnWidth = 2

DoEvents
z = z + 9

Next z
y = y + 9
Next y
x = x + 9
Next x

End Sub

S-ar putea să vă placă și