About Me
Com tecnologia do Blogger.
Seguidores
Estatisticas
2005-01-10
O Código:
Private Sub CommandButton1_Click() 'Botão Altera-OK
Cells(nRow, "A") = TextBox1.Text ' As células tomam os novos dados
Cells(nRow, "B") = TextBox2.Text
Cells(nRow, "C") = TextBox3.Text
End Sub
2005-01-09
Em vez de utilizarmos Botões de Comando, podemos usar o SpinButton:

O resultado no Formulário é:

O Código:
Private Sub SpinButton1_SpinUp()
nRow = nRow + 1 'Incrementa 1 linha
'mostra os dados
TextBox1.Text = Cells(nRow, "A")
TextBox2.Text = Cells(nRow, "B")
TextBox3.Text = Cells(nRow, "C")
End Sub
Private Sub SpinButton1_SpinDown()
If nRow = 2 Then ' se a linha for a 2 (1ª linha de dados)
Exit Sub 'já não decrementa
Else
nRow = nRow - 1 'Decrementa 1 linha
End If
'mostra os dados
TextBox1.Text = Cells(nRow, "A")
TextBox2.Text = Cells(nRow, "B")
TextBox3.Text = Cells(nRow, "C")
End Sub
O resultado no Formulário é:
O Código:
Private Sub SpinButton1_SpinUp()
nRow = nRow + 1 'Incrementa 1 linha
'mostra os dados
TextBox1.Text = Cells(nRow, "A")
TextBox2.Text = Cells(nRow, "B")
TextBox3.Text = Cells(nRow, "C")
End Sub
Private Sub SpinButton1_SpinDown()
If nRow = 2 Then ' se a linha for a 2 (1ª linha de dados)
Exit Sub 'já não decrementa
Else
nRow = nRow - 1 'Decrementa 1 linha
End If
'mostra os dados
TextBox1.Text = Cells(nRow, "A")
TextBox2.Text = Cells(nRow, "B")
TextBox3.Text = Cells(nRow, "C")
End Sub
Código:
Public nRow As Long 'Declara a Variável como Pública,no início do Módulo
Private Sub UserForm_Initialize() ' Inicia o Form mostrando linha 2
'(1ª linha de dados)
If nRow < 2 Then
nRow = 2
End If
'mostra os dados
TextBox1.Text = Cells(nRow, "A")
TextBox2.Text = Cells(nRow, "B")
TextBox3.Text = Cells(nRow, "C")
End Sub
Private Sub CommandButton1_Click() ' Botão Seguinte
nRow = nRow + 1 'Incrementa 1 linha
'mostra os dados
TextBox1.Text = Cells(nRow, "A")
TextBox2.Text = Cells(nRow, "B")
TextBox3.Text = Cells(nRow, "C")
End Sub
Private Sub CommandButton2_Click() ' Botão Anterior
If nRow = 2 Then ' se a linha for a 2 (1ª linha de dados)
Exit Sub 'já não decrementa
Else
nRow = nRow - 1 'Decrementa 1 linha
End If
'mostra os dados
TextBox1.Text = Cells(nRow, "A")
TextBox2.Text = Cells(nRow, "B")
TextBox3.Text = Cells(nRow, "C")
End Sub
2005-01-08
Visto em:
VBA Visual Basic for Applications (Microsoft) Forum
O Código:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" _
(ByVal hWnd As Long, ByVal crey As Byte, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
Private Const LWA_ALPHA = &H2&
Public hWnd As Long
Private Sub UserForm_Initialize()
Dim bytOpacity As Byte
bytOpacity = 180 ' variável que fornece o nível de opacidade. Pode ir de 0 a 255
hWnd = FindWindow("ThunderDFrame", Me.Caption)
Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, _
GetWindowLong(Me.hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED)
Call SetLayeredWindowAttributes(Me.hWnd, 0, bytOpacity, LWA_ALPHA)
End Sub
2005-01-07
Se criarmos uma tabela numa folha do Excel e pretendermos inseri-la num documento do Word de modo a que, sempre que haja alteração na grelha, a mesma se reflicta automaticamente no documento do Word,
1º- No Excel, marcam-se as células pretendidas e copiam-se para o clipboard [CTRL + C]
2º- No Word, no local pretendido, escolhe-se Editar>Colar Especial>Colar ligação>Como: Texto formatado (RTF) e OK:
3º- Guardam-se os dois trabalhos (folha e doc):

Agora, sempre que se altera na grelha, altera-se também no documento:
1º- No Excel, marcam-se as células pretendidas e copiam-se para o clipboard [CTRL + C]
2º- No Word, no local pretendido, escolhe-se Editar>Colar Especial>Colar ligação>Como: Texto formatado (RTF) e OK:
3º- Guardam-se os dois trabalhos (folha e doc):
Agora, sempre que se altera na grelha, altera-se também no documento:
No entanto, pode usar-se mais do que oito cores, através das 56 cores da palette de escolhas de cor, utilizando o tipo [Color#],
em que # se refere a um número entre 1 e 56 da palette
(1= 1ª cor da lista - Preto; 2= 2ª cor da lista - Branco ... 56= última cor da lista - Cinzento Escuro) e utilizar-se igualmente símbolos, como seja o adicionar (+) e o subtrair (-)
Exemplo:
em que # se refere a um número entre 1 e 56 da palette
(1= 1ª cor da lista - Preto; 2= 2ª cor da lista - Branco ... 56= última cor da lista - Cinzento Escuro) e utilizar-se igualmente símbolos, como seja o adicionar (+) e o subtrair (-)
Exemplo:
2005-01-06
Na formatação personalizada, podem seleccionar-se até quatro cores (das oito cores possíveis: Azul, Vermelho, Amarelo, Verde, Branco, Preto, Magenta e Turquesa).
No exemplo, seleccionaram-se as quatro primeiras(Azul para valores positivos, Vemelho para valores negativos, Amarelo para valores zero e Verde para texto):
No exemplo, seleccionaram-se as quatro primeiras(Azul para valores positivos, Vemelho para valores negativos, Amarelo para valores zero e Verde para texto):
2005-01-05
O formato nulo (;;;) oculta o conteúdo da célula A2:
Antes da formatação:

Depois da formatação:
Antes da formatação:
Depois da formatação:
2005-01-03
A título de exemplo, uma grelha de números e de estrelas, sendo que A1:E1 são os 5 números saídos e F1:G1, as 2 estrelas saídas:

A formatação condicional para a grelha de números, partindo do princípio que os campos a verde correspondem aos números escolhidos (no exemplo, E6 corresponderá ao nº 4, E8 ao 16, etc):

A formatação condicional para a grelha de estrelas, partindo do princípio que os campos a azul correspondem aos números escolhidos (no exemplo, C16 corresponderá ao nº 2 e E16 ao 7):
A formatação condicional para a grelha de números, partindo do princípio que os campos a verde correspondem aos números escolhidos (no exemplo, E6 corresponderá ao nº 4, E8 ao 16, etc):
A formatação condicional para a grelha de estrelas, partindo do princípio que os campos a azul correspondem aos números escolhidos (no exemplo, C16 corresponderá ao nº 2 e E16 ao 7):
2005-01-02
Inserção de dados numa folha (no exemplo denominada "DADOS") através de um formulário:
Procedimento na folha:
Definir o nome "Dados" para a tabela (através de Insert>Name>Define), com a Referência
=OFFSET(Dados!$A$1;0;0;COUNTA(Dados!$A:$A);2)

Procedimentos para o formulário:

Procedimentos a usar:
Private Sub CommandButton1_Click() ' Refere-se ao Botão do Formulário "ADICIONA"
Dim IntNext As Integer
'Conta as linhas preenchidas existentes na grelha e adiciona 1
IntNext = Range("Dados").Rows.Count + 1
'Envio dos valores inseridos nos campos para a grelha
Range("A" & IntNext) = Numero.Value
Range("B" & IntNext) = Data.Value
Range("C" & IntNext) = Nome.Value
'Para limpar os campos do Userform, por forma a receber novos dados
Numero = ""
Data = ""
Nome = ""
' Volta a chamar o procedimento para contar o número de linhas
Call NextNumero
'Coloca o foco no campo Data
Data.SetFocus
End Sub
Private Sub UserForm_Initialize()
Call NextNumero
End Sub
Private Sub NextNumero()
Numero = Range("Dados").Rows.Count
End Sub
NOTA: As TextBox1, 2 e 3 têm que alterar o nome para: Numero,Data e Nome, respectivamente.
Procedimento na folha:
Definir o nome "Dados" para a tabela (através de Insert>Name>Define), com a Referência
=OFFSET(Dados!$A$1;0;0;COUNTA(Dados!$A:$A);2)
Procedimentos para o formulário:
Procedimentos a usar:
Private Sub CommandButton1_Click() ' Refere-se ao Botão do Formulário "ADICIONA"
Dim IntNext As Integer
'Conta as linhas preenchidas existentes na grelha e adiciona 1
IntNext = Range("Dados").Rows.Count + 1
'Envio dos valores inseridos nos campos para a grelha
Range("A" & IntNext) = Numero.Value
Range("B" & IntNext) = Data.Value
Range("C" & IntNext) = Nome.Value
'Para limpar os campos do Userform, por forma a receber novos dados
Numero = ""
Data = ""
Nome = ""
' Volta a chamar o procedimento para contar o número de linhas
Call NextNumero
'Coloca o foco no campo Data
Data.SetFocus
End Sub
Private Sub UserForm_Initialize()
Call NextNumero
End Sub
Private Sub NextNumero()
Numero = Range("Dados").Rows.Count
End Sub
NOTA: As TextBox1, 2 e 3 têm que alterar o nome para: Numero,Data e Nome, respectivamente.
Subscrever:
Mensagens (Atom)