Ir ao conteúdo
  • Cadastre-se

deejaywesley

Membro Pleno
  • Posts

    758
  • Cadastrado em

  • Última visita

posts postados por deejaywesley

  1. 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? 🙃

  2. 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

    • Curtir 1
  3. Boa Noite  Amigo @OreiaG

     

    os 2 primeiros estão rodando certo, mas esta dando erro nesta linha

    Citação

    Else: 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ção

    For i = 2 To 17

    On Error Resume Next

    If Cells(i, "B") <> "" Then

    Muito obrigado pela ajuda!

    forte abraço!😎

  4. 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ção

    b             c               d

    image.png.02eda6882fca8c64599c0b6e8033222c.png

     

    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? 😂

  5. Boa Tarde Amigo.

    Estou precisando de um vba que faça o seguinte, na coluna B tenho uma relação de musicas assim:

    Citação

    cantor 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ção

    cantor 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😎

  6. 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! 😉

  7. 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! 😎

    • Curtir 2
    • Obrigado 1
  8. 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

     

    image.thumb.png.85e0e0bd71220d80a7086402b3a63725.png

    va na guia Desenvolvedor, inserir, e no ultimo quadrinho lá, Mais controles.

    na janela que abrir, procure por - Microsoft web Browser

    image.thumb.png.99a25e4c7af94786f8900e9df34d2948.png

    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?

    • Amei 1
  9. 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ção

    QRBU: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!😎

    • Curtir 1
  10. 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

    221402958_NovaImagem(2).thumb.png.9767f520d70bb50fdf079bd1a13995cd.png

     

    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?

  11. 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!

  12. 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.

     

    629459954_NovaImagem(19).jpg.bf5c29044913934351a6f54811bd550f.jpg

     

    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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!