Ir ao conteúdo
  • Cadastre-se

daviddatal

Membro Pleno
  • Posts

    843
  • Cadastrado em

  • Última visita

posts postados por daviddatal

  1. Olá,

     

    Gostaria de saber como ajustar (automaticamente) o título ou a fonte de uma imagem pela margem esquerda dessa imagem, no word.

    Sei que posso alinhar o título à esquerda e depois dar uns espaços até o texto ficar alinhado com a margem esquerda da foto. Mas como fazer isso automaticamente?

    Pois caso eu estique as fotos, terei que realinhar todo outra vez.

    Eu uso a ferramenta "Inserir Legenda" da guia referências, talvez por lá tenha algum controle nesse sentido... ou usando VBA.

    Segue um exemplo de como deve ficar o título, alinhado à esquerda:

     

    image.png.3603abc3bb18c1d75af6304dc326b9ba.png

  2. Olá,

     

    Recebi um documento que tem níveis de entrada da guia referências. Ocorre que não consigo excluir esses níveis, eu coloco "não mostrar no sumário" mas não sai, continua marcado lá "Nível 1". Além disso, quando tento inserir um nível em outro local ele não adiciona. Em outros documentos, essa ferramenta funciona normalmente.

    O que devo fazer para eliminar esses níveis?

  3. 8 horas atrás, Edson Luiz Branco disse:

    Como uma orientação ao colega @daviddatal, já que ele está em processo de aprendizagem de VBA, se fosse lhe dar um conselho diria que sua primeira fonte de pesquisa é o Help do VBA relativo ao próprio VBA ou às classes de objetos que você está manipulando, como o aplicativo Excel, por exemplo (bons tempos aqueles em que o help não era online, a pesquisa era muito mais simples e certeira).

    Senão vejamos: em sua primeira pergunta anteriormente, 

     

    Se você der uma olhada no help para o método Replace do objeto Range do Excel, lá mostra qual o retorno desse método:

     

     

    Então a variável c1 usada pelo colega @Muca Costa conterá um valor True ou False, dependendo do retorno da operação de substituição. Na verdade nesse caso seria dispensável, pois você não utilizará esse retorno mais à frente em seu código. Então, lembrando de retirar os parênteses, poderia usar apenas:

     

    
    
    Cells(repete, "B").Replace "iii", "kkk", xlPart

     

    Lembrando que os Métodos em VBA executam alguma coisa e se assemelham a uma Sub, portanto nem sempre precisamos utilizar seu retorno, embora algumas vezes isso pode ser muito útil. Por exemplo, você pode simplesmente abrir um arquivo Excel usando o método Open dessa forma:

       Workbooks.Open "Teste.xlsx"

     

    Por outro lado, você pode aproveitar que está abrindo e já colocar o Workbook que vai ser aberto numa variável de objeto pra ser usada mais à frente em seu código:

       Dim wb As Workbook  'ou As Object

       Set wb = Workbooks.Open("Teste.xlsx")

     

    Atenção novamente ao uso dos parênteses quando você está fazendo atribuição.

    _________________________

    Quanto à pergunta:

     

     

    A biblioteca Microsoft Scripting Runtime presente na dll scrrun.dll é que fornece a classe FileSystemObject, a qual é muito útil para manipular arquivos e pastas em unidades de disco. Portanto, ao criar uma instância dessa classe como na instrução acima, você está criando um objeto para manipular arquivos, seja para mover, renomear, criar, deletar, recuperar informações de tamanho, tipo, atributos e tudo o mais que refere-se a arquivos e pastas. Tenha em mente que isso está num objeto externo ao Excel e ao VBA, uma ferramenta à mais que está ali, disponível para uso para essa finalidade.

     

    Realmente o Help do VBA é de grande ajuda, estou sempre consultando ele.
    Pena que não tem para baixar, se tivesse eu iria fazer um índice tópico por tópico para realizar consultas futuras.

     

    Percebi que até o momento de capturar o caminho da pasta onde estão os arquivos, não precisa dessa biblioteca Microsoft Scripting Runtime. Fiquei pensando em outra maneira de manipular arquivos sem usar essa biblioteca, algo mais simples talvez. Pois basta colocar, por exemplo, Name CaminhoDoNomeAntigo As CaminhhoDoNomeNovo que o VBA renomeia. Agora preciso saber se existe também alguma instrução/palavra chave que consiga capturar o nome dos arquivos em uma pasta, sem recorrer à criação de objetos.

  4. 1 hora atrás, Muca Costa disse:

    1) PERGUNTA:
    A Sub Excluir é uma macro independente, não tem nada com a Sub Listar_arquivos. É só pra auxiliar no resultado final...

    2) PERGUNTA:
    Dá uma pesquisada...

    Obrigado. Cogitei a possibilidade do trecho da Sub Excluir ter relação com a Sub principal pelo fato da Excluir está sendo solicitada na principal...

    Mas eu sei que cada Sub tem sua independência, a menos que variáveis sejam dimensionadas como Public ou no espaço de declarações (antes das Subs).

     

    Testei a instrução Name especificando diretamente o CAMINHO + nome do arquivo atual As CAMINHO nome novo do arquivo novo. Então essa instrução independe do código anterior. Só com isso, já é possível renomear os arquivos.

    Mas seu código é de grande ajuda porque faz isso dinamicamente.

     

    Muito obrigado.

     

  5. 1 hora atrás, Muca Costa disse:

    1) DÚVIDA
    - Se tiver outros caracteres a excluir, ficaria c1, c2,.....
    c1 = Cells(k, "B").Replace("----- ", "", xlPart)
    c2 = Cells(k, "B").Replace("- ", "", xlPart)
    ............................................................

    2) DÚVIDA
    - Veja aqui: https://docs.microsoft.com/pt-br/office/vba/language/reference/user-interface-help/name-statement

    Entendi.

    1) PERGUNTA:

    Então c1, c2, etc são parâmetros de quem? De objFile.Name lá da Sub Listar_arquivos()?

     

    2) PERGUNTA:

    Set objFSO = CreateObject("Scripting.FileSystemObject") serve para criar uma pasta temporária?

     

  6. @Muca Costa, Tenho  duas perguntas e gostaria que você me respondesse:

     

    1) DÚVIDA
    Na Sub Excluir(), na linha de renomear os arquivos, gostaria de entender para que serve esse c1 no começo, é uma variável qualquer? Ou um item de algum objeto?
    c1 = Cells(repete, "B").Replace("iii", "kkk", xlPart)

     

    2) DÚVIDA
    Na Sub Renomear_Arquivos, na última linha,
    Name NomeAntigo As NovoNome
    de onde vem essa palavra name? Pertence a algum item da Sub ListarArquivos()? Explica essa parte se possível.

  7. 1 minuto atrás, Muca Costa disse:

    Na realidade sou um autodidata, vou na coragem me aventurando em VBA(Access, word, Excel), Python, LibreOffice, ...
    Minhas maiores fontes de pesquisas são participar de Fóruns(perguntando e/ou respondendo) e, principalmente, Internet...

    Boa sorte.

    Obrigado. Eu também sou autodidata, sou matemático mas gosto de programar nas horas vagas.

    Se surgirem outras questões sobre VBA irei postar aqui, espero que veja sempre que possível.

    Abraço!

  8. 5 minutos atrás, Muca Costa disse:

    Não sei como está procedendo, mas aqui funcionou perfeitamente.

    Testei com três arquivos word:

    Aula 69 - ----- Geometria Espacial Métrica - Cilindros  Pate 1.docx

    Aula 69 - ----- Geometria Espacial Métrica - Cilindros  Pate 2.docx

    Aula 69 - ----- Geometria Espacial Métrica - Cilindros  Pate 3.docx

    A macro renomeia para:

    Aula 69 - Geometria Espacial Métrica - Cilindros  Pate 1.docx

    Aula 69 - Geometria Espacial Métrica - Cilindros  Pate 2.docx

    Aula 69 - Geometria Espacial Métrica - Cilindros  Pate 3.docx

    Deve ser porque no seu tem um espaço entre o último hífen e o restante do texto. Vou testar aqui colocando:

    c1 = Cells(k, "B").Replace("-----", "", xlPart)

    Deu certo!

    Muito obrigado, @Muca Costa!

     

    Agora vou analisar detalhes do seu código, sou iniciante em VBA.

  9. Gostaria de saber se é possível programar em VBA para alterar o nome de arquivos em uma pasta qualquer.

    Por exemplo, retirar os traços "-" repetidos de todos os arquivos como mostra na foto.

    No caso do arquivo "Aula 69 - ----- Geometria Espacial Métrica - Cilindros  Pate 1.avi", ficaria:

    "Aula 69 - Geometria Espacial Métrica - Cilindros  Pate 1.avi".

    asdf.png

  10. 3 horas atrás, Edson Luiz Branco disse:

    Boa tarde, @daviddatal

     

    O Solver presente no Excel pertence à Frontline Inc. cujo suplemento SOLVER.XLAM não é de código aberto. Por pertencer à terceiros, portanto não é legalmente possível sua visualização. Entretanto, você pode utilizar todos os métodos, funções, objetos dele no VBA. Mas para isso, tem de fazer referência ao projeto:

    No VBE, menu Ferramentas > Referências > procure por e marque Solver. À partir de então, já pode usar os objetos normalmente, ex. Solver.SolverAdd(... , ...) ou simplesmente SolverAdd(... , ...) etc.

    Obrigado, Edson. Se possível responde outra pergunta que tenho relacionada ao VBA, gostaria de intercalar um comentário no meio do código na mesma linha, algo do tipo:

    ActiveCell.Value = 'COMENTÁRIO (com algum símbolo complementar) Application. _ WorksheetFunction.VLookUp(cel, range, 3, 0) 

  11. Gostaria de saber como criar índice em arquivos pdf através de algum leitor pdf android.

    Quando eu quiser marcar um novo capítulo, por exemplo, copio o texto do capítulo e salvo no índice, para que depois eu possa rapidamente acessar o capítulo.

    Faço isso no computador, conforme imagem abaixo:

     

    asdf.png

     

     

    Alguém sabe qual leitor pdf android e qual opção dele faz isso?

     

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