-
Posts
843 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por daviddatal
-
-
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?
-
-
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.
-
Obrigado também, @Edson Luiz Branco. Vou analisar suas contribuições.
Por hora, eu fiz uns pequenos ajustes no código, compartilho com vocês como ficou. Indiquei células para o usuário digitar o texto procurado e o texto substituto, entre alguns outros pequenos detalhes. Caso tenham sugestões ou melhorias, podem informar.
- 1
-
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.
-
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-statementEntendi.
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?
-
@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. -
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!
-
@Muca Costa Eu que agradeço.
Esses hifens eu colocava quando terminava de ver um vídeo, mas agora quero "zerar" para revê-los.
Estou lendo o livro "Programando o Excel Vba Para Leigos - 2ª Ed 2013", simples mas está ajudando muito.
Você indica algum outro material/canal de vídeos?
-
6 minutos atrás, Muca Costa disse:
se tirar o espaço, vai ficar assim
Aula 69 - Geometria Espacial Métrica - Cilindros Pate 1.avi
ou seja, com dois espaços antes de Geometria
Deu certo aqui, troquei "----- " por "-----".
Ficou somente um espaço entre o último hífen e Geometria, no seu exemplo.
-
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.
-
Creio que o ajuste deva ser feito na Sub Excluir().
Em que momento os arquivos da pasta são, de fato, renomeados?
-
@Muca Costa Consegui aqui com outro programa. Testei, mas pelo visto o código não retirou os hifens.
-
@Muca Costa O arquivo está corrompido.
-
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".
-
-
Olá,
Quando abro o VBE, ele carrega algumas janelas de objetos como planilhas, módulos e objetos da pasta Personal. Mesmo que antes de encerrar o VBE e feche todas as janelas, ao abrir de novo ele carrega as janelas da pasta Personal, por exemplo.
Gostaria de inserir algum código para que o VBE carregue apenas as janelas que eu deseje.
-
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)
-
Habilitei o suplemento Solver no Excel, mas ao tentar visualizar ele no VBE, pede uma senha. Qual é essa senha?
-
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:
Alguém sabe qual leitor pdf android e qual opção dele faz isso?
-
Gostaria de saber como inserir um comentário intercalado, como no exemplo abaixo:
CÓDIGO 'comentário CÓDIGO
ou seja, o comentário fica no meio de uma mesma linha de código.
-
24 minutos atrás, K3RBUS04 disse:
@daviddatal qual modelo de aparelho seu? (mais uma vez reforçando caso der brick mexendo em algo que não deveria ter mexido tera que instalar a room totalmente de novo).
Para mim é tranquilo. Tenho prática em informática. Meu telefone é um Xiaomi redmi 8 pro.
-
6 minutos atrás, K3RBUS04 disse:
@daviddatal somente com a permição root (mais saiba o que esta fazendo porque pode dar brick no aparelho).
O que precisa fazer para ter a permissão root?
-
Ola,
Tenho um smartphone com android, uso um gerenciador de arquivos nativo dele mas não consigo ver a pasta de instalação com os arquivos de um aplicativo específico.
Como fazer para visualizar as pastas desses aplicativos que não aparecem no gerenciador?
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
Ajustar a legenda à margem esquerda da imagem no word
em Microsoft Office e similares
Postado
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: