Ir ao conteúdo

Midori

Membro Pleno
  • Posts

    3.601
  • Cadastrado em

  • Última visita

Tudo que Midori postou

  1. @LucasExcel Para converter em número use a função Val no TextBox, Sheets("Tabela dinamica - Volume").[I2] = Val(TextBox3)
  2. @LucasExcel No botão atribua os valores dos Text a essas células, p.ex Private Sub CommandButton1_Click() Sheets("Dash").[X4] = TextBox1 Sheets("Dash").[X5] = TextBox2 Sheets("Tabela dinamica - Volume").[I2] = TextBox3 End Sub
  3. @Loclyh Você pode usar uma fórmula. Se os nomes começarem em A1 p.ex, cole a fórmula em B2 e arraste até a última linha, =SE(A1="";"";B1&SE(B1="";"";";")&A1) Mas se quiser deixar mais automático pode ser feito com uma macro.
  4. A função Split quebra a string Registro e retorno um vetor com as partes separadas por ;. UBound vai retornar o tamanho desse vetor. Peguei o ; como separador porque parece ser o padrão de colunas do seu arquivo. Para organizar o código e facilitar a comparação acho melhor você atribuir variáveis com os nomes dos campos em vez de usar só Split, p.ex. Type Cadastro Nome As String EstadoCivil As String Idade As String Codigo As Variant End Type Sub Importa_Txt() Dim C As Cadastro Dim Registro As String Dim Arquivo As Variant Dim L As Long Dim U As Integer Arquivo = Application.GetOpenFilename("Arquivo de Texto (*.txt),*.txt", Title:="Escolha o arquivo desejado") Open Arquivo For Input As #1 L = 5 Do Until EOF(1) Line Input #1, Registro U = UBound(Split(Registro, ";")) C.Nome = Split(Registro, ";")(0) C.Idade = Split(Registro, ";")(1) C.EstadoCivil = Split(Registro, ";")(3) C.Codigo = "" If U >= 20 Then If Split(Registro, ";")(20) = "999" Then C.Codigo = CDbl(Split(Registro, ";")(11) / -100) End If If U >= 22 Then If Split(Registro, ";")(22) = "999" Then C.Codigo = CDbl(Split(Registro, ";")(11) / 100) End If If C.Codigo <> "" Then L = L + 1 Cells(L, 1) = C.Nome Cells(L, 2) = C.Idade Cells(L, 3) = C.EstadoCivil Cells(L, 4) = C.Codigo End If Loop Close #1 End Sub
  5. @Kleber Bispo Veja nessa linha do arquivo tem as colunas referentes aos índices 20 ou 22. Se for o caso você pode usar Ubound para evitar esse erro, p.ex U = Ubound(Split(Registro,";")) If U >= 22 Then If Split(Registro,";")(22) = "999" Then ... Obs: Já que você está usando #1 em Open, devia usar apenas esse número. Se quiser usar a variável I pode substituir onde tem 1 para I.
  6. Midori

    C Como imprimir 0 em C?

    Nesse exercício a entrada pode ser string, Na saída você pode usar um loop para verificar e imprimir os caracteres ou apenas ir para a próxima linha no caso da pontuação, p.ex for(i=0;i<14;i++){ if(i==3 || i==7 || i==11) printf("\n"); else printf("%c",cpf[i]); } printf("\n");
  7. @Kleber Bispo #1 é o identificador do arquivo, poderia ser uma variável no lugar do 1 ou outro número se quiser abrir mais de um sem fechar o anterior. Para abrir vários você pode ir fechando o que estiver aberto (Close #1) antes de abrir o próximo.
  8. @Kleber Bispo Edite o caminho correto do arquivo e índice do campo se for preciso. Neste caso o índice 0 é nome, 1 idade e 3 estado civil Sub Macro() Dim Registro As String Dim L As Long Open "C:\Exemplo.txt" For Input As #1 Do Until EOF(1) Line Input #1, Registro If Split(Registro, ";")(3) = "solteiro" Then L = L + 1 Cells(L, 1) = Split(Registro, ";")(0) Cells(L, 2) = Split(Registro, ";")(1) Cells(L, 3) = Split(Registro, ";")(3) End If Loop Close #1 End Sub
  9. @Tiago07 No segundo teste OR/OU faltou comparar com o operador ===. if (campeonato === "Brasileiro 2014" || campeonato === "Brasileirão 2014") { alert("Campeão: Cruzeiro - Vice: São Paulo"); } else if (campeonato === "Brasileiro 2015" || campeonato === "Brasileirão 2015") { alert("Campeão: Corinthians - Vice: Atlético MG"); ... E no último teste é apenas else.
  10. @Mazinhaa Coloque o aviso no cabeçalho e ao lado adicione o campo Page em Inserir um Campo
  11. @Misael Meireles Barbosa Pode ser feito no evento KeyDown assim, Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 40 And ListBox1.ListIndex = ListBox1.ListCount - 1 Then ListBox1.ListIndex = 0 KeyCode = 0 End If End Sub
  12. @Douglas ianes Use a função replace, p.ex Replace(Rng(r, 2) , "/", "-")
  13. @yasmim7 Para exibir a quantidade de vezes que determinada letra foi digitada, você pode usar um vetor de char que represente uma tabela ASC para armazenar essa informação, p.ex. int main(){ char c, aux[256]={0}; while((c=getchar()) != '\n'){ aux[c]++; } printf("O caractere 'a' foi digitado %d vezes", aux['a']); return 0; } No vetor o caractere a é a posição 97. Dessa forma também é fácil exibir em um loop a quantidade de todos os caracteres digitados.
  14. @Cyfer Tire esse ; que está na primeira linha após <iostream>. Deve ser isso.
  15. @laoni Você pode testar condicionalmente um por um ou usar For Each, p.ex. For Each C In Me.Controls If TypeName(C) = "TextBox" Then If C = "" Then MsgBox "Campo obrigatório" [...]
  16. Use a função IsDate para verificar o texto do Combo, If IsDate(UserForm1.cbCadComprouDia.Text) Then Sheets("Clientes").Cells(Linha, "M") = CDate(UserForm1.cbCadComprouDia.Text) End If
  17. @Titan25566 Para interromper atribua False ao parâmetro Schedule. Isso vai gerar um erro então use On Error na sub do OnTime.
  18. Essas 4 planilhas no caso iriam como imagem no corpo do email?
  19. Com o Option definindo a coluna de pesquisa? Se for isso é só atribuir o índice da coluna a uma variável de acordo com o botão para usar em List, p.ex primeira linha da coluna atribuída: ListBox1.List(0, Variavel).
  20. @josequali Veja se o caminho da imagem está correto na coluna N. Tem que ser completo, p. ex: C:\Pasta\Imagem.jpg.
  21. @Tim Baster Com a função OnTime você pode chamar a própria Sub (em um Módulo) como fiz acima ou chamar outra que no fim da execução chamará a sub do tempo, p.ex, Estas subs tem que estar em um Módulo (Inserir > Módulo). Sub EnviarEmail() Dim WH As Worksheet Dim OutProg As Object Dim OutMail As Object Dim OutApp As Object Set WH = Planilha1 Set OutProg = CreateObject("Outlook.Application") Set OutMail = OutProg.CreateItem(0) Application.ScreenUpdating = False WH.Select [...] Call Tempo End Sub Sub Tempo() Application.OnTime Now + TimeValue("01:00:00"), "EnviarEmail" End Sub Esta pode ficar em um módulo de planilha ou formulário se for o caso, Private Sub btEmail_Click() Call Tempo End Sub
  22. @Ozuma-Urashima Edite o caminho do documento (neste caso é "C:\Modelo.docx") e o texto em TypeText. Dim W As Object Set W = CreateObject("Word.Application") W.Documents.Open "C:\Modelo.docx" W.Selection.TypeText "DECLARAMOS... O SR" & [B3] & ", DA EMPRESA " & [C3] W.Visible = True
  23. @Tim Baster Com a função OnTime p.ex para enviar a planilha a cada 1h, Sub Macro() Application.OnTime Now + TimeValue("01:00:00"), "Macro" ThisWorkbook.SendMail "[email protected]", "Assunto" End Sub
  24. @Malcolm X Como fgets também pega '\n' no input, a função strlen vai considerar esse caractere. Além disso no seu loop você vai considerar 0 como o primeiro índice. Na atribuição de c, tire 2. c = strlen(str) - 2; E no loop o critério de parada deve ser, i<strlen(str)-1 Outra forma de resolver poderia ser assim, int main(){ char str[30]; int i = strlen(fgets(str,30,stdin))-1; while(i--){ printf("%c",str[i]); } return 0; }
  25. @Emerson Brasil Pode ser feito com macro para copiar e colar a imagem após digitar o número.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!