-
Posts
758 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por deejaywesley
-
-
Boa Noite Amigos(as)
{=MAIOR(((saldos_estoque!D2:D36000)=Reposição!B3)*(saldos_estoque!A2:A36000);1)}
Estou tentando fazer esta formula, em vba, mas esta dando erro...
Range("A3").Value = Application.WorksheetFunction.Large(((Sheets("saldos_estoque").[D2:D36000]) = Range("B3").Value) * (Sheets("saldos_estoque").[A2:A36000]), 1)
da erro de "tipos incompativeis"
alguém sabe como fazer?
-
Bom dia amigo @OreiaG
tudo joia com você
O código funcionou certinho, era isso mesmo que eu precisava.
você acertou a plan2 esta limpa para receber os dados...
muito obrigado por mais este meu amigo.
forte abraço!
- 1
-
Boa Tarde Galerinha!
Tudo ótimo com vocês
preciso de um código VBA, e achei mais fácil já explicar direto na planilha!
desde ja obrigado os que puderem dar uma olhadinha.
forte abraço!
-
Boa tarde meu amigo @OreiaG
5 horas atrás, OreiaG disse:Eu suponho que o erro irá ocorrer se o seu VLookup não encontrar o valor procurado, então o erro poderá ocorrer também nas duas primeiras condições e não só na terceira. E o uso de On Error Resume Next poderá "permitir" resultado falso na coluna F.
Exemplo: considerando que o preenchimento de A1:D17 seja manual, e considerando que o intervalo F1:F17 está preenchido corretamente. Agora você altera o valor em B1 de 3 para 20 e altera qualquer valor em A1:A17.
Se o valor 20 não for encontrado, o VLookup irá retornar erro e o valor em F1 não será atualizado pelo código em decorrência do On Error Resume Next, ou seja, F1 terá um valor falso.
Talvez uma forma de contornar seja executar o código ao alterar qualquer coluna de A até D, e não somente ao alterar A, limpar antes o valor em F e assim em caso de erro F ficará vazia (ou pode colocar mensagem indicando que ocorreu erro).
Seria conveniente também que o código atualizasse F somente na linha alterada em A:D, ao invés de executar Loop em todas as linhas a cada alteração manual, conforme seu código original.
Essa planilha aí é para gerar um arquivo m3u de playlist de música, aí no caso, cada aba dela aí puxa as musias referente a uma pasta, Universitária, sertanejo clássico, internacional, e esses números aí dessas colunas B e C e D, são os números da linha onde elas estão, ai fica sendo duas músicas Universitária, uma sertaneja clássica, mais duas universitárias... e a cada oito músicas toca uma Internacional e ainda vai ter mais opções, que eu ainda estou arrumando por exemplo: A cada 30 música vai rodar uma Country também para usar no evento, esses números da colunas B e C e D é os números das Linhas onde elas estão na nas abinhas, lá referente a cada pasta, ela faz essa mistura, esse procv roda só uma vez, ele não é rodada toda vez que ela tem alteração não, ficou errado ali em cima, (como realmente é... Set Colunas = Range("A4:A4") ), ele roda só uma vez só para puxar as musicas e gerar o m3u.
mas ate agora ta funcionando, fazendo o que preciso e sem dar o erro, ta ótimo kkkk
- 1
-
Boa Noite Amigo @OreiaG
os 2 primeiros estão rodando certo, mas esta dando erro nesta linha
CitaçãoElse: Cells(i, "F").Value = Application.WorksheetFunction.VLookup(Cells(i, "D").Value, Sheets("Plan4").[A1:B17], 2, 0)
Boa Noite Amigo @OreiaG
Resolvi o problema acrescentando essa linha ao seu código On Error Resume Next, neta parte:
CitaçãoFor i = 2 To 17
On Error Resume Next
If Cells(i, "B") <> "" Then
Muito obrigado pela ajuda!
forte abraço!
-
Boa Galerinha
To tentando colocar um SE em um código, mas pelo que entendo ele tem que entrar depois de um FOR, e meus conhecimentos em vba são poucos, alguém consegue ajeitar ai pra mim?
tenho estas colunas
Citaçãob c d
e tenho este código
Private Sub Worksheet_Change(ByVal Target As Range) Dim Colunas As Range Set Colunas = Range("A1:A17") If Not Application.Intersect(Colunas, Range(Target.Address)) Is Nothing Then linha = Target.Row On Error Resume Next For i = 2 To 17 Cells(i, "F").Value = Application.WorksheetFunction.VLookup(Cells(i, "B").Value, Sheets("Plan2").[A1:B17], 2, 0) Next End If End Sub
e o que preciso é de um SE nessa parte
For i = 2 To 17 Cells(i, "F").Value = Application.WorksheetFunction.VLookup(Cells(i, "B").Value, Sheets("Plan2").[A1:B17], 2, 0) Cells(i, "F").Value = Application.WorksheetFunction.VLookup(Cells(i, "C").Value, Sheets("Plan3").[A1:B17], 2, 0) Cells(i, "F").Value = Application.WorksheetFunction.VLookup(Cells(i, "D").Value, Sheets("Plan4").[A1:B17], 2, 0) Next
tipo, hora que o código estiver percorrendo a coluna B e a célula estiver vazia, pegar o valor da C e buscar na Plan3, se B e C estiver vazia pegar o valor de D e buscar na Plan4
deu pra entender, ou ficou confusa minha explicação?
-
- 1
-
Bom dia amigo @OreiaG
O resultado não ficou igual ao do meu exemplo, mas ficou muito interessante e resolveu meu problema.
Muito obrigado pela atenção meu amigo.
Forte abraço!
-
Boa Tarde Amigo.
Estou precisando de um vba que faça o seguinte, na coluna B tenho uma relação de musicas assim:
Citaçãocantor A - musica 01
cantor A - musica 02
cantor B - musica 01
cantor B - musica 02
cantor B - musica 03
cantor C - musica 01
cantor C - musica 02
cantor C - musica 03
cantor D - musica 01
preciso que o vba ordene esses dados em outra coluna da seguinte forma....
Citaçãocantor A - musica 01
cantor B - musica 01
cantor C - musica 01
cantor D - musica 01
cantor A - musica 02
cantor B - musica 02
cantor C - musica 02
cantor B - musica 03
cantor C - musica 03
ou seja, preciso q o vba pegue a primeira musica de cada cantor, liste, pegue a segunda de cada cantor, e liste na sequencia, pegue a terceira, quarta, e assim por diante, ate misturar as musicas para que não fique duas musicas do mesmo cantor na sequencia.
sao mais de 5mil musicas, de varios cantores, e a quantidade de musicas de cada cantor varia, um pode ter uma musica outro pode ter 30.
acho q expliquei direito kkk,
obrigado desde ja a quem tiver uma ideia para me ajudar
-
Boa noite @Fred Oliveira
Só dando um pitaco aqui kkk
a formula que @Midori postou está funcionando beleza, e o resultado será 4 realmente.
no arquivo que você postou, na planilha SITUAÇÕES, linhas 1185 e 1186 na coluna B,
que são os critérios buscados para realizar a soma, as informações são idênticas...
1185 530000020220007 Programação Enviada para Complementação/Retificação do Conselho DHARA 1186 530000020220007 Programação Enviada para Complementação/Retificação do Conselho DHARA
logo, será considerada somente uma, como no caso do critério "cadastrada"
forte abraço!
-
Boa Noite @Igor F.
Não sei se entendi direito, mas vamos lá....
Na celula C6 coloque esta formula.
=C1+C3
e em C7 coloque esta.
=SEERRO(SE((C6+$C$3)>$C$2;"";SE(TEMPO(HORA(C6+$C$3);MINUTO(C6+$C$3);SEGUNDO(C6+$C$3))>TEMPO(HORA($C$2);MINUTO($C$2);SEGUNDO($C$2));(DATA(ANO(C6);MÊS(C6);DIA(C6))+1)+TEMPO(HORA($C$1);MINUTO($C$1);SEGUNDO($C$1));C6+$C$3));"")
depois arraste a formula de C7 ate C500.
espero ter ajudado, forte abraço!
- 2
- 1
-
Boa Noite @AlexandreFrancoBh
Substitua por esta aqui....
=SOMA(INDIRETO("K"&LIN()&":"&ENDEREÇO(LIN();COL()-1)))
Acho que agora vai...
Forte Abraço!
- 2
-
Boa noite @AlexandreFrancoBh
Tenta assim amigo,
=SOMA(INDIRETO("K3:"&ENDEREÇO(LIN();COL()-1)))
abraços
- 3
-
boa noite @Ileusis Luna
achei estranho seu primeiro print, porque mesmo com o erro, deveria ter aparecido a janela web no lado direito, mas tenta substituir os dois códigos por este
Sub limpar() Sheets("Pesquisa").WebBrowser1.Navigate "about:blank" End Sub Sub criaPagina() Dim HTML As String '----------código HTML---------- HTML = "<HTML>" & _ "<TITLE>Pagina Carrega no evento Load</TITLE>" & _ "<BODY>" & _ "<img src=""" & Application.WorksheetFunction.VLookup(Range("I7").Value, Sheets("link imagens").[A1:B100000], 2, 0) & """ align=""middle"" width=""98%"" height=""98%"">" & _ "</BODY>" & _ "</HTML>" '----------HTML fim --------------- Sheets("Pesquisa").WebBrowser1.Document.Write HTML End Sub
se mesmo assim continuar o erro, acho que pode ser diferença de office, no meu uso o 2007, mas ai você tenta inserir a janela web novamente
va na guia Desenvolvedor, inserir, e no ultimo quadrinho lá, Mais controles.
na janela que abrir, procure por - Microsoft web Browser
de OK, e clic em qualquer lugar da planilha para inseri-la, digite algum valor em i7 para ver se funciona...
ps: ignore a tela a direta do print, é o que estou montando para apuração dos candidatos da minha cidade!
14 horas atrás, Ileusis Luna disse:Preciso encontrar um curso mais focado para me desenvolver
quanto ao curso, conhecimento a mais nunca é demais
14 horas atrás, Ileusis Luna disse:e parar de amolar rs..
já essa parte eu discordo, muita coisa que sei hoje, aprendi com a galera aqui do fórum, e mesmo depois de tanto tempo, ainda não se livraram de mim, porque ainda continuo trazendo duvidas pra eles me ajudar kkkkk, e vou continuar trazendo kkkkkkkkkkkkk
tenta ai e fala o que deu.
ah! a proposito, qual a versão do seu office?
- 1
-
Boa noite @Ileusis Luna
15 horas atrás, Ileusis Luna disse:@deejaywesley Valeu a tenativa, acho que meu office não é compatível, abriu com erro na formula.
mas eu não usei formulas, as formulas que estão lá é as suas, eu usei so macro, é só ativalas e alterar o numero em i7 que a imagem muda.
- 1
-
- 1
-
Boa noite @DiF
Muito obrigado pelo retorno meu amigo, vou fazer as alterações que você sugeriu, e vou pesquisar e estudar mais um pouco sobre suas dicas, porque php e sql estou aprendendo na cara e coragem mesmo, conforme forem surgindo as duvidas vou postando aqui kkkkkkkkk.
Mais uma vez obrigado pelas orientações e pela atenção!
forte abraço!
- 1
-
Boa Noite @DiF , muito obrigado pelo retorno.
16 horas atrás, DiF disse:Não seria mais fácil definir o campo de votos como INT? você usou como texto....
coloquei como texto, porque os dados que vão estar na tabela qrcode, vai ter texto, aqui esta um...
CitaçãoQRBU:1:2 VRQR:1.5 VRCH:20201013 ORIG:VOTA ORLC:LEG PROC:297 DTPL:20201115 PLEI:304 TURN:1 FASE:O UNFE:MG MUNI:49611 ZONA:211 SECA:197 AGRE:256 IDUE:1266929 IDCA:342170834320399162250941 VERS:7.34.1.0 LOCA:1228 APTO:546 COMP:392 FALT:154 DTAB:20201115 HRAB:070000 DTFC:20201115 HRFC:170249 IDEL:426 CARG:13 TIPO:1 VERC:202011011750 PART:13 13013:9 13100:1 LEGP:0 TOTP:10 PART:14 14000:3 14014:2 14110:5 14123:6 14193:1 14333:2 14365:2 14733:1 14777:9 14789:12 14999:2 LEGP:0 TOTP:45 PART:19 19000:20 19019:10 19100:1 19111:2 19123:4 19333:3 19777:1 19789:7 19800:1 19999:9 LEGP:1 TOTP:59 PART:22 22000:2 22022:4 22100:12 22111:1 22123:40 22210:1 22212:2 22222:8 22345:1 22456:3 22777:4 22789:1 22999:1 LEGP:4 TOTP:84 PART:23 23000:6 23100:3 23200:1 23456:1 23999:3 LEGP:0 TOTP:14 PART:25 25000:1 25025:3 25050:2 25100:5 25111:4 25113:1 25123:2 25199:3 HASH:F40CE3537D03DD346CEA55BC6A7130E521646EBF0603FECEB5D99BF1ECC1F1CD8DB5FC0676C604F0BBD65946B3D669AA876C290A3DDDD352AE5E7797FAE6974B
serão vários qrcode escaneados e enviados, sendo, o que esta antes dos dois pontos, na coluna numero e o que esta depois na coluna votos.
por isso pensei em ter uma outra tabela com o numero e nomes dos candidatos, porque esta seria digitada manualmente, ai por ex, o candidato fulano de numero 25199, neste qrcode retornaria 3 votos, e conforme forem escaneado novos qr, iria somando, pegando o 25199, na coluna num_ps como referencia e buscando ele na coluna numero em qr, como um somases de excel, porque ai ignoraria todo o resto do qrcode.
quanto a sugestão de somar direto no sql, gostei muito, mas não sei se vou conseguir funcionar, porque como no modelo acima vai ter letras no mesma coluna números.
Me desculpe se eu demorar a entender seu raciocínio, porque ainda sou muito iniciante em php e sql, eu cheguei a ler um pouco sobre "INNER JOIN" que você mencionou, mas não consegui fazer funcionar no meu projeto, mas todas ideias e sugestões são bem vindas, e desde já muito obrigado pela atenção!
- 1
-
Boa noite amigos!
tenho este código em uma pagina e esta funcionando, só que estou tentando acrescentar alguns parâmetros nele, e não estou conseguindo.
require("../conectar.php");//chama o arquivo de conexão com o BD $consultarwcp = mysqli_query($conn, "SELECT * FROM apurar WHERE secao "); if(mysqli_num_rows($consultarwcp) > 0){ $validos = mysqli_query($conn, "SELECT sum(votos) FROM apurar"); while($sum = mysqli_fetch_array($validos)){ $somaV = $sum['sum(votos)']; } $sql = "SELECT SUM(votos) as SOMA, candidatos FROM apurar GROUP BY candidatos ORDER BY SOMA DESC"; $exec = mysqli_query($conn, $sql); while ($rows = mysqli_fetch_assoc($exec)) { echo "<table><tr> <td>".$rows["candidatos"]."</td> <td>".$rows["candidatos"]."</td> <td>".$rows["SOMA"]."</td><td>".number_format(($rows["SOMA"] * 100)/$somaV, 2, '.', ',')." %</td> </tr></table>"; } }
basicamente ele vai ate a tabela apurar, lista todos nos nomes na coluna candidato, faz um somasse na coluna votos, unindo os valores q tenha nomes iguais, e me retorna os dados em ordem decrescente.
segue imagem com o meu novo BD
estou tentando alterar aquele código para fazer o seguinte:
ele vá a tabela PS, liste os números que estão em num_ps, depois
vá em qrcode, busque os mesmos valores na coluna numero, faça o somasse em votos, e me retorne em ordem decrescente...
numero listado, nome q esta em cand_ps, e os votos, e % dos valores....
outro ex:
os dados em PS vão estar assim:
id num_ps cand_ps
1 47 maria
2 84 joyce
3 33 julia
os dados em Qrcode:
id secao numero votos
1 70 47 200
2 70 84 150
3 70 33 300
4 70 66 180
5 70 71 410
6 85 47 100
7 85 84 200
8 85 33 400
9 85 66 280
10 85 71 510
11 123 47 50
12 123 84 70
13 123 33 20
14 123 66 99
15 123 71 550
e preciso que me retorne
33 julia 720 48,32%
84 joyce 420 28,19%
47 maria 350 23,49%
já olhei em vários tópicos, e em vários outros fóruns, mas não achei como alterar, e as que faço retorna erro, aguem pode alterar pra mim por favor?
-
=SUBSTITUIR("§mat["&B$1&"]["&A2&"]="&B2&"§";"§";"""")
cole esta formula aqui na 1ª celula que você ta usando, arraste para baixo ate onde precisa, e depois com a coluna selecionada arraste para o lado ate onde precisas...
- 1
-
para B1 não alterar coloque assim
=SUBSTITUIR("§mat["&$B$1&"]["&A2&"]="&B2&"§";"§";"""")
ai depois é so arrastar para baixo...
boa noite @kgin
pelo que entendi, ele quer fazer o Excel escrever o código pra ele, pra ele não ter que escrever as 400 e tantas linhas uma por uma ....
-
Boa Noite @Gustavo Feijo
Não sei se entendi direito o que precisas, mas acho que é isso aqui...
=SUBSTITUIR("§mat["&B1&"]["&A2&"]="&B2&"§";"§";"""")
boa sorte com o jogo!
-
Muito boa noite amigo @Basole
Muito obrigado pela resposta, está salvando no formato certinho que preciso
mas como felicidade de pobre dura pouco, mesmo estando no formato correto, quando upo elas para o site, ele não reconhece e da erro, mas deve ser uma coisa à toa que esta faltando, vou continuar dando uma pesquisada aqui.
forte abraço parceiro.
fica com Deus!
-
Boa tarde e um ótimo domingo amigos!
Encontrei esse código na net, que é 99% do que preciso.
Fácil de editar, já que não sou lá essas coisas em VBA, e separa na quantidade que preciso e cria o cabeçalho...
Sub prcTrannsferir() Dim wbkDestino As Workbook Dim wBase As Worksheet Dim wDestino As Worksheet Dim intQtdGruposEnviados As Integer Dim intQtdItensPorPlanilha As Integer Dim intQtdItensEnviados As Integer Dim lngQtdItens As Double Set wBase = ThisWorkbook.Sheets("wcp") 'Altere para o nome da sua guia que contens os dados lngQtdItens = wBase.Range("A32000").End(xlUp).Row intQtdItensPorPlanilha = 999 ' Informe aqui a quantidade de itens por planilha intQtdItensEnviados = 0 'não precisa alterar intQtdGruposEnviados = 0 ' não precisa alterar For x = 2 To lngQtdItens 'altere o valor 2 para a linha inicial dos dados da sua planilha If intQtdItensEnviados = 0 Then 'Cria uma nova guia e cria um cabeçalho na primeira linha Set wbkDestino = Workbooks.Add Set wDestino = wbkDestino.Sheets.Add wDestino.Name = "saldos_estoque" ' "Grupo " & intQtdGruposEnviados + 1 wDestino.Cells(1, 1).Value = "ID Produto" wDestino.Cells(1, 2).Value = "Codigo produto" wDestino.Cells(1, 3).Value = "GTIN" wDestino.Cells(1, 4).Value = "Descrição Produto" wDestino.Cells(1, 5).Value = "Depósito" wDestino.Cells(1, 6).Value = "Balanço" wDestino.Cells(1, 7).Value = "Valor" wDestino.Cells(1, 8).Value = "Preço de Custo" wDestino.Cells(1, 9).Value = "Observação" i = 2 End If If intQtdItensEnviados < intQtdItensPorPlanilha Then 'Se não chegou ao limite de itens por planilha, copia os dados wDestino.Cells(i, 1).Value = wBase.Cells(x, 1).Value wDestino.Cells(i, 2).Value = wBase.Cells(x, 2).Value wDestino.Cells(i, 3).Value = wBase.Cells(x, 3).Value wDestino.Cells(i, 4).Value = wBase.Cells(x, 4).Value wDestino.Cells(i, 5).Value = wBase.Cells(x, 5).Value wDestino.Cells(i, 6).Value = wBase.Cells(x, 6).Value wDestino.Cells(i, 7).Value = wBase.Cells(x, 7).Value wDestino.Cells(i, 8).Value = wBase.Cells(x, 8).Value wDestino.Cells(i, 9).Value = wBase.Cells(x, 9).Value intQtdItensEnviados = intQtdItensEnviados + 1 i = i + 1 End If If intQtdItensEnviados = intQtdItensPorPlanilha Or x = lngQtdItens Then 'Se chegou ao limite, inicia o contador de itens enviados e incrementa a quantidade de grupos wbkDestino.SaveAs ThisWorkbook.Path & "\" & "Grupo " & intQtdGruposEnviados + 1 ' wDestino.Name wbkDestino.Close intQtdItensEnviados = 0 intQtdGruposEnviados = intQtdGruposEnviados + 1 End If Next x Call RenameSheet End Sub
O problema é que esta salvando no formato do Excel, e eu preciso que ele salve e em CSV, ate achei um parecido que salva em CSV mas não é o CSV certo, sim o site do sistema que tenho que subir o balanço de estoque é exigente kkkkk
alguém consegue altera-lo para mim, ou tem outro que faça o mesmo e salve no bendito CSV.
segue a imagem com o CSV que preciso que seja salvo.
não sei se faz diferença, mas uso o office 2007.
obrigado a todos!
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
Formula Maior em VBA
em Microsoft Office e similares
Postado
Boa Note @OreiaG
Muito obrigado pela explicação, ja estou anotando aqui mais esta
Funcionou certinho aqui!
forte abraço!