Notifications
Clear all

procurar e adicionar

20 Posts
2 Usuários
0 Reactions
3,524 Visualizações
(@andrewrr)
Posts: 24
Eminent Member
Topic starter
 

E ai pessoal sou bem leigo no vba
e gostaria de saber o código para fazer a seguinte rotina
Preciso que a macro busque o nome na primeira coluna, caso ela encontre o nome digitado, na linha da frente preciso que acrescente o numero 1 e assim por diante,
estou usando um combobox que tem os nome da primeira coluna, então assim que eu colocar o nome no combobox e sair ele acrescente o numero 1 na frente do nome

 
Postado : 09/05/2017 7:50 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa noite André,

Supondo que a lista de nomes esteja na coluna A, vai ter mais de um nome na coluna? Você já tem um combobox pronto?

att,

 
Postado : 09/05/2017 7:59 pm
(@andrewrr)
Posts: 24
Eminent Member
Topic starter
 

não vai ter somente o nome dele,
eu tenho uma lista de 30 pessoas na coluna A, o combobox ja esta pronto, tem 10 combobox no useform, ou seja em cada combo que vou selecionar, quero que apareça na linha do lado do nome o numero, 1,2.... até o 10

 
Postado : 09/05/2017 8:02 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Ok,

Anexe a planilha. Não precisa ser com os dados originais.

Para anexar a planilha, vá no 'Editor Completo', em baixo da área para escrever vai ter a opção 'Adicionar um anexo'.
Não esqueça de compactar.

att,

 
Postado : 09/05/2017 8:05 pm
(@andrewrr)
Posts: 24
Eminent Member
Topic starter
 

estou sem ela aqui agora, amanhã cedo anexo, muito obrigado pela ajuda
comecei com vba e macro agora ainda tenho muita duvida mais chego la
vlw

 
Postado : 09/05/2017 8:07 pm
(@andrewrr)
Posts: 24
Eminent Member
Topic starter
 

esta no useform nome posi

 
Postado : 09/05/2017 8:18 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Estou com uma dúvida, o número do jogador deve aparece na planilha (coluna C) ou no Userform (pegando o valor da coluna A)?

 
Postado : 10/05/2017 12:28 pm
(@andrewrr)
Posts: 24
Eminent Member
Topic starter
 

na coluna C
no useform quando eu colocar o 1ª colocado, quero que busque na coluna A o nome e apareça o numero 1ª na coluna C

 
Postado : 10/05/2017 12:32 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde,

Olhe o código que está no combobox 'prim' do arquivo em anexo, eu utilizei o evento Change.

Para o resto dos combobox você apenas tem que copiar o código, alterando o nome do combobox e o número a ser colocado/pesquisado.

Clicando duas vezes sobre o combobox, o evento Change já é selecionado.

att,

 
Postado : 10/05/2017 2:21 pm
(@andrewrr)
Posts: 24
Eminent Member
Topic starter
 

Obrigado Bruno
era isso que queria, só que gostaria que o numero apareça na tabela do mês que eu selecionar.
Ex no useform Posi quando colocar Mês de "abril" e o dia "03", o numero(01,02......) apareça na respectiva coluna, assim por diante até "julho"

 
Postado : 10/05/2017 7:52 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa noite André,

Só uma dica, sempre explique tudo o que você precisa quando posta a dúvida.
Assim poupa tempo e também não é necessário fazer nenhuma gambiarra depois.

Agora sobre pegar o dia e o mês, olhe as alterações que fiz no código. Está dentro do combobox 'prim'.

Um detalhe, para o código que montei os dias tem que entrar como '3' e não como '03'.

Para os outros combobox, é só fazer as mesmas alterações que citei anteriormente no código (nome, número a ser pesquisado).

att,

 
Postado : 11/05/2017 4:28 pm
(@andrewrr)
Posts: 24
Eminent Member
Topic starter
 

Entendi Desculpa acho que expressei mal o que eu gostaria
Eu seleciono o mês abril e o dia '3" ele esta dando erro na função
D = Day(Cells(3, k).Value)
agora se eu seleciono o mês de maio da erro na função Set Ws = Sheets(NomeMes)

 
Postado : 12/05/2017 9:36 am
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde,

O erro quando você coloca 'Maio' é porque não tem nenhuma planilha chamada Maio no seu arquivo.

Agora sobre o erro quando você coloca 'Abril' e '3', teste esse código:

Private Sub prim_Change()    
   
    'Se for diferente de vazio
   
    If prim.Value <> Empty And mes.Value <> Empty And dia.Value <> Empty Then
        
        ThisWorkbook.Activate
        
        Rem Lembre-se Cells(Linha,Coluna)
        
        Dim NomeMes As String
        Dim D       As String
        
        Dim Ws      As Worksheet
        NomeMes = mes.Value
        Set Ws = Sheets(NomeMes)
        
        Dim Ncol    As Double
        Dim k       As Double
        
      
        k = 2
        Do While Ws.Cells(3, k).Value <> Empty _
        Or UCase(Trim(Ws.Cells(3, k).Value)) <> UCase(Trim(("Pontuação")))
            
            'Achar o valor do dia
            D = Day(Ws.Cells(3, k).Value)
            If D = dia.Value Then
                'A coluna recebe seu valor
                Ncol = k
                'Sai do Loop
                Exit Do
            End If
            k = k + 1
        Loop
        
        Dim Nlin    As Double: Nlin = Ws.Range("A1048575").End(xlUp).Row
        Dim i       As Double
        
        'Apaga o valor 1 anterior
        For i = 3 To Nlin
            'Mude aqui para o número desejado
            If Trim(Ws.Cells(i, Ncol).Value) = 1 Then
                Ws.Cells(i, Ncol).Value = Empty
                Exit For
            End If
        Next i
        
        'Coloca o número 1
        For i = 3 To Nlin
            If Trim(Ws.Cells(i, 1).Value) = Trim(prim.Value) Then
                'Mude aqui para o número desejado
                Ws.Cells(i, Ncol).Value = 1
                Exit For
            End If
        Next i
    
    End If
    
End Sub

Lembre-se que esse código só vai funcionar para uma planilha com a mesma estrutura do exemplo que você colocou.

att,

 
Postado : 14/05/2017 3:38 pm
(@andrewrr)
Posts: 24
Eminent Member
Topic starter
 

Bruno desculpe minha ignorância
não consegui fazer funcionar
eu mudei a planilha para talvez melhor entendimento
realmente me desculpa.

 
Postado : 16/05/2017 7:31 am
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde André,

Note que você alterou o nome do 'dia' para 'roda' do textbox, isso já inviabilizou o IF. Tente pensar nos nomes antes de montar o formulário, numa dessa você pode ter que alterar várias linhas de código.

No arquivo em anexo, o código que está no combobox chamado 'prim' está funcionando.

Teste e dê retorno.

 
Postado : 16/05/2017 12:29 pm
Página 1 / 2