Ir para conteúdo
Fórum Script Brasil

Jefferson S.G.

Membros
  • Total de itens

    23
  • Registro em

  • Última visita

Tudo que Jefferson S.G. postou

  1. Olá galera! Estou com um pequeno problema. Preciso procurar números em uma matriz de 20 dentro de outra matriz com 50. Ou seja, tenho uma tabela com vinte dezenas e preciso saber quantos deles aparecem dentro de uma outra tabela com 50 dezenas. Criei uma variável para cada dezena da tabela de 20 e procuraria na matriz de 50 dezenas. No entanto, não consigo montar o comando para verificar quantas dezenas se repetem e nem encontrei uma forma mais fácil de declarar todas essas variáveis. Ensaiei um For / Next sem muito sucesso. alguém poderia ajudar? Segue o code: Option Base 1 Private Sub cmdbusca_Click() Dim resultado(5, 4) As String resultado(1, 1) = Range("b5") resultado(1, 2) = Range("c5") resultado(1, 3) = Range("d5") resultado(1, 4) = Range("e5") resultado(2, 1) = Range("b6") resultado(2, 2) = Range("c6") resultado(2, 3) = Range("d6") resultado(2, 4) = Range("e6") resultado(3, 1) = Range("b7") resultado(3, 2) = Range("c7") resultado(3, 3) = Range("d7") resultado(3, 4) = Range("e7") resultado(4, 1) = Range("b8") resultado(4, 2) = Range("c8") resultado(4, 3) = Range("d8") resultado(4, 4) = Range("e8") resultado(5, 1) = Range("b9") resultado(5, 2) = Range("c9") resultado(5, 3) = Range("d9") resultado(5, 4) = Range("e9") ' aqui não consegui progredir para verificar se na matriz b5:e9 repete dezenas na matriz i12:n20 End End Sub Desde já agradeço! Jefferson
  2. Olá colegas! Alguém poderia me ajudar? Tenho um arquivo com restrição de acesso por usuário. Cada usuário acessa somente a planilha em seu nome após selecionar seu user e digitar a sua senha. Eu criei um usuário chamado "Administrador" na planilha onde estão todos os usuários e suas senhas. Gostaria de quando entrar com esse usuário, todas as planilhas ficarem visíveis, e após fechar o arquivo, todas elas ficarem ocultas novamente. Segue o code: Private Sub CommandButton1_Click() With Início If TextBox1 = "" Or ComboBox1 = "" Then aviso = MsgBox("Informe o Vendedor e o código", vbOKOnly + vbInformation, "Aviso") Unload UserForm1 UserForm1.Show ElseIf CStr(TextBox1.Value) = CStr(Application.WorksheetFunction.VLookup(ComboBox1.Value, Sheets("dados").[a1:b11], 2, False)) Then Pos = Application.WorksheetFunction.Match(ComboBox1.Value, Sheets("dados").[a1:a11], 0) cod = Sheets("dados").Cells(Pos, 1) Me.Hide Worksheets(cod).Visible = xlSheetVisible Worksheets(cod).Select Else MsgBox Prompt:="Código inválido para este vendedor!", Buttons:=vbOKOnly + vbCritical, Title:="Erro" End If End With End Sub Desde já agradeço por quem puder ajudar.
  3. Consegui. Valeu Kuroi. Estava na cara e não percebi. estou começando a aprender agora o VBA, acho que deu pra perceber né! rs De qualquer forma, vou postar o code caso alguém tenha uma dúvida como a minha: Private Sub CommandButton1_Click() With Plan11 If CStr(TextBox1.Value) = CStr(Application.WorksheetFunction.VLookup(ComboBox1.Value, Plan15.[a1:b11], 2, False)) Then Pos = Application.WorksheetFunction.Match(ComboBox1.Value, Plan15.[a1:a11], 0) cod = Plan15.Cells(Pos, 1) Me.Hide Worksheets(cod).Visible = xlSheetVisible Worksheets(cod).Select Else MsgBox Prompt:="Senha inválida para este usuário!", Buttons:=vbOKOnly + vbCritical, Title:="Erro" End If End With End Sub Brigadão!!!
  4. Desculpem-me, não sabia do tag code. Kuroi, mas como vou identificar o nome da planilha pelo usuário logado? Exemplo, tenho os seguintes vendedores em um dos arquivos: Clodoaldo Denilson Edson dos Santos Jocely Manoel Jr Mayco Rodrigo Torezani Rogério Ronaldo Cunha Sandro Wellington Gostaria de quando o Clodoaldo entrasse com seu usuário e senha somente a planilha dele fosse visualisada, e o mesmo para todos os demais. Como eu disse, as planilhas tem o mesmo nome dos vendedores. E todas estão no mesmo .xls sim. (vou fazer uma macro para cada arquivo separadamente) Desde já agradeço.
  5. O erro da função Match consegui resolver. Ficou assim o code Private Sub CommandButton1_Click() With Plan11 If CStr(TextBox1.Value) = CStr(Application.WorksheetFunction.VLookup(ComboBox1.Value, Plan15.[a1:b11], 2, False)) Then Pos = Application.WorksheetFunction.Match(ComboBox1.Value, Plan15.[a1:a11], 0) Cod = Plan15.Cells(Pos, 1) For i = 1 To 11 If .Cells(i, 1) = Cod Then .Cells(i, 2).Locked = False Else .Cells(i, 2).Locked = True End If Next i Me.Hide .Select Else MsgBox Prompt:="Senha inválida para este usuário!", Buttons:=vbOKOnly + vbCritical, Title:="Erro" .Cells.Locked = True End If End With End Sub Precisava de uma dica para abrir a planilha de acordo com o usuário. As planilhas tem o mesmo nome do usuário/vendedor. Alguém tem alguma dica?
  6. Alguém poderia me ajudar? Tenho alguns arquivos que acompanham a produtividade dos vendedores por equipe. Cada arquivo corresponde a uma equipe de vendedores. Precisava criar uma sub (para cada arquivo separadamente) que abrisse somente a planilha correspondente ao vendedor/usuário por base me sua senha. Criei um combobox para selecionar a lista de vendedores cadastrados em uma planilha oculta dentro do arquivo. Na outra coluna (ao lado da lista dos vendedores) são cadastradas as senhas na qual o vendedor digitará em um textbox dentro do mesmo formulário. Criei a seguinte sub para o botão "Entrar" Private Sub CommandButton1_Click() With Plan11 If CStr(TextBox1.Value) = CStr(Application.WorksheetFunction.VLookup(ComboBox1.Value, Plan15.[a1:b11], 2, False)) Then Pos = Application.WorksheetFunction.Match(ComboBox1.Value, Plan15.[a1:b11], 0) Cod = Plan15.Cells(Pos, 1) For i = 1 To 11 If .Cells(i, 1) = Cod Then .Cells(i, 2).Locked = False .Cells(i, 3).Locked = False Else .Cells(i, 2).Locked = True .Cells(i, 3).Locked = True End If Next i Me.Hide .Select Else MsgBox Prompt:="Senha inválida para este usuário!", Buttons:=vbOKOnly + vbCritical, Title:="Erro" .Cells.Locked = True End If End With End Sub Quando o usuário digita a senha errada, a mensagem "Senha inválida para este usuário!" funciona normalmente. Porém, quando digita a senha correta, o erro abaixo aparece identificando a seguinte linha: Pos = Application.WorksheetFunction.Match(ComboBox1.Value, Plan15.[a1:b11], 0) Erro: Erro de tempo de execução '1004': Não é possível obter a propriedade Match da classe WorksheetFunction. Creio faltar também algum comando para acionar a planilha de acordo com o usuário/vendedor Alguém teria alguma dica para solucionar tal problema?
  7. Sei que esse tema de "formatar o Linux" sempre incomoda os usuários pró-Linux. Na verdade, prefiro o Linux devido a sua funcionalidade ser melhor que a do Windows - ao menos é o que percebi em pouco tempo de uso. Entretanto, preciso do Windows para rodar alguns programas e jogos, o que o Linux não faz. Já me falaram do Wine, que pode apresentar alguns empecilhos para alguns programas, então prefiro ter os dois sistemas operacionais na máquina. Agora surge minha dúvida. Me indicaram formatar o HD todo e reinstalar posteriormente o Windows e o Linux novamente. Me informaram também que se o Linux estiver ocupando todo o HD (o que é o meu caso, pois só há uma partição), necessito fazer tal operação de formatar todo o HD, pois não vou conseguir partilhá-lo para incluir o Windows, ou não é aconselhável, pois haverá problemas em usar o FDISK para partilhar novamente o HD. Bem, alguém poderia me indicar o melhor procedimento a seguir? Desejo formatar todo o HD, partilhá-lo em dois, instalar o Windows XP e depois o Linux novamente. Na minha máquina está instalado o Ubuntu. Desde já agradeço.
  8. Muito obrigado pelas dicas. Como sou iniciante, ainda não conhecia as permissões do Linux para usuários. Foi só autenticar o usuário com a senha e alterar a permissão de algumas pastas e arquivos que estavam somente para leitura. valeu!
  9. Não, eu coloquei no diretório Músicas, que já vem no Linux, em todo caso, é o mesmo diretório que copiei demais músicas do Mp4 e elas não ficaram travadas, somente as que eu copiei do CD. Estou com o usuário de instalação, ainda não criei o root pois não sabia como fazer, instalaram o linux no sábado e só hoje pude ver como funciona o acesso a usuários.
  10. Uma dúvida, alguém poderia me ajudar? Copiei alguns arquivos.mp3 e pastas diretamente de um CD com copia/cola, sem usar assistente de gravação pelo Linux. Os arquivos e pastas em questão ficaram travados, aparece no ícone um cadeado que me impossibilita de deletar ou trocar de pasta. Já tentei usar pela linha de comando, mas também informa que esta ação é impossível. Alguém saberia por que isso acontece e como não ocorrer mais? Além disso, claro, como faço para deletar ou mover os arquivos/pastas? Terei que formatar a máquina para isso? Desde já agradeço.
  11. Olá. Sou iniciante no Linux e algumas coisas da linha de comando diferem da linha de comando do DOS. Tenho alguns diretórios que são separados por espaço, por exemplo, na pasta Músicas existe um diretório/pasta chamado Turíbio Santos. Gostaria de saber como faço para acessá-lo pela linha de comando. Já tentei algumas combinações com ~ como no DOS mas não consegui. Alguém poderia me ajudar?
  12. Sim, o ControlSource. Na verdade eu precisava que quando o formulário fosse aberto, ficasse com as informações que já existem naquelas células para os dados que já estão lá fossem salvos novamente, caso não necessitasse de alterações. Só que pensando bem, torna-se desnecessário, uma vez que coloquei uma msgbox antes para perguntar se realmente deseja alterar, e posteriormente critérios para a gravação dos textbox (não podem estar em branco ou com tipo de dados diferente da definida). Muito obrigado mais uma vez João.Neto!
  13. Poxa! A cada passo mais um obstáculo. Vinculei três textbox de um formulário para três células diferentes. No formulário ainda constam os botões "Alterar" e "Cancelar". Porém, caso eu clique em qualquer um dos botões, as células são alteradas. Na verdade, antes mesmo de clicar em algum deles, as células já mudam assim que digito nas textbox e passo para a próxima. Os botões parecem que estão funcionando somente para chamar as msgbox. Preciso que seja alterado somente se clicar em "Alterar", e manter os valores antigos se clicar em "Cancelar". Segue o código, caso alguém possa me ajudar, desde já agradeço. botão "Alterar" ________________________________ Private Sub CommandButton1_Click() If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Then aten = MsgBox("Preencha os campos ou clique em cancelar", vbExclamation, "Atenção") Else If IsNumeric(Me.TextBox1) And IsDate(Me.TextBox2) And IsDate(Me.TextBox3) Then Dim nuteis, diames, dtfat, diarestmes, duteis As Integer nuteis = TextBox1 dtfat = Day(TextBox2) - 1 diames = Day(TextBox3) diarestmes = diames - dtfat duteis = diarestmes - nuteis ThisWorkbook.Worksheets("dados").Range("b2") = TextBox1.Value ThisWorkbook.Worksheets("geral").Range("h1") = Format(TextBox2.Value, "dd/mmm") ThisWorkbook.Worksheets("dados").Range("b3") = Format(TextBox3.Value, "dd/mm/yyyy") ThisWorkbook.Worksheets("geral").Range("f2") = duteis conf = MsgBox("Alterado com sucesso!", vbOKOnly + vbExclamation, "Confirmação") Else inf = MsgBox("Data ou valor inválido", vbInformation, "Informação") End If End End If End End Sub botão "Cancelar" __________________________________________ Private Sub CommandButton2_Click() End End Sub
  14. Ufa! Consegui. Foi só carregar o formulário. Acrescentei um load userform1 antes de chamar a macro. Ficou: Private Sub Workbook_Open() Plan13.Select Load userform1 Call Macro1 End Sub De qualquer forma, brigadão!
  15. Alguém poderia me auxiliar? Está acontecendo um erro que só acontece quando o Excel já está aberto, mas o arquivo não. Se eu abrir o arquivo e o Excel ainda estiver fechado, o erro não acontece. Coloquei em uma planilha para quando abrir aparecer uma msgbox conforme segue: Private Sub Workbook_Open() Plan13.Select Call Macro1 End Sub Quando chama a Macro1 segue: Sub Macro1() avi = MsgBox("Atualizar dias úteis?", vbYesNo + vbQuestion, "Aviso") If avi = vbYes Then userform1.Show Else End End If End Sub Quando a linha que mostra o userform1 é lida, aparece o seguinte erro: "Erro de acesso a caminho/arquivo" Alguém saberia me informaro motivo? Conforme eu disse, isso só ocorre se o Excel já estiver em execução (com o arquivo fechado), caso o contrário, o processo ocorre normalmente quando inicio o Excel abrindo o arquivo. Obrigado!
  16. Jefferson S.G.

    Formatar data

    Como uma luva! Muito obrigado. Solucionou dois problemas de uma só vez, pois a data de outra célula estava sendo convertida para formato americano "mm/dd/yyyy". Muito obrigado João.Neto!
  17. Jefferson S.G.

    Formatar data

    Caros, um favor. Quando salvo as alterações de uma célula que está vinculada a uma textbox a formatação altera. Exemplo: na textbox digito 19/05/2010, na célula aparece da mesma forma, sendo que eu formatei a célula no Excel para aparecer o formato "dd/mmm". Tentei o comando range("h1").numberformat = "dd/mmm" porém, não deu certo. Na célula aparece o formato "dd/mmm" enquanto estou alterando na textbox, porém, quando confirmo a alteração, a célula volta a visualizar formato "dd/mm/yyyy", enquanto a formatação da célula no excel continua a mesma, ou seja "dd/mmm". Alguém poderia me ajudar?
  18. Jefferson S.G.

    Erro de objeto

    Alguém pode me auxiliar? Muito estranho. Primeiro fiz em uma planilha teste no C: da máquina e funcionou perfeitamente, agora estou tentando na rede com as planilhas de trabalho e dá o seguinte erro: "O objeto é obrigatório" Este erro ocorre quando inicia a linha abaixo: Workbooks(Allan.xls).Worksheets("plan15").Range("b2") = TextBox1.Value Segue toda a sub: Private Sub CommandButton1_Click() If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Then aten = MsgBox("Preencha os campos ou clique em cancelar", vbExclamation, "Atenção") Else If IsNumeric(Me.TextBox1) And IsDate(Me.TextBox2) And IsDate(Me.TextBox3) Then Dim nuteis As Integer Dim diames As Integer Dim dtfat As Integer Dim diarestmes As Integer Dim duteis As Integer nuteis = TextBox1 dtfat = Day(TextBox2) - 1 diames = Day(TextBox3) diarestmes = diames - dtfat duteis = diarestmes - nuteis Workbooks(Allan.xls).Worksheets("plan15").Range("b2") = TextBox1.Value Workbooks(Allan.xls).Worksheets("plan13").Range("h1") = TextBox2.Value Workbooks(Allan.xls).Worksheets("plan15").Range("b3") = TextBox3.Value Workbooks(Allan.xls).Worksheets("plan13").Range("f2") = duteis conf = MsgBox("Alterado com sucesso!", vbOKOnly + vbExclamation, "Confirmação") Else inf = MsgBox("Data ou valor inválido", vbInformation, "Informação") End If End End If End End Sub Alguém poderia me ajudar? Outra dúvida. Na planilha que fiz de teste eu também consegui vincular os textbox com as células, ou seja, as informações das células apareciam na textbox vinculando a propriedade ControlSource para a célula, porém, agora informa que o valor da propriedade é inválido. Desde já agradeço.
  19. Já resolvi. era um erro de sintaxe do textbox
  20. Caros, estou atribuindo a uma variável a função day(). Porém, quando o dia é 31 como 31/05/2010, retorna o valor 30 e não 31. Alguém poderia me ajudar?
  21. Olá! Mais uma ajudinha se possível. Tenho um formulário que contém dois campos para alterarem duas células da planilha, também possui dois botões com funções de "alterar" e "cancelar". Coloquei uma msgbox para o "alterar" quando os textbox (um ou outro) estiverem vazios. Não estou conseguindo fazer com que após eu clicar em "ok" da msgbox, eu retorne ao formulário anterior. Está ocorrendo que clico em "ok" da msgbox e a sub finaliza. Poderiam me ajudar?
  22. Jefferson S.G.

    VBA x Excel

    Muito obrigado Joao Neto, vou seguir esse comando. No caso, para solucionar em partes o problema, eu acabei por reexibir a planilha, selecioná-la, fazer as alterações, depois ocultá-la novamente. Mas é preferível que ela continue oculta durante todo o processo. Valeu!
  23. Jefferson S.G.

    VBA x Excel

    Olá a todos! Poderiam me ajudar? Sou iniciante em VBA e li algumas apostilas e demais materiais, porém o que eu preciso inicialmente mesmo, ainda não encontrei. Tenho um arquivo.xls na qual possui algumas planilhas, sendo que uma delas é oculta. Nesta oculta, preciso de semana em semana e de mês em mês, atualizar alguns dados dela, coisa simples, uma célula é data e outra é número. Porém, pelo fato de estar oculta, por vezes esqueço de atualizar. Solução: criar um lembrete. Para isso criei dois formulários que acionam respectivamente ao iniciar o arquivo. O primeiro pergunta se quero alterar os dados, se positivo, abro o segundo. Até aí, tudo bem. Porém, não consigo fazer com que os valores dos dois TextBox do segundo formulário (data e número) sejam gravados em duas células da planilha oculta. Alguém poderia me dar alguma dica de comandos à utilizar? Desde já agradeço.
×
×
  • Criar Novo...