-
Posts
3.601 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Midori postou
-
Excel Preciso evitar que um cálculo retorne o número "-44930".
Midori respondeu ao tópico de Deltaprimo em Microsoft Office e similares
@Deltaprimo Se o seu Excel for em português a fórmula deve ser SE em vez de IF. -
Excel Reunir várias planilhas em uma só com VBA
Midori respondeu ao tópico de Martti em Microsoft Office e similares
@Martti Algumas células estão mescladas, a macro vai remover a mescla e copiar os dados para outra aba. Crie uma aba com o nome Tabela e execute a macro de teste. Se trazer os dados no formato certo execute a última. Sub Teste() Call CopiaRelatorio( _ ThisWorkbook.Sheets("Table 1"), _ ThisWorkbook.Sheets("Tabela")) End Sub Sub CopiaRelatorio(Origem As Worksheet, Destino As Worksheet) Dim LinAba As Long Dim LinTbl As Long Dim Colunas As Integer Dim Bairro As String Colunas = Origem.UsedRange.Columns.Count Origem.Columns(1).Resize(, Colunas).MergeCells = False For LinAba = 1 To Origem.UsedRange.Rows.Count If Origem.Cells(LinAba, "A").Font.Bold = True Then Bairro = Origem.Cells(LinAba, "A") Else LinTbl = Destino.[A1].CurrentRegion.Rows.Count + 1 Destino.Cells(LinTbl, "A") = Bairro Destino.Cells(LinTbl, "B").Resize(, Colunas - 1).Value = _ Origem.Cells(LinAba, "A").Resize(, Colunas).Value End If Next LinAba End Sub Sub JuntarRelatorios() Dim Destino As Worksheet Dim Aba As Worksheet Set Destino = ThisWorkbook.Sheets("Tabela") For Each Aba In ThisWorkbook.Worksheets If Aba.Name <> Destino.Name Then Call CopiaRelatorio(Aba, Destino) End If Next Aba End Sub -
Excel Preciso evitar que um cálculo retorne o número "-44930".
Midori respondeu ao tópico de Deltaprimo em Microsoft Office e similares
@Deltaprimo Sua fórmula pode ter o critério para não calcular caso não tenha data, p.ex, =IF(B8="";"";B8-$F$8) Cole em D8 e arraste. -
Visual Basic Número negativo para positivo e vice versa VBA
Midori respondeu ao tópico de Fabiano Leo em Programação - outros
@Fabiano Leo É só atribuir o valor negativo da própria célula: Cel.Value = -Cel.Value. -
@UmAmigo Essa lista vem junto com a pesquisa no site? Se vier a macro deve importar também.
-
Outro Código VBA - Erro em tempo de execução '91'
Midori respondeu ao tópico de Igor Brenner em Microsoft Office e similares
@levi feirreira Activate é uma função, membro de Range. Com TypeName verá que é do tipo Boolean, p.ex, MsgBox TypeName([A1].Activate) Por isso ela não deve fazer parte da atribuição de Procura que é uma variável do tipo Range. É diferente de Find que é um objeto Range e Procura recebe o retorno dela que pode ser Range ou Nothing. Caso o retorno de Find seja diferente de Nothing você pode usar qualquer membro de Range como o Activate, p.ex, Call Procura.Activate -
Outro Código VBA - Erro em tempo de execução '91'
Midori respondeu ao tópico de Igor Brenner em Microsoft Office e similares
@levi feirreira Remova o .Activate da atribuição. -
@UmAmigo Veja se assim resolve. Entre com o CNPJ em A1 e execute a macro. Sub Executar() Call ImportaMinhaReceita([A1].Value) End Sub Sub ImportaMinhaReceita(CNPJ As String) Dim PlanConsulta As Worksheet On Error Resume Next ThisWorkbook.Queries("ConsultaCNPJ").Delete On Error GoTo 0 CNPJ = Format(CNPJ, """""00"".""000"".""000""/""0000-00") Call ThisWorkbook.Queries.Add( _ Name:="ConsultaCNPJ", _ Formula:="let" & Chr(13) & "" & Chr(10) & _ " Source = Json.Document(Web.Contents(""https://minhareceita.org/" & CNPJ & """))," & _ Chr(13) & "" & Chr(10) & " #""Converted to Table"" = Record.ToTable(Source)" & _ Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Converted to Table""") With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _ "OLEDB;Provider=Microsoft.Mashup.OleDb.1;" & _ "Data Source=$Workbook$;Location=ConsultaCNPJ;Extended Properties=""""" _ , Destination:=Range("$A$5")).QueryTable .CommandType = xlCmdSql .CommandText = Array("SELECT * FROM [ConsultaCNPJ]") .Refresh BackgroundQuery:=False End With End Sub
-
Outro Código VBA - Erro em tempo de execução '91'
Midori respondeu ao tópico de Igor Brenner em Microsoft Office e similares
@levi feirreira Atribua a busca a uma variável e depois faça o teste se ela é Nothing, p.ex, Dim Procura As Range Set Procura = Selection.Find(What:="102"... If Procura Is Nothing Then Exit Sub End If -
@bantinerbs Como comentado acima, faltou espaço. [ é um comando, se entrar com which [ no terminal verá que é um arquivo.
-
Python Ler um arquivo txt e extrair informações
Midori respondeu ao tópico de Bruno Morais da Fonseca em Programação - outros
@Bruno Morais da Fonseca Qual é a dificuldade? Já conseguiu ler os dados do arquivo? Você pode ler cada linha e testar o campo onde tem o nome do time. Com a função split é só passar o índice da coluna. -
Visual Basic Envio de dados via VB de uma aba para outra, limpeza dados do formulário e PDF
Midori respondeu ao tópico de Marcel Campos em Programação - outros
Para salvar em pdf tem o procedimento ExportAsFixedFormat. É só passar o nome do arquivo para o diretório ThisWorkbook.Path que é onde a planilha foi salva. Na outra aba os dados devem ser enviados para a última linha da tabela, há diversas formas de identificar isso, uma das mais simples é com [A1].CurrentRegion.Rows.Count + 1. A limpeza das células pode ser feita com ClearContents. -
Python Imprimir gráfico e incrementar valores para a média de alpha.
Midori respondeu ao tópico de Tati Schein em Programação - outros
Deve ter visto um alerta de erro nessa atribuição de desvioalpha. O que quer fazer nessa atribuição de mediaalpha? Para acessar os elementos de mediaalpha você deve passar o índice. -
Excel Filtro com caixa de seleção na listbox
Midori respondeu ao tópico de Edgar blz em Microsoft Office e similares
@Edgar beleza Uma forma de fazer isso é com AdvancedFilter. Assim fica simples aplicar os critérios para criar os dados filtrados em numa tabela auxiliar para carregar o listbox. Crie uma nova planila com o nome Filtro e copie o código, Sub AtualizaFiltro() Dim Tabela As Range Dim AreaFiltrada As Range Dim PlanFiltro As Worksheet Dim Controle As Control Set Tabela = ThisWorkbook.Sheets("Plan1").[A1].CurrentRegion Set PlanFiltro = ThisWorkbook.Sheets("Filtro") Set AreaFiltrada = PlanFiltro.[A10].CurrentRegion For Each Controle In Frame1.Controls If Controle.Value = True Then PlanFiltro.[C2].Value = Controle.Caption AreaFiltrada.Clear Call Tabela.AdvancedFilter( _ Action:=xlFilterCopy, _ CriteriaRange:=PlanFiltro.[A1].CurrentRegion, _ CopyToRange:=AreaFiltrada(1, 1)) ListBox1.RowSource = "Filtro!" & AreaFiltrada.Address Exit For End If Next Controle End Sub Private Sub UserForm_Click() Call AtualizaFiltro End Sub Private Sub UserForm_Initialize() ListBox1.ColumnCount = 3 ListBox1.RowSource = "Plan1!A2:C8" End Sub A planilha Filtro deve ter estes campos, Faça um teste. O evento está no Click do Form e filtra apenas a primeira seleção de checkbox que encontrar, mas você pode editar o código para acrescentar mais situações. Os critérios do filtro do TextBox também devem ser registrados na planilha Filtro (o nome na célula B2, etc). -
Excel Como fazer lista com dados mesclados/limitados, só que com muitas opções?
Midori respondeu ao tópico de Esraeu em Microsoft Office e similares
@Esraeu A macro tira a formatação porque usei Clear, para deixar é só substituir por ClearContents, Call Lista.ClearContents Ou então remova essa linha se não quiser apagar a última seleção. -
Excel Como fazer lista com dados mesclados/limitados, só que com muitas opções?
Midori respondeu ao tópico de Esraeu em Microsoft Office e similares
@Esraeu Podemos ativar a macro para cria lista quando a célula B2 é modificada. Estes são os passos: 1) Clique com o direito na aba da planilha e selecione Vew Code: 2) No editor cole o código. Depois a planilha deve ser salva como xlsm. Sub AtualizaLista(Lista As Range, AreaModelo As Range, Modelo As String) Dim Area As Range Dim Procura As Range Dim Valores As String Set Procura = AreaModelo.Find( _ What:=Modelo, LookIn:=xlValues, LookAt:=xlWhole) If Not Procura Is Nothing Then Set Procura = Procura.MergeArea Set Area = Procura(1, 2).Resize(Procura.Rows.Count) If Area.Rows.Count = 1 Then Valores = Area.Value Else Valores = Join(Application.Transpose(Area), ",") End If Call Lista.Clear Call Lista.Validation.Delete Call Lista.Validation.Add(Type:=xlValidateList, Formula1:=Valores) End If End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$2" Then Call AtualizaLista([B3], [F:F], [B2]) End If End Sub -
Excel Como fazer lista com dados mesclados/limitados, só que com muitas opções?
Midori respondeu ao tópico de Esraeu em Microsoft Office e similares
@Esraeu Pode ser com macro? Assim poderia adicionar uma nova lista com os tamanhos na célula C3 toda vez que o modelo é selecionado. -
@luhowl No último loop está apenas atribuindo o produto do maior por cada posição do vetor. No fim a variável multi vai acabar ficando só com o cálculo do último elemento. Se quer multiplicar cada elemento pelo maior, faça o cálculo para todos os elementos, p.ex, for(int i = 0; i < MAX; i += 1){ vet[i] *= maior_valor; } O segundo loop não é necessário, você pode pegar o maior valor no primeiro onde faz os inputs.
-
C++ Calculo INSS em c++ (Com erro nos valores acima do teto)
Midori respondeu ao tópico de Evandro Candido em C/C#/C++
@ZTM Onde errei? -
Excel VBA - Como fazer o IF ignorar algumas celulas ja preenchidas
Midori respondeu ao tópico de isabela queiroz em Microsoft Office e similares
Da forma que fiz, se tirar o +1 o código vai começar a atribuir a partir do nome da coluna. -
C++ Calculo INSS em c++ (Com erro nos valores acima do teto)
Midori respondeu ao tópico de Evandro Candido em C/C#/C++
@Evandro Candido Nas suas condicionais a variável inss já recebe o valor que deve ser abatido do bruto na atribuição de sal_liquido. Então não é a diferença que deve atribuir a inss, mas o valor desse desconto: inss = 621.04. -
Excel VBA - Como fazer o IF ignorar algumas celulas ja preenchidas
Midori respondeu ao tópico de isabela queiroz em Microsoft Office e similares
Nesse caso pode atribuir a última linha da planilha para fazer o loop até ela. Dependendo da tabela pode ser com CurrentRegion ou então UsedRange, p.ex, Sub Main() Const PREFIXO As String = "245897-" Dim Item As Range Dim Linha As Long Set Item = Cells.Find( _ What:="Add item", LookIn:=xlValues, LookAt:=xlWhole) If Not Item Is Nothing Then For Linha = Item.Row + 1 To ActiveSheet.UsedRange.Rows.Count If Item(Linha).Value <> "" Then If Left(Item(Linha).Value, Len(PREFIXO)) <> PREFIXO Then Item(Linha).Value = PREFIXO & Item(Linha).Value End If End If Next Linha End If End Sub -
C++ Calculo INSS em c++ (Com erro nos valores acima do teto)
Midori respondeu ao tópico de Evandro Candido em C/C#/C++
@Evandro Candido Constantes decimais em C++ são double então envite comparar constantes desse tipo com float como fez. Isso pode levar a erros em testes condicionais, p.ex, int main(void){ float valor = 0.01; if(valor == 0.01){ cout << "Igual\n"; }else{ cout << "Diferente\n"; } return 0; } Esse código vai retornar "Diferente", para evitar isso você pode declarar a variável como double ou então fazer uma conversão da constante com cast ou colocar 0.01f (f no valor). Para testar a tabela dos valores não precisa colocar o intervalo, basta fazer um teste de cada, if(salario <= 1693.72){ }else if(salario <= 2822.90){ }else if(salario <= 5646.80){ ... No caso do desconto, o valor não devia ser só abatido do salário em vez de atribuir a diferença para a variável inss? -
Excel VBA - Como fazer o IF ignorar algumas celulas ja preenchidas
Midori respondeu ao tópico de isabela queiroz em Microsoft Office e similares
@isabela queiroz Está faltando várias linhas de código aí. Cadê o While, o Set Item, o If Not Item? Acrescente a condicional no seu primeiro código. -
Excel VBA - Como fazer o IF ignorar algumas celulas ja preenchidas
Midori respondeu ao tópico de isabela queiroz em Microsoft Office e similares
@isabela queiroz Como o seu código não tem nenhuma condição no loop para concatenar "245897-" com o valor da célula, isso será feito para qualquer uma. Por isso você precisa testar antes se o valor já começa com "245897-". É isso que estrutura que postei faz. Veja que usei duas funções de string, Left e Len, para verificar se o código já faz parte do início do valor da célula
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