About Me
Seguidores
Estatisticas
202: VBA - Userforms, Controls
A imagem do que se pretende:
O segmento de Código, apenas para o fim em vista:
For Each C In Me.Controls
If TypeName(C) = "TextBox" Or TypeName(C) = "ComboBox" Then
If C.Value = "" Then
MsgBox "Por favor, preencha todos os campos!"
C.SetFocus
Exit Sub
End If
End If
Next
Créditos para Bill Manville
Tópicos relacionados:
201: VBA - Gerar números aleatórios com "rollup"
O Código:
Sub Macro1()
Dim i, z, choice, balls(10)
Range("A17").Select 'Para referência da ActiveCell
For i = 0 To 9
balls(i) = i
Next
Randomize Timer
For i = 4 To 1 Step -1 ' da direita para a esquerda
For z = 100 To 1 Step -1
choice = 1 + Int((Rnd * (10 - 1)))
ActiveCell.Offset(0, i - 1).Value = balls(choice)
Next z
balls(choice) = 0
Next
End Sub
Tópicos relacionados:
200: VBA - A Propriedade OFFSET e o Método INTERSECT
O Código:
Private Sub Worksheet_Change(ByVal Target As Range)
'JRod - Microsoft [MVP] - Excel
'blog: http://EXCELer.blogspot.com
'site: http://www.exceler.org
'email1: mail@exceler.org
'email2: blog.exceler@netcabo.pt
'
Const WS_RANGE As String = "A1:A10"
Dim vValor As Long
On Error GoTo ws_exit
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
With Target
ActiveCell.Offset(-1, 0).Activate
vValor = Application.ActiveCell.Value
Range("C5") = vValor
End With
End If
ws_exit:
Application.EnableEvents = True
End Sub
Nota: O Código deve ser inserido no próprio módulo da Sheet activa.
Tópicos relacionados:
199: VBA - Ordenação por linhas - Orientation:=xlLeftToRight
Há dias, num newsgroup, colocaram a questão de saber como se poderia ordenar um range dinâmico em termos de linhas, com o tipo de ordenação na horizontal (por linha) e da direita para a esquerda.
Tomemos o seguinte exemplo demonstrativo da pretensão e do consequente resultado:
O Código:
Sub SortRow()
'JRod
'
'Copyright 2007
Dim R, RowNum As Long
RowNum = ActiveSheet.UsedRange.Rows.Count
For R = 2 To RowNum + 1
Range("A" & R & ":E" & R).Sort key1:=Range("A" & R), _
Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlLeftToRight
Next R
End Sub
Tópicos relacionados: