
SuperBond
Membro Pleno-
Posts
110 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que SuperBond postou
-
Olá, tenho um note Lenovo Z460 há vários anos. Sempre foi um bom note, mas ha algum tempo a imagem passou a ficar embaralhada, o cursor do mouse fica duplicado, aliás fica todos icones ficam duplicados na tela de modo que eu nem sei onde estou clicando. Anexei uma foto e abaixo um link de um video que fiz que mostra a situação. Tirando o problema da tela, ele está normal. https://www.4shared.com/video/oP3eWnZSei/monitor.html
-
copiar dados para outra planilha
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
Sim, claro que atendeu. Desculpe se te fiz perder tempo, apenas esqueci de considerar o detalhe. De qualquer forma, obrigado. Tentarei fazer adaptações aqui. -
copiar dados para outra planilha
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
Obrigado. Usei sua formula, mas ela copia inclusive celulas vazias e não é essa a intenção. Estou tentando pôr uma condição para não copiar celulas vazias. Veja que na figura na coluna U estão celulas intercaladas por vazias. O ideal seria como está na coluna X. Aproveitando, como identifico a outra planilha na formula? -
copiar dados para outra planilha
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
OK Já tenho o Excel 2010. Então vou adquirir o Power Query. -
Gostaria de saber como criar uma macro que copie dados de uma planilha para outra, mas una esses dados numa só coluna. Desta forma: Em uma planilha chamada Plan2 estariam os itens de 3 colunas, separados. A quantidade de itens eu controlo digitando a quantidade em uma celula e a macro trabalharia com esse numero de itens. Em uma planilha chamada Plan3, resulta os mesmos itens, só que unidos em uma mesma coluna, conforme a segunda figura.
-
Encontrar códigos iguais nas colunas
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
Ok, obrigado. Eu estava tentando com procv, mas vou usar essa formula. -
O objetivo da macro é encontrar indices da coluna PROD RECEB que sejam iguais aos da coluna PROD ALMOX. Encontrando, ele deve marcar 1, na coluna B, na linha correspondente ao indice encontrado. Por exemplo na figura digamos que o 81 e o 240 estejam na PROD RECEB e na PROD ALMOX, então ele marca 1 nas linhas correspondentes. Os errros que acontecem: - na depuração apontava "erro de definição de aplicativo ou de definição de objeto" em cells(m, 1) e em cells(n, 3); - indicava indices que não estão na coluna PROD ALMOX; - só funcionava certo quando a coluna PROD ALMOX tinha menos indices, até uns 20; - agora ele apresenta um erro de compilação que não consigo identificar; Estou mandando a planilha em que a macro é aplicada. ALMOXARIFADO.xlsx Sub indices_almox() Dim m As Long Dim n As Long [T:T].ClearContents Sheets("almox").Activate For m = 2 To 29463 For n = 2 To cells(2, 5) If Cells(m, 1) = Cells(n, 3) Then Cells(m + 1, 2) = "1": m = m + 1 End If Next n Next m End Sub
-
Boa noite, preciso que os dados na coluna Q apareçam na coluna R, sem duplicatas. Existe o botão remover duplicatas, mas o processo irá se repetir muitas vezes e toma tempo. Preciso de uma fórmula na coluna R que automatize a remoção.
-
Bom dia, gostaria de evitar o risco de executar uma macro na planilha errada e alterar dados importantes dessa planilha. Por exemplo, a macro a seguir deve ser somente executada na planilha 1, de nome "começo", pois essa planilha já contem os dados certos nas células certas. Essa macro é só um exemplo, não é para funcionar. Se por engano ela for executada na planilha 2 ou 3, irá apagar dados das coluna A, B e C e retornar o resultado tambem na coluna indevida. Gostaria de garantir que a macro seja executada somente na planilha 1. 'ESTA MACRO FORNCE O COMEÇO '****** USAR NA PLANILHA "começo" ****** Sub produto_começo() Dim u As Long, m As Long, j As Long, n As Long, r As Long, t As Long [A:A].ClearContents [B:B].ClearContents [C:C].ClearContents For m = 1 To Cells(1, 2) 'qt M For j = 1 To Cells(2, 2) 'qt N For n = 1 To Cells(3, 2) 'qt H If Cells(m, 13) = Cells(j, 14) Then Cells(u + 2, 16) = FIN: u = u + 1 'coluna J End If Next n Next j Next m End Sub
-
Já estou resolvendo o problema em VBA, com a ajuda de outro forista. De qualquer forma, obrigado.
-
Estou usando writeln( d[3], d[4]) e está funcionando sem o Ord. Agora apenas preciso descobrir uma forma correta de aninhar os While not eof, porque são 3 arquivos a trabalhar.
-
Executar até a última célula preenchida
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
O código deixou de fazer, por exemplo, M8M8R4SX, M8M8R4S0, M84W4W4W, W3M8R4H9, entre outras que são válidas. E fez combinações invalidas, como já vimos. Outra coisa é que, sempre que executa a macro, ele não apaga os resultados anteriores, ele escreve a partir dos anteriores, dando a impressão de que há mais resultados do que deveria, mas isso eu resolvi colocando um ClearContents no início, logo depois do cabeçalho. [L:L].ClearContents -
Executar até a última célula preenchida
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
Na verdade o código formou combinações inválidas e me parece que deixou de formar combinações válidas, mas por hoje estou encerrando o trabalho. Vou deixar um print onde tracei a formação da combinação M8M8R4H9, que sim, é válida. A lógica é sempre a mesma. -
Executar até a última célula preenchida
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
@Alpheratz Me parece que o código está fazendo combinações inválidas. Conforme mostro em amarelo no print, nas colunas correspondentes do COD3 não tem o par 0UQA e nem R48I, então ele não poderia fazer 4W0UQA e 22R48I. Testei apenas com numeros e também ocorrem combinações inválidas. -
Executar até a última célula preenchida
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
Agora sim hem phera. Obrigado Um dia desenvolvo sozinho...um dia chego lá. Uma última dúvida: tem como rodar a macro estando na janela do Excel mesmo, sem ter que ir na janela do VBA e dar F5? Seria mais prático. -
Olá, 1)Mas se eu for tratar o numero como string como faria para separar apenas dois algarismos dos demais? Qual função faz isso 2)Escrever o zero antes funciona a principio, mas depois vou fazer algumas comparações entre valores, não sei se funcionaria. O legal seria ter uma forma de trabalhar como string mesmo. 3) Esses calculos com Ord usam o valor ordinal do caracter pelo código ASCII. Veja a explicação nesse tópico: http://forum.clubedohardware.com.br/forums/topic/1061675-codigo-em-pascal-para-ler-caracteres-em-linha/
-
Executar até a última célula preenchida
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
Alpheratz, eu não consegui implementar suas sugestões no meu código. Tentei de várias formas, menos a certa, claro. Acho que teria aninhar mais Do whiles e Finds para procurar em outras colunas, mas não estou acertando fazer isso. Estava ate cogitando usar Pascal, que é uma linguagem com a qual tenho mais familiaridade, mas VBA é mais prático e tem mais recursos. Vou explicar o que preciso: Tenho 6 colunas A, B, E, F, I e J. Tem pares de caracteres em B iguais aos de E e pares caracteres de F iguais aos de I. Cada duas colunas formam um par: AB, EF e IJ. O código precisa unir os pares conforme encontra essas igualdades, ate a ultima linha preenchida. No print voce vê que o que une dois pares de AB ao par de EF é o 09 e o que une EF ao par de IJ é o W4. O resultado deve ser: 3209W4ES X409W4ES O último código que testei foi esse, só qe o Excel trava com esse código: Sub Main() Dim Linha1 As Long Dim LinhaResultado As Long Dim C1 As String, C2 As String, C3 As String, C4 As String, C5 As String, C6 As String [L:L].ClearContents Linha1 = 2 Linha2 = 2 Linha3 = 2 Linha4 = 2 Linha5 = 2 Linha6 = 2 LinhaResultado = 1 Do While Linha <= Range("B" & Rows.Count).End(xlUp).Row C1 = Cells(Linha1, 1).Value C2 = Cells(Linha2, 2).Value C3 = Cells(Linha3, 5).Value C4 = Cells(Linha4, 6).Value C5 = Cells(Linha5, 9).Value C6 = Cells(Linha6, 10).Value If Encontrou(C2, Range("E:E")) = True And Encontrou(C4, Range("I:I")) = True Then Dim Copia As String Copia = Format(C1 & C2 & C4 & N6, String(Len(C1 & C2 & C4 & N6), "0")) Cells(LinhaResultado, 12).NumberFormat = "@" Cells(LinhaResultado, 12).Value = Copia LinhaResultado = LinhaResultado + 1 End If Linha1 = Linha1 + 1 Linha2 = Linha2 + 1 Linha3 = Linha3 + 1 Linha4 = Linha4 + 1 Linha5 = Linha5 + 1 Linha6 = Linha6 + 1 Loop 'ActiveSheet.Range("F:F").RemoveDuplicates Columns:=1, Header:=xlNo End Sub Function Encontrou(Valor As String, Coluna As Range) As Boolean Dim Tmp As String On Error GoTo Fim Tmp = Coluna.Find(What:=Valor, LookAt:=xlWhole).Value Encontrou = True Fim: If Err.Number = 91 Then Encontrou = False End If End Function -
Preciso que o código leia numeros de um arquivo de texto e mostre os dois últimos algarismos desses números, até o fim do arquivo. Mas o código precisa ler fielmente como está no arquivo. O arquivo N1N2 tem os seguintes numeros: 7199 5087 3209 A saída do código tá sendo: 99 87 9 Ele está desconsiderando o zero do 09, afinal zero à esquerda se despreza, mas nesse caso, preciso do zero ali. Tem alguma forma de fazer com que ele apresente os 2 últimos algarismos do numero, incluindo o zero? O código: Program ULTIMOS; Uses CRT; Var N2: integer; d: string[10]; N1N2: Text; Begin ClrScr; assign(N1N2, 'N1N2.txt'); reset(N1N2); While Not eof(N1N2) Do Begin readln(N1N2, d); Begin N2 := (ord(d[3])-Ord('0'))*10 + ord(d[4])-Ord('0'); writeln(N2); End; End; close(N1N2); readln; End.
-
Executar até a última célula preenchida
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
Legal. Fiz algumas pequenas alterações, só em relação às colunas com que a macro vai operar. O estranho é que se tem 45 em A e 450 em B ele considera sendo o mesmo valor. Se tem 045 em A e 450 em B ele faz uma duplicata de um resultado. O RemoveDuplicates era pra eliminar essa duplicata. O código alterado é esse e o resultado está abaixo e o print dos resultados abaixo: Sub Main() Dim Linha As Long Dim LinhaResultado As Long Dim Texto As String Linha = 1 LinhaResultado = 1 Do While Linha <= Range("A" & Rows.Count).End(xlUp).Row Texto = Cells(Linha, 1).Value If Encontrou(Texto, Range("B:B")) = True Then Dim Copia As String Copia = Format(Texto, String(Len(Texto), "0")) Cells(LinhaResultado, 6).NumberFormat = "@" Cells(LinhaResultado, 6).Value = Copia & Copia LinhaResultado = LinhaResultado + 1 End If Linha = Linha + 1 Loop 'ActiveSheet.Range("F:F").RemoveDuplicates Columns:=1, Header:=xlNo End Sub Function Encontrou(Valor As String, Coluna As Range) As Boolean Dim Tmp As String On Error GoTo Fim Tmp = Coluna.Find(Valor).Value Encontrou = True Fim: If Err.Number = 91 Then Encontrou = False End If End Function -
Executar até a última célula preenchida
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
-
Executar até a última célula preenchida
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
Obrigado, Alpheratz, mas executei sua macro e não aparece nenhum resultado -
Executar até a última célula preenchida
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
Desculpe se pareceu folga minha. Bem, taí um print da pasta e também estou postando a planilha em questão. Os zeros de 09, 05, 08 e 01 tem que permanecer. AMOSTRA.rar -
Executar até a última célula preenchida
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
Ok, estou postando de um celular, então nao posso postar a planilha, mas na planilha, na coluna B tenho os seguinte valores por ex.: B 96 98 01 02 07 Digamos que eu queira somar 2 a cada um desses valores. O resultado que preciso, nesse caso e': 98 100 03 04 09 Observe que o zero a esquerda foi mantido, e e' isso que eu preciso que aconteca. Mas seu codigo tem saida assim: 98 100 3 4 9 O codigo esta eliminando os zeros. Nao e' isso o esperado. -
Executar até a última célula preenchida
SuperBond respondeu ao tópico de SuperBond em Microsoft Office e similares
Ok, só coloquei um End If e ele rodou, mas os dados que estou manipulando estão formatados como texto e alguns valores têm um 0 antes. Assim: 05, 04, 099 E eu preciso que estes zeros estejam no resultado. O código ignora os zeros, trata tudo como número. Está saindo 5, 4, 99 etc Aí tentei usar Text no Range, mas dá erro 424: O objeto é obrigatorio. Sub FinalV2() Dim m As Range, i As Long For Each m In Range("B2", Cells(Rows.Count, "B").End(xlUp)).Text If m.Value <> "" Then Cells(i + 1, 16) = m.Value: i = i + 1 End If Next m 'ActiveSheet.Range("P:P").RemoveDuplicates Columns:=1, Header:=xlNo End Sub -
Estou tentando fazer uma macro na qual ela verificará os valores em uma coluna e fará certas operações com esses valores. Inicialmente eu tinha feito uma estrutura com For e Next(abaixo), Sub Final() Dim m As Long, n As Long, N2 As String For m = 2 To 61 N1 = Cells(m, 2) Cells(i + 1, 16) = N1: i = i + 1 Next m ActiveSheet.range("P:P").RemoveDuplicates Columns:=1, Header:=xlNo End Sub mas como a quantidade de valores nas colunas irá sempre variar, não é prático ficar trocando o valor final da variável m. Eu preciso que a macro verifique automaticamente até a última célula preenchida. Tentei fazer usando a estrutura Do While Loop, mas o resultado não é o desejado, ela não escreve todos os valores, mas vai tipo escrevendo um e apagando o anterior, é até difícil de explicar. O código com Do While Loop: Sub Final() Dim m As Long, n As Long, N1 As String m = 2 N1 = 2 Do While N1 <> Empty Cells(i + 1, 16) = N1: i = i + 1 m = m + 1 ActiveSheet.range("P:P").RemoveDuplicates Columns:=1, Header:=xlNo Loop End Sub
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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