AJUDA

GABICPALMIERI 29/09/2015 10:16:42
#451899
Bom dia!
Tenho uma planilha para análise de performance...onde ao clicar no botão de avaliar abre um UserForm e a pessoa escolhe quem irá avaliar, qual o critério avaliado e qual a ação, se irá descontar um ponto ou atribuir...então clicar no botão atualizar e a avaliação ser feita...
Antes estava descontando ou atribuindo pontos em todos os critérios, após mexer um pouco agora está selecionando apenas uma célula rsrsrss
Alguém poderia me ajudar?
Desde já obrigada!
TUNUSAT 29/09/2015 10:26:01
#451900
GABICPALMIERI,

Posta o código para que possamos analisar.

[][ô]s,
Tunusat.
GABICPALMIERI 29/09/2015 10:37:09
#451901
Estou colocando em um arquivo .txt pois como na planilha temos dados dos clientes não pode ser divulgado...
Já mudei o código várias vezes, fui verificando pela gravação da macro...mas tá complicado rsrss
Obrigada!
TUNUSAT 29/09/2015 11:05:50
#451903
GABICPALMIERI,

O arquivo (código abaixo) que você mandou tem um [Ô]Loop While[Ô], mas depois do [Ô]Loop[Ô] ele compra uma range com a [Ô]ComboBox3[Ô] e Grava [Ô]Descontar[Ô] na ComboBox2...
... o que tem que fazer?

Private Sub CommandButton1_Click()
Dim Transportadora, Critério, Ação As String
Dim i, j As Integer

Transportadora = ComboBox1.Text
Critério = ComboBox3.Text
Ação = ComboBox2.Text

Columns([Ô]A:A[Ô]).Select
Range([Ô]A4:A15[Ô]).Activate

i = 4

Do While Cells(i, 1).Value <> [Ô][Ô]

If Cells(i, 1).Value = ComboBox1.Text Then
Selection.Find(what:=Transportadora, after:=ActiveCell, lookat:=xlWhole).Activate
End If

i = i + 1
Loop

Rows([Ô]3:4[Ô]).Select
Range([Ô]E3:Z4[Ô]).Activate

j = 4

ActiveCell.Offset(3, j).Select

If Range([Ô]E3:F4[Ô]).Text = ComboBox3.Text Then
If ComboBox2.Text = [Ô]Descontar[Ô] Then
Plan1.Cells(i, 5) = Plan1.Cells(i, 5) - 1
Else
Plan1.Cells(i, 5) = Plan1.Cells(i, 5) + 1
End If

ElseIf Range([Ô]G3:H4[Ô]).Text = ComboBox3.Text Then
If ComboBox2.Text = [Ô]Descontar[Ô] Then
Plan1.Cells(i, 7) = Plan1.Cells(i, 7) - 1
Else
Plan1.Cells(i, 7) = Plan1.Cells(i, 7) + 1
End If

ElseIf Range([Ô]I3:K4[Ô]).Text = ComboBox3.Text Then
If ComboBox2.Text = [Ô]Descontar[Ô] Then
Plan1.Cells(i, 9) = Plan1.Cells(i, 9) - 1
Else
Plan1.Cells(i, 9) = Plan1.Cells(i, 9) + 1
End If

ElseIf Range([Ô]L3:N4[Ô]).Text = ComboBox3.Text Then
If ComboBox2.Text = [Ô]Descontar[Ô] Then
Plan1.Cells(i, 12) = Plan1.Cells(i, 12) - 1
Else
Plan1.Cells(i, 12) = Plan1.Cells(i, 12) + 1
End If

ElseIf Range([Ô]O3:Q4[Ô]).Text = ComboBox3.Text Then
If ComboBox2.Text = [Ô]Descontar[Ô] Then
Plan1.Cells(i, 15) = Plan1.Cells(i, 15) - 1
Else
Plan1.Cells(i, 15) = Plan1.Cells(i, 15) + 1
End If

ElseIf Range([Ô]R3:T4[Ô]).Text = ComboBox3.Text Then
If ComboBox2.Text = [Ô]Descontar[Ô] Then
Plan1.Cells(i, 18) = Plan1.Cells(i, 18) - 2
Else
Plan1.Cells(i, 18) = Plan1.Cells(i, 18) + 2
End If

ElseIf Range([Ô]U3:W4[Ô]).Text = ComboBox3.Text Then
If ComboBox2.Text = [Ô]Descontar[Ô] Then
Plan1.Cells(i, 21) = Plan1.Cells(i, 21) - 3
Else
Plan1.Cells(i, 21) = Plan1.Cells(i, 21) + 3
End If

ElseIf Range([Ô]X3:Z4[Ô]).Text = ComboBox3.Text Then
If ComboBox2.Text = [Ô]Descontar[Ô] Then
Plan1.Cells(i, 24) = Plan1.Cells(i, 24) - 3
Else
Plan1.Cells(i, 24) = Plan1.Cells(i, 24) + 3
End If

End If

End Sub


Outra coisa ... como você é novíssima aqui eu gostaria te avisar:
Por favor, não crie cabeçalhos de tópicos do tipo [Ô]AJUDA[Ô]. O mais adequado para este tópico seria algo assim: [Ô]AJUDA Planilha Excel botão e combo[Ô] ... ou qualquer coisa mais específica, okay? Valew.

