Ir para conteúdo
Fórum Script Brasil

Alyson Ronnan Martins

Membros
  • Total de itens

    831
  • Registro em

  • Última visita

Posts postados por Alyson Ronnan Martins

  1. Bom dia @Kisono

    Olha se esse código consegue clarear um pouco o que precisa:

    Sub ExtrairValoresDoSVG()
        Dim svgString As String
        Dim startIndex As Long, endIndex As Long
        Dim j As Long, val As Long, barHeight As Double
        
        ' Defina a string SVG
        svgString = "<path id=""SvgjsPath1981"" d=""M 63.19918062471707 90L 63.19918062471707 106.2Q 63.19918062471707 106.2 63.19918062471707 106.2L 67.99273125094312 106.2Q 67.99273125094312 106.2 67.99273125094312 106.2L 67.99273125094312 106.2L 67.99273125094312 90L 67.99273125094312 90z"" fill=""rgba(49,130,206,0.85)"" fill-opacity=""1"" stroke-opacity=""1"" stroke-linecap=""round"" stroke-width=""0"" stroke-dasharray=""0"" class=""apexcharts-bar-area"" index=""1"" clip-path=""url(#gridRectMaske8t52cy9)"" pathTo=""M 63.19918062471707 90L 63.19918062471707 106.2Q 63.19918062471707 106.2 63.19918062471707 106.2L 67.99273125094312 106.2Q 67.99273125094312 106.2 67.99273125094312 106.2L 67.99273125094312 106.2L 67.99273125094312 90L 67.99273125094312 90z"" pathFrom=""M 63.19918062471707 90L 63.19918062471707 106.2Q 63.19918062471707 106.2 63.19918062471707 106.2L 67.99273125094312 106.2Q 67.99273125094312 106.2 67.99273125094312 106.2L 67.99273125094312 106.2L 67.99273125094312 90L 67.99273125094312 90zL 63.19918062471707 90L 67.99273125094312 90L 67.99273125094312 90L 67.99273125094312 90L 67.99273125094312 90L 67.99273125094312 90L 63.19918062471707 90"" cy=""106.2"" cx=""67.99273125094312"" j=""13"" val=""-9"" barHeight=""-16.2"" barWidth=""4.793550626226045""></path>"
        
        ' Extrair o valor de "j"
        startIndex = InStr(svgString, "j=""") + 3
        endIndex = InStr(startIndex, svgString, """") - 1
        j = CLng(Mid(svgString, startIndex, endIndex - startIndex + 1))
        
        ' Extrair o valor de "val"
        startIndex = InStr(svgString, "val=""") + 5
        endIndex = InStr(startIndex, svgString, """") - 1
        val = CLng(Mid(svgString, startIndex, endIndex - startIndex + 1))
        
        ' Extrair o valor de "barHeight"
        startIndex = InStr(svgString, "barHeight=""") + 11
        endIndex = InStr(startIndex, svgString, """") - 1
        barHeight = CDbl(Mid(svgString, startIndex, endIndex - startIndex + 1))
        
        ' Exibir os valores extraídos
        Debug.Print "j: " & j
        Debug.Print "val: " & val
        Debug.Print "barHeight: " & barHeight
    End Sub

     

  2. Boa noite @Ferdinaldo

    mais ou menos assim?
     

    #include <stdio.h>
    #include <math.h>
    
    #define SCREEN_WIDTH 80
    #define SCREEN_HEIGHT 24
    
    void drawCircle(int radius) {
        int x, y;
        int centerX = SCREEN_WIDTH / 2;
        int centerY = SCREEN_HEIGHT / 2;
    
        for (y = 0; y < SCREEN_HEIGHT; y++) {
            for (x = 0; x < SCREEN_WIDTH; x++) {
                int distance = (int) sqrt((x - centerX) * (x - centerX) + (y - centerY) * (y - centerY));
                if (distance == radius) {
                    printf("*");
                } else {
                    printf(" ");
                }
            }
            printf("\n");
        }
    }
    
    int main() {
        int radius;
    
        printf("Digite o raio do círculo: ");
        scanf("%d", &radius);
    
        drawCircle(radius);
    
        return 0;
    }

     

  3. Boa noite @FernandoT

    Pelo que entendi você quer colocar um "textbox" usando a "área" da planilha:

    image.png.1e25c2313d55bc2c8c88a207b61c3707.png

     

    Se for isso que está planejando eu fiz os seguintes passos:

    • Criar duas caixas de texto
    • ativar o modo desenvolvimento
      • image.png.9b054ad8c9c2ff4e99d13b14617c7a1c.png
    • Clicar duas vezes em cima da caixa de texto que quero alterar para acessar o VBA e colocar o código abaixo:
      • image.png.6d61574543fee45d9a0b1d68f83937e5.png
      • para identificar essa opção de "KeyDown" eu pesquisei as opções disponíveis para o meu textobox1:
        • image.thumb.png.4b800503dc672db1679b599da980a49c.png
        • image.png.fb4da251de210ebd7838bdfd3fbcbcd3.png
    • Agora que coloquei para exibir uma mensagem, ao apertar qualquer botão, identifiquei os botões Enter e Tab:
      • Enter: 13
        image.png.2d3417022a4e6d0aea18b8df600623fd.png
      • Tab: 9
        image.png.6a1c6476f8606b816590c1bf5516f81d.png
    • Com os botões identificado agora vamos fazer o comando para pular de janela:
      • image.png.5e3ce42b6af4837d9d1c06773d501a78.png
    • Agora basta fazer isso para o outro comando também:
      • image.png.17a8f7a1b38d26785766ecf5a4b76617.png

     

    Link para download da planilha com o exemplo: Planilha no onedrive

  4. Bom dia.

    Olha se esse código abaixo te ajuda.
     

    'Planilha não tem as informações completas, sendo nescessário ter uma base
    'de dados para colocar as informações pesquisar e adcionar na planilha
    'principal. Depois de adcionar classificar
    ' -> Recomendado base de dados ter um ID (identificação unica numérica) para relalizar pesquisas acertivas
    ' -> Adcionar colunas e linhas para fazer a classificação
    ' -> Percorrer a planilha Produtos para localizar as tag para classificar
    ' -> Classificar pelas colunas adicionadas
    
    
    Public Sub main() 'Processo principal
    'Variáveis
    Dim x                   As Long 'Variável de iteração linhas
    Dim y                   As Long 'Variável de iteração colunas
    Dim lastRow             As Long 'Ultima linha
    Dim wantedValue         As String 'Pexto de pesquisa
    Dim rowInAnoterSheet    As Variant 'Numero da linha na tabela produtos
    Dim shProducts          As Worksheet 'tabela produto
    
    
    Set shProducts = Sheets("Produtos")
    
    'Partindo do princípio que os dados começam na coluna B
    'Add colunas
    Sheets("Itens").Select
    Columns("B:D").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlToRight
    
    'Adicionar títulos as colunas utilização iteração
    For y = 2 To 4
        Cells(1, y).Value = "TAG " & y - 1
    Next y
    
    'Percorrer linnhas e adcionar as informações da colunas de classificações
    'Iteração para linhas
    lastRow = Cells(Rows.Count, "E").End(xlUp).Row
    For x = 2 To lastRow
        wantedValue = Cells(x, "E").Value
        rowInAnoterSheet = SourchLineProduct(wantedValue)
        
        
        If rowInAnoterSheet = 0 Then
            Cells(x, 2).Value = "Não encontrado"
        Else
            For y = 2 To 4
                Cells(x, y).Value = shProducts.Cells(rowInAnoterSheet, y).Value
            Next y
        End If
        
    Next x
    
    'Classificar a tabela itens
    ActiveWorkbook.Worksheets("Itens").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Itens").Sort.SortFields.Add2 Key:=Range("B2:B" & lastRow), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Itens").Sort.SortFields.Add2 Key:=Range("C2:C" & lastRow), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Itens").Sort.SortFields.Add2 Key:=Range("D2:D" & lastRow), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Itens").Sort
        .SetRange Range("B1:I" & lastRow)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
    End Sub
    
    Public Function SourchLineProduct(TextFind As String) As Long
    On Error GoTo ErrorFind
    Dim res As Long
    
    res = Application.WorksheetFunction.Match(TextFind, _
                        Sheets("Produtos").Range("E:E"), 0)
                        
    
    SourchLineProduct = res
    Exit Function
    
    ErrorFind:
    Err.Clear
    SourchLineProduct = 0
    Exit Function
    End Function
    

    Planilha de exemplo: https://drive.google.com/file/d/1G49lhYiJt7UN4guvWfa0XCsGC8EsUyb0/view?usp=sharing

     

  5. Uma correção para o código:

    Public StatusContinueWrite As Boolean
    Public CurrentLine As Long
    
    Public Sub main()
    StatusContinueWrite = True: CurrentLine = 1
    update
    End Sub
    
    Private Sub update()
    If StatusContinueWrite Then
        WriteOnLines
        Application.OnTime Now + TimeValue("00:00:01"), "update"
    Else
        MsgBox "Terminou"
    End If
    End Sub
    
    Private Sub WriteOnLines()
    Range("A" & CurrentLine).Value = "A": CurrentLine = CurrentLine + 1
    End Sub

    Agora um exemplo de como está o código:

    Arquivo exemplo no google drive: https://drive.google.com/file/d/1XGf5VDCiWvzI9lyLk__PeshyVibj52HF/view?usp=sharing

    Verifica esse último código.

  6. Dim continueWriting As Boolean
    
    Sub StartWriting()
        continueWriting = True
        WriteText
    End Sub
    
    Sub StopWriting()
        continueWriting = False
    End Sub
    
    Sub WriteText()
        Dim rng As Range
        Set rng = Range("A1")
        
        While continueWriting
            If Application.SendKeys("{F2}") Then
                Exit Sub
            Else
                rng.Value = "A"
                Set rng = rng.Offset(1, 0)
            End If
        Wend
    End Sub
  7. O arquivo .htaccess é um arquivo de configuração que é usado pelos servidores web Apache e outros servidores baseados em Apache, como o Nginx. Ele é geralmente colocado na raiz do diretório do site e é usado para fazer configurações específicas para o site, como redirecionamento de URL, proteção de diretórios com senha, entre outras configurações.

    No caso específico que você mencionou, o conteúdo do arquivo .htaccess estava redirecionando todas as solicitações para o endereço IP local 127.0.0.1 na porta 80, o que pode ter causado o erro 403 que o seu irmão relatou ao tentar acessar o projeto PHP pelo tablet ou celular. Ao remover o arquivo .htaccess, você removeu a configuração de redirecionamento e permitiu que o projeto PHP fosse acessado normalmente.

    É importante lembrar que o arquivo .htaccess pode conter configurações importantes para o funcionamento do site, por isso é recomendado fazer uma cópia de backup antes de fazer qualquer alteração no arquivo. Se você não sabe exatamente o que está fazendo, é recomendado procurar a ajuda de um profissional ou do suporte técnico da sua hospedagem.

    Se você precisa recriar o arquivo .htaccess, você pode criar um novo arquivo vazio e inserir as configurações necessárias.

     

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

     

  8. Boa tarde. 
    Para excluir uma linha em uma planilha específica, você precisa referenciar a planilha na qual a linha está localizada usando a propriedade "Worksheets". Você pode fazer isso modificando a linha onde você define a variável "ult_linha" para:

    ult_linha = Worksheets("Plan6").cells(rowns.count, "A").End(xlUp).Row

    Isso irá definir "ult_linha" como o número da última linha na Plan6 que contém dados na coluna A.

    Em seguida, dentro do loop "For", você precisa modificar as referências de célula para incluir a Plan6. Você pode fazer isso adicionando "Worksheets("Plan6")." antes das referências de célula. Por exemplo:

    If Worksheets("Plan6").Cells(linha, 18).Value = valor_processo Then
        Worksheets("Plan6").Range(Worksheets("Plan6").Cells(linha, 1), Worksheets("Plan6").Cells(linha, 42)).Delete Shift:=xlUp
        linha = linha - 1
    End If

    Isso irá excluir a linha correspondente ao processo "valor_processo" na Plan6.

    Com o tempo se sua função ficar mais lenta troque o for pelo find

  9. Boa tarde. 
    Para limitar a entrada de datas em um TextBox no VBA, você pode usar o evento "BeforeUpdate" para validar se a data está dentro do intervalo desejado e, em seguida, permitir ou impedir que o usuário insira a data. Aqui está um exemplo de como limitar a entrada de datas a partir de 1971:
     

    Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
        If Me.TextBox1.Value < DateSerial(1971, 1, 1) Then
            MsgBox "A data deve ser igual ou superior a 01/01/1971."
            Cancel = True
        End If
    End Sub

    Explicação:

    O evento "BeforeUpdate" é acionado antes que o valor do TextBox seja atualizado.

    A função "DateSerial" cria uma data com base em três argumentos: o ano, o mês e o dia.

    Se a data inserida pelo usuário for anterior a 01/01/1971, uma mensagem de aviso será exibida e a atualização será cancelada.

    Para limitar a entrada de datas entre um intervalo específico, você pode usar o mesmo código acima, porém ajustando a condição da seguinte maneira:

     

    Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
        If Me.TextBox1.Value < DateSerial(1971, 1, 1) Or Me.TextBox1.Value > DateSerial(2001, 12, 31) Then
            MsgBox "A data deve estar entre 01/01/1971 e 31/12/2001."
            Cancel = True
        End If
    End Sub

     

    Nesse caso, se a data inserida pelo usuário for anterior a 01/01/1971 ou posterior a 31/12/2001, uma mensagem de aviso será exibida e a atualização será cancelada.

  10. Bom dia. 
    Tenta usar o código abaixo:

    Dim strPath As String
    Dim strPathAndName As String
    strPath = ActiveDocument.Path 'Obtém o caminho da pasta do documento ativo
    strPathAndName = strPath & "\" & ActiveDocument.Name 'Concatena o caminho com o nome do documento
    MsgBox strPathAndName 'Mostra o caminho completo do documento em uma caixa de mensagem

     

  11. Bom dia.

    Imaginando o seu projeto, pensaria em colocar um "tabela dinâmica" fazendo aparecer os 20 produtos na e seus valores. Agora no formulário poderia ser um listbox ou inputs e labels, você teria uma planilha exemplo que possa enviar? (para saber qual seria a ideia do formulário.)

  12. Boa noite @riberex00

    Foi criado o comando "PesquisaAvancada":

    Public Sub PesquisarAvancado(Categoria As String, Valor As String)
    Dim shBase            As Worksheet    'Planilha de base
    Dim shPesq            As Worksheet    'Planilha para exibir dados da pesquisa
    Dim lCategorias       As Long         'Linha para cabeçalho das categorias
    Dim ultimaColunaBase  As Long         'Ultima coluna da tabela "base"
    Dim ultimaLinhaBase   As Long         'Ultima linha da tabela "base"
    Dim y                 As Long         'Variável para coluna do "FOR"
    Dim x                 As Long         'Variável para linha do "FOR"
    Dim novaLinhaPesquisa As Long         'Nova linha na planliha "Pesquisar"
    
    
    Set shBase = Sheets("BASE_DADOS")
    Set shPesq = Sheets("PESQUISAR")
    lCategorias = 3
    novaLinhaPesquisa = 11
    ultimaColunaBase = shBase.Cells(lCategorias, Columns.Count).End(xlToLeft).Column
    ultimaLinhaBase = shBase.Cells(Rows.Count, "A").End(xlUp).Row
    
    'Idenfificar a coluna igual ao texto da categoria
    For y = 1 To ultimaColunaBase Step 1
      If shBase.Cells(lCategorias, y).Value = UCase(Categoria) Then
        'Pesquisar em todas as linhas para verificar se o "Valor" é igual ao da célula
        For x = lCategorias + 1 To ultimaLinhaBase Step 1
          'Identificar as linhas que estejam com o mesmo valor
          If shBase.Cells(x, y).Value = Valor Then
            'Agora deve passar as informações para tabela pesquisa
            shPesq.Cells(novaLinhaPesquisa, "B").Value = shBase.Cells(x, "A").Value
            shPesq.Cells(novaLinhaPesquisa, "C").Value = shBase.Cells(x, "B").Value
            shPesq.Cells(novaLinhaPesquisa, "D").Value = shBase.Cells(x, "C").Value
            shPesq.Cells(novaLinhaPesquisa, "E").Value = shBase.Cells(x, "D").Value
            shPesq.Cells(novaLinhaPesquisa, "F").Value = shBase.Cells(x, "E").Value
            shPesq.Cells(novaLinhaPesquisa, "G").Value = shBase.Cells(x, "F").Value
            shPesq.Cells(novaLinhaPesquisa, "H").Value = shBase.Cells(x, "G").Value
            shPesq.Cells(novaLinhaPesquisa, "I").Value = shBase.Cells(x, "H").Value
            novaLinhaPesquisa = novaLinhaPesquisa + 1
          End If
        Next x
      End If
    Next y
    
    End Sub

    Esse procedimento precisa receber o valor dos dois campos ComboBox que estão na planilha, por esse motivo ao clicar no botão ele passa a informação para o procedimento:

    Public Sub ButtonPesquisar()
    LimparPesquisa
    PesquisarAvancada CmbTipo.Value, CmbDescricao.Value
    End Sub

    Antes de iniciar o processo de pesquisa foi colocado o procedimento para limpar a planilha de pesquisa:

    Public Sub LimparPesquisa()
    Dim uLinha As Long
    uLinha = Cells(Rows.Count, "B").End(xlUp).Row
    If uLinha > 10 Then
      Range("B11:I" & uLinha).ClearContents
    End If
    End Sub

    Faz o teste para ver se funciona Planilha anexada no google drive

    https://drive.google.com/file/d/1_RofueQevo92sxEuIGpfkwi2Z_y1dWB_/view?usp=sharing

  13. Boa tarde, não entendi se é um comentário ou uma crítica.

    Esse é um forum para compartilhamento de conhecimento e se tivermos passado por um problema parecido ajudamos, no tempo que tivermos disponível. Eu por exemplo já ajudei algumas vezes e nunca recebi um centavo por qualquer ajudar.

    Se precisar de algo mais específico poste a planilha que apresentar o problema para baixar e tentar ajudar. 

  14. Muito boa recomendação, nunca peguei o Laravel ou usei o composer, sem fui dos que vão direto no PHP.

    Dependendo do seu projeto recomendo fortemente olha o desenvolvimento em NodeJS.

    Hoje as soluções que eu trabalho são votadas a resolver problemas em JS usando apenas eles. E estou no mesmo barco que você, tentei usar o Docker recentemente e não consegui de jeito alguma e algumas pessoas que conheço se queixaram justamente dessa aplicação para de funcionar. 

×
×
  • Criar Novo...