Ir ao conteúdo
  • Cadastre-se

Hank II

Membros Plenos
  • Total de itens

    31
  • Registro em

  • Última visita

  • Qualificações

    0%

Reputação

0

Informações gerais

  • Cidade e Estado
    São Paulo, SP
  1. Parabéns, Wendell. Uma solução bem elegante! Uma dúvida: o método Volatile que você usou é necessário no caso? Pergunto porque não usei e ao incluir ou apagar um valor dentro do Range, a contagem é atualizada automaticamente. Hank II.
  2. OK, Mph. Sem dúvida, a macro do Jeff é excelente e bem mais simples. Um abraço, Hank II.
  3. Caro Mph, classificar é simples. A macro abaixo, por exemplo, classifica a tabela da direita da sua planilha (Teste) pela coluna H. Escolhi essa coluna por falta de informação. Pode ser por outra e pode ser por mais de uma coluna, em ordem ascendente ou descendente para cada coluna. Se for o caso, me avise que eu monto outra macro. Sub Macro1() Range("H2:M10").Select Selection.Sort Key1:=Range("H2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End Sub Você só tem de alterar os dois Ranges, evidentemente, por código. Uma possível solução então seria: Defina uma matriz dinâmica {Dim salva()} e redefina-a pelo tamanho efetivo da tabela 2 após a classificação. No caso (com base na planilha Teste) ficaria assim: {Redim salva(6,6)}. Copie os dados da tabela2 (classificada) para a matriz. Em seguida, formate as colunas H a M iguais as colunas A a F. (Isso se for preciso.) Columns("A:F").Select Range("A2").Activate Selection.Copy Columns("H:M").Select Range("H2").Activate Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False Agora limpe as colunas H a M: Columns("H:M").Select Selection.ClearContents Por fim, leia cada linha da matriz, por exemplo, num vetor auxiliar {Dim linha(6)}, procure a localização daquela linha na tabela1 e mova os dados pra tabela2. Acho que ficou mais simples. Espero ter ajudado.
  4. No Excel existe uma instrução no VBA chamada Split que pega um texto selecionado manualmente (de uma página web, por exemplo) e monta um vetor (ou seja, uma linguiça em que cada gomo é uma palavra). É preciso ativar a referência "Microsoft Forms x.x Object Library". Isso no meu antigo Office XP. Nos mais novos talvez não precise (é chute). Aí é só ler cada elemento do vetor e concatená-los (&) colocando dois espaços entre eles. Se tem no Excel, deve ter no Word (mais um chute). Espero ter ajudado.
  5. A ideia é primeiro classificar a tabela da direita. Vá em Dados e Classificar. Depois calcular as inserções e deslocamentos necessários para alinhar as duas. Para alinhar, vai ter de usar o recortar-e-colar. Grave uma macro fazendo tudo isso manualmente e tente adaptá-la. Espero ter ajudado.
  6. Elvish, use a seguinte função. Ao inserir ou apagar um valor, o total é atualizado automaticamente. Option Base 1 Function Contagem(arg1 As Range) As Long Dim i As Long, j As Long, k As Long, vetor(), repetido As Boolean i = 0 'contador de valores únicos j = 2 'linha inicial Do While Cells(j, 1).Value <> "" repetido = False If i = 0 Then Else For k = 1 To i If Cells(j, 1).Value = vetor(k) Then repetido = True: Exit For Next End If If Not repetido Then i = i + 1: ReDim Preserve vetor(i): vetor(i) = Cells(j, 1).Value End If j = j + 1 Loop j = 2 'línha inicial Do While Cells(j, 2).Value <> "" repetido = False If i = 0 Then Else For k = 1 To i If Cells(j, 2).Value = vetor(k) Then repetido = True: Exit For Next End If If Not repetido Then i = i + 1: ReDim Preserve vetor(i): vetor(i) = Cells(j, 2).Value End If j = j + 1 Loop Contagem = i End Function Para usá-la, na célula onde vai ficar o total, codifique algo assim: =Contagem(A2:B7) O range A2:B7 é um exemplo. Use o range real.
  7. Conforme postei em 19/jun/12, o uso da opção que permite mudar a resolução da tela sem reiniciar o XP resolveu o problema. Do ponto de vista prático, considero o problema resolvido e o tópico fechado.
  8. Matoso, está demorando porque você está indo até a linha 65.536. Tente o código abaixo. Qualquer dúvida, use a F1. Sub copia() Dim i As Long, v1 As Long, a As Long, b As Long a = ActiveCell.Row b = ActiveCell.Column Cells(1, "A").Select Selection.End(xlDown).Select v1 = ActiveCell.Row For i = 1 To v1 If Cells(i, "B").Value = "" Then Cells(i, "B").Value = Cells(i - 1, "B").Value Next i Cells(a, .Select End Sub
  9. Bem pessoal, resolvi o problema usando o Chrome em vez do IE8. Pra mim, o problema não está no IE8, já que acessando outra página de outro site com o IE8, funciona. Considero o problema resolvido Hank II.
  10. jlneves, não consegui entender direito o seu problema. Talvez, se você der mais detalhes ou fornecer dados reais, fique mais fácil. Um abraço. Hank II.
  11. Ribeirão e Anderson Taveira, realmente tem uma atualização pro chipset Intel 865G. Só que antes de ver isso mudei para uma opção que permite mudança da resolução sem reiniciar o XP. Com isso, parece que o problema sumiu. Se voltar, vou partir pra sua sugestão e posto o resultado aqui. Muito obrigado.
  12. Tenho uma macro VBA do Excel XP que abre uma página da web previamente salva em disco, procura um campo na mesma e lança o valor numa das colunas da planilha. A macro funciona há anos. Só que de uns dias pra cá ela não consegue mais abrir a página (salva). Aparece logo de cara aquela janela do XP pedindo pra gente enviar dados sobre o problema pra Microsoft. O máximo que consegui descobrir é que se trata de um erro de automação. Às vezes, durante uma tentativa de recuperação do erro, é pedido para eu montar o CD do Office XP e o Office como completa a instalação do Front Page. Isso para cada vez que dá erro. Em tempo: com um outro tipo de página, isto é, de um outro site e com um outro conteúdo, funciona. Alguém tem alguma ideia?
  13. Ribeirão, como o driver veio no CD da placa-mãe, devo procurar no site que você enviou ou no site da GIGA-BYTE? Obrigado.
  14. Meu XP muitas vezes se inicia com uma resolução mais baixa (800 x 600 - ou até com menos que isso) em vez de usar a especificada na aba Configurações das Propriedades de Vídeo (1024 x 768). Utilizo o vídeo on board da placa-mãe GA-8I865GME-775, Pentium 4 de 3,06 GHz e 2 GB de RAM, dos quais 32 MB (máximo do bios setup) o vídeo usa pra si. O XP é o Home Edition Versão 2002 com SP3 Alguma sugestão sobre as possíveis causas?
  15. Bastante óbvio. Só eu que não enxerguei Valeu!

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!