Ir para conteúdo
Fórum Script Brasil

MarlonS

Membros
  • Total de itens

    20
  • Registro em

  • Última visita

Sobre MarlonS

MarlonS's Achievements

0

Reputação

  1. Boa pergunta. Também procuro pela resposta e, deixo aqui este comentário visando atualizar a discussão. O VB - não o VBA, isto é, fora do excel/access - permite a criação de executáveis e a importação de dados do access (deve valer para excel), mas não sei trabalhar com ele.
  2. Cria-se um array que guarda o nome das planilhas em um for até .count: vetor(i) = sheets(i).name depois comparamos o vetor procurado com o array: if procurado = vetor (i) then sheets(i).select
  3. Obrigado, João Neto. Diferentemente da linguagem C, em que uma função acontece depois da outra de acordo com o que está escrito; em VBA, podemos ter vários módulos ou rotinas dependendo de botões, listbox, etc, de modo que elas podem ficar de modo não contínuo. Se eu chamo a sub rotina A e atribuo um valor X a uma variável var; depois chamo a subrotina B e somo 10 à mesma variável, terei X + 10; se fizer o contrário, X. Se eu precisar novamente chamar a rotina A, depois de ter executado A e B, a variável, que valia X + 10, volta a valer X... Não estou conseguindo ser claro, o que quero dizer é que esse tipo de linguagem me preocupa por tudo não acontecer em uma sequência única.
  4. Resolvi expor o problema por completo: Li dois ótimos tutoriais sobre buscas em excel, um deles usando PROCV e outro, VBA: http://www.exceldoseujeito.com.br/2008/10/...1/#comment-1923 No entanto, tenho uma tabela com um formato padronizado por norma e a busca precisa ser feita sem alterá-la: Note que há células mescladas. Cada planilha conta com uma tabela dessa e cada planilha/tabela é referente a UM produto de UMA unidade do supermercado. Parte 1: Preciso de um formulário que rastreie as planilhas em busca de tal produto e, ao encontrá-lo, exibir a planilha. Parte 2: Estando na planilha, preciso de um formulário semelhante ao do tutorial, em que eu digite um item específico, por exemplo, "QUERO AS VENDAS DO VENDEDOR B NO SEMESTRE 1" ou "TODOS OS DADOS REFERENTES AO VENDEDOR C" e ele me informe. Parte 3: Em seguida poder criar diversos gráficos, inclusive misturando planilhas. Há muito tempo procuro, pouco a pouco, dicas em fóruns, mas ainda não consigo resolver esse problema, para mim, muito complexo, e cá o exponho por completo. No meu caso não tem a ver com produtos de supermercados, mas é um exemplo análogo. Além da busca pelos funcionários, também é preciso que se busque "Nº Clientes / dia" ou "Caixas Func", por exemplo, tornando a busca complexa, por envolver dados mesclados e não mesclados.
  5. Olá, Imagine que, em uma macro, eu faça Sub late() Dim uorde As Object 'uorde pois se trata de um documento do word Set uorde = CreateObject("Word.Application") With uorde .Visible = True .Workbooks.Add End With End Sub Se, posteriormente, quero voltar a trabalhar com esse objeto, como faço?
  6. Li sobre PROCV em excel e o associei a buscas simples. No entanto, caso eu tenha uma tabela um pouco mais complexa, como a da figura abaixo, como faço para fazer uma busca? Como fazer uma busca, por exemplo, dos lucros de um funcionário X? Ou dos gastos brutos de um funcionário Y, no semestre Z? Finalmente, como fazer uma busca se tivermos células mescladas? Preciso de uma busca do tipo. Posteriormente, em uma planilha principal ou formulário, precisarei criar uma busca entre planilhas, mas, por enquanto, estou tentando aprender como fazer isso. Muito obrigado.
  7. Olá, Lobismano e obrigado, funcionou. Também tentei ActiveSheet.PageSetup.PrintArea = Cells e parece ter funcionado.
  8. Prossigo estudando tutoriais-exemplos de VBA para excel e me deparo com o seguinte: Private Sub CommandButton1_Click() Dim rngData As Range Dim rngCriteria As Range Dim rngExtract As Range Set rngData = Workbooks("DataList5.xlsm").Worksheets("Sales").Range("Database") Set rngCriteria = ThisWorkbook.Worksheets("Sales").Range("Criteria") Set rngExtract = ThisWorkbook.Worksheets("Sales").Range("Extract") 'Ex tract data with Advanced Filter rngData.AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=rngCriteria, _ CopyToRange:=rngExtract, _ Unique:=False End Sub O que é um Range("Database")? Nesse caso, "Database" é o nome de um intervalo na planilha "Sales"? Ou ele seleciona as ocorrências da palavra"Database" em tal planilha? Sabendo o que é .Range("Database"), .Range("Criteria") e .Range("Extract"), pergunto-me o que está sendo filtrado. ================================= E o que ocorre em: Sub UniqueCustomerRedux() Range("J1").Value = Range("D1").Value Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, CopyToRange:=Range("J1"), Unique:=True End Sub Sub AllColumnsOneCustomer() Dim IRange As Range Dim ORange As Range Dim CRange As Range Set CRange = Cells(1, 1).Resize(2, 1) Set ORange = Cells(1, 3) Set IRange = Range("A1").Resize(FinalRow, 1) IRange.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=CRange, CopyToRange:=ORange End Sub
  9. Continuando em meus tutoriais, o seguinte também não funcionou: Sub area_imp() ActiveSheet.PageSetup.printArea = "A1:B5" 'seleciona A1:B5 como área de impressão ActiveSheet.Names ( "Print_Area" ).delete 'não funciona 'activesheet.printarea.delete também não funciona End Sub
  10. Olá, gostaria da ajuda de vocês mais uma vez: Analisei o seguinte código, que gera um link para a planilha 1, na célula A1: Public Sub AddHyperlinks() ActiveSheet.Hyperlinks.Add _ Anchor:=Range("A1"), _ Address:="", _ SubAddress:="'Plan1'!A1", _ ScreenTip:=" Goes to Sheet1", _ TextToDisplay:=" Link to Sheet1" End Sub No entanto, não compreendi a diferença entre Address e SubAddress. Gostaria de saber se é possível assim criar o seguinte: Dim var As String var = "asfg" Link para planilha de nome "var" O que seria de muita utilidade caso, por exemplo, cada planilha represente uma cidade e precisarmos de um formulário que, ao digitarmos o nome da cidade, abra a planiliha com seus dados.
  11. Comecei a aprender vba, mas não tenho o hábito de declarar variáveis, uma vez que, pelo que entendi, não é necessário. No entanto, fui tentar declarar e hoje tive o seguinte problema: O código: Option Explicit Sub test() Sub pla1 As Variant 'ou as string pla1 = ActiveWorkbook.FullName ActiveCell.FormulaR1C1 = pla1 End Sub Resulta na mensagem: Erro de compilação: Era esperado : fim da instrução com o "as" selecionado O que ocorre? Obrigado.
  12. Olá, novamente. Estou acompanhando um tutorial de VBA para access e me deparei com o seguinte: Sub Test () For Each Item In ActiveWorkbook.Sheets Debug.Print Item.name Next Item End Sub Não entendi o que isso faz, afinal, entendia item como, por exemplo, cada campo de um combobox/listbox, etc. Mas apenas no excel, não considerando formulários, o que quer dizer esses itens? Finalmente, sabendo o que são itens, o que significa Debug.Print?
  13. Cara, muito boa a resposta. Muito obrigado. Desse modo, então, quando eu precisar fazer relatório em uma planilha que envolva uma busca, por exemplo, em uma tabela com nomes, telefones e estados: João 000 0000 SP Rúbia 001 1234 MG José 612 2020 MG Natália 123 456 MT Pablo 777 1011 RJ Viviane 1221 3344 RS Larissa 1010 1234 SE melhor do que percorrer a tabela com while / .offset() e verificar se o nome naquela célula é o digitado; seria melhor eu usar o .find (what=Digitado, etc) e, quando encontrar o nome, copiar as duas próximas células, uma vez que isso significa que posso encontrar 1º Um nome em qualquer lugar (não necessariamente em uma coluna específica). 2º No primeiro caso, limitaria um while de linha = 0 a um tanto x; enquanto que, no segundo, posso adicionar um nome quando quiser que o código não precisa ser alterado. Certo?! Muito obrigado.
  14. Li a seguinte macro e gostaria de entender o que significa e como funciona o .find: Sub GoToMax () Dim WorkRange As Range If TypeName ( Selection ) <> "Range" Then Exit Sub If Selection.Count = 1 Then Set WorkRange = Cells Else Set WorkRange = Selection End If MaxVal = Application.Max ( WorkRange ) On Error Resume Next WorkRange.Find ( What:=MaxVal, _ After:=WorkRange.Range ( "A1" ) , _ LookIn:=xlValues, _ LookAt:=xlPart, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False _ ) .Select If Err <> 0 Then MsgBox "Max value was not found: " _ & MaxVal End Sub :( :Por que se usa o underline entre "What:=MaxVal," e "LookIn:" ? :unsure: O que significa "xl" em xlValues, xlPart, xlBy Rows e todas as vezes em que aparece em VBA? :rolleyes: O que é MatchCase? :blink: O que muda entre LookIn e LookAt? :lol: Posso fazer qualquer tipo de busca com .find?
×
×
  • Criar Novo...