[][ô]s,
Tunusat.
GABICPALMIERI 29/09/2015 11:10:21
#451904
Ele precisa procurar o que foi colocado na combobox1 na coluna A...Quando encontrar, procurar dentre os critérios qual foi colocado na combobox3, então executar a ação colocada na combobox2, que seria descontar ou atribuir...
TUNUSAT 29/09/2015 11:31:41
#451906
GABICPALMIERI,

Vamos por partes:
1 - [Ô]precisa procurar o que foi colocado na combobox1 na coluna A[Ô]

Okay, quando ele encontra faz isso:
Selection.Find(what:=Transportadora, after:=ActiveCell, lookat:=xlWhole).Activate

=================================================
VBA - Procurando informações na Planilha (Método Find)
http://www.macoratti.net/12/09/vba_fxls1.htm
=================================================

Mas, logo depois não entendi isso:
    Rows([Ô]3:4[Ô]).Select
Range([Ô]E3:Z4[Ô]).Activate


Desmarca o que foi selecionado?!?

[][ô]s,
Tunusat.
GABICPALMIERI 29/09/2015 11:40:53
#451907
Não...na verdade essa parte é a que complica
Ai precisaria achar o critério que foi colocado na ComboBox3, os critérios estão listados nas colunas...começando na E3:E4...
Como outros métodos colocados não estavam selecionando a linha referente aos critérios, coloquei para gravar a macro e ver como ficava o seu módulo...
Por isso essa parte meio esquisita...
TUNUSAT 30/09/2015 08:23:50
#451947
GABICPALMIERI,

Tentei analisar seu problema com mais calma hoje, mas definitivamente não estou entendo o que você quer fazer...
... fiquei com uma série de dúvidas sobre o motivo de você pesquisar informações em uma coluna e depois somar ou adicionar em outra.
As dúvidas estão nos comentários do código abaixo:

Private Sub cmdAtualizar_Click()
Dim Transportadora, Critério, Ação As String
Dim i, j As Integer
Dim arrArmazena() As String

Transportadora = ComboBox1.Text
Critério = ComboBox3.Text
Ação = ComboBox2.Text

[ô]Columns([Ô]A:A[Ô]).Select
[ô]Range([Ô]A4:A15[Ô]).Activate

[ô]Inicializa contadores
i = 4
j = 0

Do While Cells(i, 1).Value <> [Ô][Ô]

If Cells(i, 1).Value = ComboBox1.Text Then
[ô]Selection.Find(what:=Transportadora, after:=ActiveCell, lookat:=xlWhole).Activate
[ô]é preciso armazenar esse valor?
[ô]Qual motivo de termos procurado algo aqui?
[ô]Se encontra somente 1 ocorrência de igualdade é o bastante?!?
ReDim Preserve arrArmazena(j)
arrArmazena(j) = Cells(i, 2).Value
j = j + 1
End If

i = i + 1
Loop

[ô]Essa seleção faz perder a seleção acima!
[ô]Rows([Ô]3:4[Ô]).Select
[ô]Range([Ô]E3:Z4[Ô]).Activate
[ô]j = 4
[ô]ActiveCell.Offset(3, j).Select

[ô]O valor de [Ô]i[Ô] ficou [Ô]perdido[Ô] ou [Ô]fora de controle[Ô]?!? Não entendi também!
i = 4

[ô]Podemos fazer um looping aqui também? veja que existe muita repetição de dados!
For j = 5 To 200
[ô]Esse [Ô]range[Ô] não consegue comparar os valores! Pois pega 4 células?!?
[ô]If Range([Ô]E3:F4[Ô]).Text = ComboBox3.Text Then
If Cells(3, j).Value = ComboBox3.Text Then

If ComboBox2.Text = [Ô]Descontar[Ô] Then
Plan1.Cells(j - 3, 3) = Plan1.Cells(j - 3, 2) - 1
Else
Plan1.Cells(j - 3, 5) = Plan1.Cells(j - 3, 5) + 1
End If

End If

Next

End Sub


[][ô]s,
Tunusat.
GABICPALMIERI 30/09/2015 09:10:44
#451949
Bom dia!
Então, se encontrar uma ocorrência é o bastante pois se trata de nomes de clientes cadastrados e não há nomes repetidos...
Após encontrar o cliente, é necessário que ache qual o critério será avaliado que está organizado nas colunas, cada coluna responde à um critério a partir da coluna 2 (B), (por favor desconsiderar o E3:F4) ...e aí executar a ação de descontar ou atribuir, nesse caso os pontos de desconto ou atribuição diferem dependendo do critério. Alguns critérios são 1 ponto, outros 2 e outros 3...
Referente à parte que vc disse que parte a seleção anterior, como te disse no comentário anterior aí que está a minha maior questão...pois não consegui pensar em um lógica para ele, então fiz através de um teste gravando a macro e vendo seu módulo...
GABICPALMIERI 30/09/2015 09:29:18
#451950
O motivo da procurar é saber qual fornecedor será avaliado por ter cometido alguma falta ou prestado um serviço muito bem...
Primeiro é necessário achar o fornecedor que será avaliado, depois achar qual critério foi selecionado e então descontar ou atribuir os pontos...

é preciso armazenar a nova nota do fornecedor na célula correspondente ao critério escolhido.
TUNUSAT 30/09/2015 13:02:19
#451963
GABICPALMIERI,

Não tem como você mandar uma planilha com dados fictícios?

[][ô]s,
Tunusat.
Página 1 de 2 [20 registro(s)]
Faça seu login para responder