Ir ao conteúdo

Midori

Membro Pleno
  • Posts

    3.601
  • Cadastrado em

  • Última visita

Tudo que Midori postou

  1. @Fabio Luis Para remover o botão passe o nome dele para Shapes, p.ex Sheets("Planilha1").Shapes("CommandButton1").Delete
  2. Esse tópico está duplicado,
  3. Já que está resolvido, outra forma de fazer poderia ser assim, Na função usei três loops: No primeiro incremento o ponteiro para o endereço do fim da primeira string e aloco memória calculando a diferença desse endereço para o da primeira string + n; Já nos outros dois loops faço a atribuição dos caracteres para a nova string que será retornada pela função. #include <stdio.h> #include <stdlib.h> char *concatenar(char *p1, char *p2, int n){ char *p, *nova = p1; while(*nova++){} nova = p = (char *)malloc((nova - p1) + n); while(*p1){*p++ = *p1++;} while(n--){*p++ = *p2++;} *p = 0; return nova; } int main(){ char p1[50], p2[50]; int n; scanf("%s %s %d",p1,p2,&n); printf("%s\n",concatenar(p1,p2,n)); return 0; }
  4. @tt_branco Algumas melhores que podem ser feitas: Usar a função Find em vez de um loop para procurar os valores; Criar apenas uma Sub com parâmetros para passar o controle e o número da busca. Como não tenho a planilha para testar, talvez seja preciso fazer alguma adaptação, Private Sub BtnVerificar_Click() Dim L As Object For Each L In Me.Controls If TypeName(L) = "Label" Then If Left(L.Name, 1) = "Q" Then Call Verificar(Replace(L.Name, "Q", ""), L) End If End If Next L End Sub Sub Verificar(Numero As String, Label As Object) Dim R As Range Set R = Sheets("Planilha1").[C:C].Find(Numero, , xlValues, xlWhole) If R Is Nothing Then Label.Caption = "Disponivel" Else Label.Caption = "Indisponivel" End If End Sub
  5. @Jose_Luiz Para saber se são coprimos crie a função MDC (máximo divisor comum) e passe o valor da linha e coluna como argumento da função.
  6. Depois das correções apontadas pelo @V!OLADOR, crie um loop que vai de 2 até 10 para exibir todas esses potências. Com duas variáveis faça os incrementos no loop para passar os valores delas como argumento da sua função potencia.
  7. Outra forma de resolver, No primeiro o loop ir até o quadrado do número digitado e nos testes verificar os módulos para imprimir o caractere. É mais por curiosidade, acho que eu não entregaria esse tipo de exercício assim. Em termos de processamento talvez não seja tão eficiente quanto dois loops por ter que calcular o quadrado e testar os módulos? #include <stdio.h> int main(){ int i = 0, n; scanf("%d",&n); while(++i<=(n*n)){ if(!((i - 1)%(n + 1))){ printf("+"); }else{printf("*");} if(!(i%n)){printf("\n");} } return 0; } No segundo o contador do loop mais interno vai até ser <= o do primeiro, int main(){ int i = 0, j = 0, n; scanf("%d",&n); while(++i<=n){ while(++j<=i){ printf(" %d",j); } j = 0; printf("\n"); } return 0; }
  8. Outra forma de resolver, void inverter(char *palavra, char *invertido){ int i = strlen(palavra), j = 0; char *aux = (char *)malloc(i); aux[j++] = ' '; invertido[i] = 0; while(i-->0){ aux[j++] = palavra[i]; invertido[i] = ' '; if(palavra[i - 1] == ' ' || !i){ j = aux[j] = 0; while(aux[++j]){ invertido[i - 1 + j] = aux[j]; } j = 0; } } free(aux); }
  9. @Jose_Luiz Na segunda só precisa de uma condição para imprimir (j) se no loop mais interno j<=i.
  10. @Paschoaltavares No arquivo são 6 colunas. Aí ficariam 2 com data e ação, não é isso? Dá para fazer com macro.
  11. @Rafael nunes da silva Declare a variável Contador publicamente no formulário e no Initialize inicie o controle assim, Dim Contador As Integer Private Sub UserForm_Initialize() Contador = 1 TextBox_Pallet.Text = Contador End Sub Aí no Click do botão é só incrementar a variável, Private Sub Button_Inserir_Click() ... Contador = Contador + 1 TextBox_Pallet.Text = Contador TextBox_Item.SetFocus End Sub Você também pode desabilitar o Textbox do contador para impedir a digitação.
  12. @Matheus Sena Deixe a Macro no módulo e chame a sub no botão, p.ex No Módulo (onde o Excel cria Módulo1, 2, etc), Sub Macro() Sheets("Tabela Filas").Select Range("F2:F48").Select ... No Botão, Private Sub CommandButton1_Click() Call Macro End Sub
  13. Se o botão está em outra planilha/aba pode acontecer esse erro.
  14. @Jose_Luiz No primeiro exercício apenas um input é necessário (n). Para exibir o caractere + você pode incrementar outra variável int e comparar com o contador do loop mais interno e imprimir + se for igual e * se diferente. O segundo exercício tem erro de compilação, veja as mensagens do compilador.
  15. Dê mais detalhes. Como tentou aplicar? Deu algum erro? Qual? Conforme descrição do seu post, testei aqui e funcionou e a solução do @deciog com fórmula também.
  16. Midori

    C Fatorial da Matriz A

    @Duda1001 Para exibir em ordem você pode usar algum algoritmo de ordenação como o bubble sort.
  17. @Giovanna Moreira No código está comentando da forma errada e assim não vai compilar, corrija os comentários, p.ex /Tamanho da string/ Para, /* Tamanho da string */ Ou, // Tamanho da string Eu acho que você podia tirar esse loop e verificar se alguma letra é minúscula na própria função, p.ex, if(*origem >= 'a' && *origem <= 'z') *destino=*origem-32; else *destino=*origem; Obs: Não é recomendável usar gets, é melhor fgets que limita o tamanho da string.
  18. @Matheus Sena Não copiei a coluna B inteira, só as linhas com valores sem considerar alguma célula em branco entre eles. Sub Copiar() [A:A].Copy ([C1]) If [B2] <> "" Then [B:B].Resize([B:B].End(xlDown).Row).Offset(1).Copy ( _ [C:C].End(xlDown).Rows.Offset(1)) End If [C:C].RemoveDuplicates 1 End Sub
  19. @Robert862422 Usando a célula A1 para atribuir a cor, o Initialize do Form pode ficar assim, Private Sub UserForm_Initialize() If [A1] <> "" Then Me.BackColor = [A1] End Sub E os botões, supondo que sejam para colorir de azul ou vermelho. Private Sub Azul_Click() [A1] = vbBlue Me.BackColor = vbBlue End Sub Private Sub Vermelho_Click() [A1] = vbRed Me.BackColor = vbRed End Sub
  20. @seninhe Se anexar um modelo da planilha vai ficar mais fácil ajudar. Mas para apagar do Listview é como você fez no primeiro post: ListViewEntradas.ListItems.Remove. Para apagar da planilha depende de como os dados são carregados no listview, se for por ordem de linha é mais fácil e melhor que apagar e recarregar como comentei acima. Supondo que a primeira linha do ListView começa a receber os dados a partir da terceira linha da planilha, para apagar os registros ficaria assim, Private Sub BtnDelete_Click() ListViewEntradas.ListItems.Remove ListViewEntradas.SelectedItem.Index Rows(ListViewEntradas.SelectedItem.Index + 2).Delete End Sub
  21. @Matheus Sena Sub Copia() Sheets("Plan1").[G:G].Copy (Sheets("Plan2").[B:B]) End Sub
  22. @Rafael nunes da silva Você pode criar uma sub para desbloquear as teclas e no evento Workbook_SheetActivate (em EstaPasta_de_trabalho) usar o nome da planilha como critério para chamar as macros, p.ex, Private Sub Workbook_SheetActivate(ByVal Sh As Object) If Sh.Name = "Plan1" Then Call Desabilitando_Numeros Else Call Habilitando_Numeros End If End Sub
  23. @seninhe Talvez seja mais fácil você apagar os dados da planilha e depois atualizar o listview com os que restaram (pegando os dados novamente como fez antes).
  24. @Boi com Orgulho Se possível anexe um modelo da planilha, assim facilitar para quem tentar te ajudar.
  25. @Rafael nunes da silva Tente desabilitar com OnKey as teclas de 96 a 105, Sub Macro() Dim I As Integer For I = 96 To 105 Application.OnKey "{" & I & "}", "" Next I End Sub

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!