Meu amigo, conteúdo muito relevante e que não envelhece! Estava utilizando outras APIs bem trabalhosas apenas para minimizar, e ainda assim só funcionavam bem com a planilha dentro do computador, já com esse módulo ela funcionou com a planilha salva na rede da empresa, logo todos que acessarem terão o mesmo resultado. Muito obrigado por compartilhar.
Que notícia ótima, a ideia da criação do canal foi exatamente essa, poder ajudar outros. As vezes funciona, as vezes não, mas muito obrigado pelo seu comentário.
Perspectiva Ativa, fico muito feliz em ler seu comentário, isso me dá ânimo para seguir compartilhando mais conteúdo. Abraço e obrigado por inscrever-se no canal, volte sempre.
Damião, eu que agradeço seu comentário, a ideia base do canal é essa, compartilhar conhecimento e auxiliar os demais. Abraço e obrigado por inscrever-se no canal, volte sempre.
Sucesso! E se puder, compartilhe o link do canal com seus amigos, talvez haja mais pessoas precisando deste ou dos outros vídeos que temos aqui no canal.
Muito obrigado, Alexandre Divino!! Alexandre, se ainda não é, faça sua inscrição, se já for, muito obrigado pela força e dá uma passada pelas playlists do canal, tem muita coisa legal. Abraço.
Vou sim com certeza esse conteúdo excelente de grande valia estou procurando adaptar no meu useforms , mais deve ter mais coisas edificantes vou verificar sim parabéns , algo que não tive em curso que fiz mais com vc estou aprendendo.
Parabéns meu amigo, o seu código foi o único que funcionou perfeitamente sem nenhum erro de depuração, e olha que eu procurei incansavelmente na internet. Parabéns mesmo! Mais 1 inscrito!
Parabéns, excelente vídeo e ótima explicação! Atualizei o meu formulário e tudo funcionou direitinho. Claro que tive que declarar todas as variáveis depois por causa do Option Explicit, mas deu tudo certo no final.
Você foi simplesmente sensacional. Muito obrigado, ajudou muuuito. Ganhou meu like e minha inscrição. Que Deus continue te abençoando sempre por compartilhar seu conhecimeto. Ajudando o próximo.;) Fiquem com Deus todos vocês!!!
Poxa, valeu pelo comentário e pela inscrição. A ideia é sempre poder ajudar os outros "loucos" por #Excel. Abraço e segue aí, logo, logo tem mais vídeo novo no ar.
Valderei, estava procurando por isso há mt tempo e finalmente encontrei. Muito obrigado! Agora os userforms ficarão com aspecto profissional. Um abraço!
Obrigado +Italo Silva Cordovil!!! Fico muito feliz em poder ajudar, se puder ajudar o canal fazendo sua inscrição (caso não tenha feito ainda) e divulgando o conteúdo com seus amigos, ficarei grato. Abraço e sucesso!!
Já deixei o meu Like Professor e estou compartilhando com todos os amigos e grupos. Sempre assisto aos seus videos para me inspirarem a colocar as minhas idéias para se desenvolverem. Muito Obrigado o UA-cam precisande mais pessoas como o senhor e outros que buscam a ajudar a comunidade do VBA a crescer e vamo q vamo... #TopArmagedomSystem
Oi amigo, coloque também um txt com texto do código do módulo e descrição das finalidade. Esse que os programadores usam para análises. Parabéns pelo trabalho.
Olá Valderei.... Oborgado pela dica... ajudou muito... No meu formulário deu quase tudo certo..somente a parte de deixar a planilha livre que não funcionou.. vc saberia dizer se tem como usar o excel ao mesmo tempo que um userform esta processando? o meu userform toma de 3 a 5 minutos para rodar e faz isso continuamente lendo arquivos numa pasta... porém enquanto processa ele trava o excel.. poderia me ajudar ?obrigado
Diogo, tudo bem!! Infelizmente não há algo a ser feito, o Excel acaba realmente deixando tudo travado enquanto um processo esteja sendo rodado, a única saída é aguardar mesmo.
Boa noite. Muito legal esse video. Essa opção de aumentar ou diminuir o formulário é muito legal. Achei essa aula somente agora... Será que tem atualização? Como adaptar isso aos meus formularios sem ter que acrescentar as variáveis mencionadas... De qualquer forma, obrigado. Vou achar uma forma de adaptar...
Cara, muito obrigado por compartilhar esse código editado para a versão x64 do windows. Mais fodão ainda é quem conseguiu fazer a conversão/adaptação. Realmente, é um problema esse negócio de livrarias diferentes, tem códigos muito úteis (como o que ativa o botão scroll do mouse) que não rodam no meu windows x64. Queria conseguir converter também... Obrigado!
Fala +Pedro Jhonata, fico feliz em poder ajudar, pois este é o verdadeiro motivo da criação deste canal. Com relação a adaptação do código original, esta foi feita por mim mesmo, e em alguns casos é relativamente fácil, basta apenas adicionar a instrução "PtrSafe" nas declarações. Ex: Declare PtrSafe Function. Porém em alguns casos realmente não há como utilizarmos os projetos feitos em x86 nos x64. Sobre o assunto da rolagem do mouse, vou ver se encontro algo que possa te ajudar. Abraço e confira também os demais vídeos que o canal.
Então, +Pedro Jhonata, fiz o teste e realmente ele não funciona sem algum tipo de descrição no "Caption", tudo isso porque o código chama no Initialize a função Me.Caption para poder movimentar o objeto. Fica a dica para todos então, o userform não pode ficar com a propriedade Caption vazia!!
Mateus, tudo bem. Você deve estar com o evento modal ativado no teu formulário, isso não permite o acesso ao Excel quando o formulário está ativo. Testa e me retorna.
Felipe, creio que seja necessário adicionar este ou algo do gênero na imagem também, assim ela será redimensionada junto, o código é aplicado nos controles e no formulário.
Excelente, parabéns, gostaria de saber como eu poderia fazer para abrir o formulário para ver um tamanho menor desde que ao colocar o código, meu pequeno formulário se torna grande ocupando a tela inteira, você poderia me ajudar muito
@@valdereiantunes sim, originalmente, meu formulário é pequeno quando eu o executo, mas quando eu coloco seu código, meu formulário é ampliado em quase toda a tela da área de trabalho, então o que eu quero é que ele apareça conforme o projetei no VBA. Obrigado!
@@proyecto2148 você deve apenas comentar as seguintes linhas: ' Me.Height = Application.Height ' Me.Width = Application.Width dentro do módulo Initialize, isso fará com que seu formulário inicie no tamanho normal. Se der certo para você, comenta aqui.
@@proyecto2148 baixa novamente o arquivo que tem no link do vídeo, eu alterei ele lá, testa no teu computador e veja como irá se comportar. Qualquer coisa, comenta aqui.
Hola Profesor, Excelente vídeo. En mi caso debí poner el atributo PtrSafe. Tiene usted las APi para cambiar el cursor del mouse a una mano cuando paso por encima de un CommandButton???. Agradezco me las pase. Y gracias por todo lo que nos comparte. Saludos desde Panamá
Olá Dignora...nunca tinha pensado nisso, mas fui atrás e encontrei um código que faz o que queres!!! Amanhã tem víde novo no canal e será a resposta para sua pergunta... Abraço e até amanhã.
No te hace falta, apis para eso, en propiedades del userfor o de cualquier Control, tien las opción de cambiar la forma del cursor, o incluir un icono, de 16x16 hasta 64X6, El icon lo adjuntas en la propiedad Mouse Icon y para que funcione en la propiedad Mousepointer select 99-frMousePointerCustom.... Sin necesidad de elegir un icon externo, desde Mousepointer tienes ya varios.
Tienes multitud de imagens en Google, y tiens conversores de imágenes a icon seleccionando las dimensiones. haciendo esto puedes poner el icon que te apetezca
Coloquei no meu projeto e ficou bom, MAS o listview de um dos UserForm não foi redimensionado. Pensei que aumentando a tela ele cresceria tbm aparecendo mais as informações sem precisar usar a barra de rolagem. ='(
Boa noite! tenho um projeto pronto só faltava desenvolver esses códigos de minimizar e maximizar, mas quando adiciono o código, a minha caixa de busca onde tem a opção de totaldelinhas da erro , como não tenha informado variável, mas quando tiro todo código adicionado funciona normal, professor poderia me ajudar como faço para deixar programado minha caixa de localização de dados e inserir esse código sem que me de esse erro? Desde já agradeço!
José Vagner. Cara olha só, tenta informar está variável quando inserir o código, já vi outras pessoas com o mesmo problema e só com a declaração da variável isso já foi resolvido.
Boa tarde, coloquei a função conforme ensinou. Ficou muito bom, mas não sei pq minhas listbox não estão funcionando, quando tiro a função, elas funcionam, quando coloco a função elas dão erro. Pode me informar o pq? Erro "Variável não definida" em todas as listboxs
Marcos, chegou a verificar se todas as tuas variáveis estão nomeadas? Ou talvez, uma variável desta função precise ser declarada. As vezes, é uma bobagem.
@@valdereiantunes Tudo bem? obrigado pelo retorno.. pelo que eu vi a forma que eu uso a combobox (não era listbox, me equivoquei) é o problema, pelo visto ela também altera a estrutura e não inicializa junto com essa api.
Valderei, parabéns por mais uma aula show!!! Por favor, preciso de uma grande ajuda sua. Como faço pra calcular a partir de uma data digitada em uma textbox as datas subsequentes(Parcelas) com o mesmo dia, ou seja, digitei 01/11/2016, então, as outras textbox ficaram 01/12/2016, 01/01/2017 .... seria possível??? Essa informação não será salva na planilha, ela apenas servirá pra jogar em um relatório do word, ou seja precisaria que todo procedimento fosse realizado no formulário e não nas células das planilhas.
+Kárcio Oliveira, tudo bem! Vamos a sua dúvida. Pergunta: Estas datas apenas serão visualizadas no teu userform e depois serão carregadas para um relatório em word? É isso? A parte das datas não é difícil não , porém a interação com word não sei te dizer não!!! Eu nunca trabalhei com os dois aplicativos juntos, sei que dá, mas nunca trabalhei. Vou montar algo com as datas e te mando pode ser?
Valderei Antunes Obrigado! em relação ao word não precisa se preocupar, a minha questão é relação a data, se vc quiser te passo o arquivo. valeu mesmo pela ajuda!!
Amigo, boa noite, se for possível tenta refazer este vídeo com uma UserForm do zero pra que possamos entender cada comando contido nas linhas, desculpa qualquer coisa, é que estou aprendendo Excel avançado. Obrigado.
Elenilson17 Reis tudo bem, olha da para fazer sim...EU tenho um outro video que vou postar está semana e na proxima eu faço um com a montagem deste form a partir do zero. Abraço.
Olá Robson Goularte, acrescente no Initialize do formulário as seguintes linhas: Application.WindowState = xlMaximized Me.Height = Application.Height Me.Width = Application.Width Me.Left = Application.Left Me.Top = Application.Top Isso fará com que ele já inicie maximizado.
@@valdereiantunes Será se você pode me ajudar com uma outra dúvida, tipo coloquei num UseForm uma Label onde é calculado e exibido um valor num AfterUpdate de duas Caixas Texto. Aí eu quero esse valor da Label lançado em uma célula na planilha com dados do UseForm, Tem como fazer isso? Estou tentando aqui mas não consegui ainda. O código que tentei usar é esse, mas da erro. Cells(Linha, 5) = Lbl_HPd.Value Desculpe se não consegui explicar direito.
depois que usei o código que você postou, perdi todo o trabalho que tinha feito no protejo... aparece a seguinte informação: modulo não encontrado. Sabe o que pode ter acontecido/ se foi a versão do office ou... não estou consiguindo abrir nem um formulário... tem alguma dica?
Cara a gostei deste comando, mas não funcionou na minha base de dados, ela apresenta um erro de compilação: 'Sub' ou 'Function' não definida. Public Sub InitMaxMin(mCaption As String, Optional Max As Boolean = True, Optional Min As Boolean = True _ , Optional Sizing As Boolean = True) Dim hWnd As Long hWnd = FindWindowA(vbNullString, mCaption) If Max Then SetWindowLongA hWnd, GWL_STYLE, GetWindowLongA(hWnd, GWL_STYLE) Or WS_MAXIMIZEBOX Podes me dar uma ajuda?
Boa noite, video muito bom. Baixei o arquivo e minimizar/maximizar funciona legal, porém o Excel não pode ser usado quando minimizado. Toca um beep e nada acontece.
Olá Valderei, tudo bem? Obrigado pelo vídeo e disponibilização da planilha. Tentei usar, mas ao abrir a planilha o excel retorna o seguinte erro: "Erro de compilação O código desse projeto deve ser atualizado para uso em sistema de 64 bits. Analise e atualize as instruções Declare e, em seguida, marque-as com o atributo PtrSafe." Poderia me ajudar a resolver esse problema?
Olá +Julio Moreira, pois é, eu comentei que ela funcionaria em qualquer arquitetura, mas depois analisando o código, vi que está setada para arquitetura X86 do pacote office. Tem algumas medidas no próprio site da Microsoft para corrigir isso, eu vou dar uma pesquisa e te retorno para solucionarmos este seu problema. Abraço!!
No meu caso no modulo ficou Declare PtrSafe Function FindWindowA& Lib "User32" (ByVal lpClassName$, ByVal lpWindowName$) Declare PtrSafe Function GetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&) Declare PtrSafe Function SetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&) em vermelho e mensagem de erro era esperado sub ou função e o vba seleciona PtrSafe colei em um modulo novo e o erro é o mesmo; como resolver ? w7 64bits office 2007
Vanderlei Carlos, tudo bem. Muito estranho ter ficado em vermelho, normalmente alguma inscrição errada, é exibida em amarelo pelo editor do VBA. Você diz, que seu #Windows7 é 64 bits, e quanto ao seu Office, é 64 ou 32? Acho que para te ajudar, eu precisarei de mais informações.
@@valdereiantunes Não sei se é 32 ou 64, pois sempre instalo ele e funciona em os dois. Usando me. higth igual application.higth me;width igual application.width dai só tem o x de fechar mas funcional.
Nunca testei com Multipage, mas creio que seja o mesmo procedimento, pois este código teoricamente redimensiona todos os itens. Vou pesquisar e qualquer coisa te retorno. Obrigado pela inscrição.
Drones, tudo bem. Você precisa ir dentro do editor do VBA e tirar o foco do formulário, deixe a opção Show Modal como True, desta forma, irá conseguir acessar a tua planilha.
Só tem um erro nesse codigo. Ao posicionar o ponteiro para puxar para os lados ele nao redimensiona o formulario travado. ele redimensiona fora do padrão, mas mesmo assim codigo muito bom
Olá meu amigo! Seu código me ajudou bastante, muito obrigado! Meu sistema é de 64 bits, e quando coloquei o código numa planilha minha, deu erro que estava dividindo por zero na parte 'RtL = Me.Width / Lg Sendo assim, deixei como comentário as seguintes partes: 'RtL = Me.Width / Lg 'RtH = Me.Height / Ht 'Me.Zoom = IIf(RtL < RtH, RtL, RtH) * 100 E o sistema funcionou perfeitamente! Eu não sei explicar o motivo. Deixo para conhecimento, e se alguém souber explicar o motivo, gentileza informar.
Alessandro Nascimento sim, vc precisa acrescentar PtrSafe na declaracao das funcoes logo no inicio do Codigo. Caso contrario vai dar erro. Example: "Declare Function PtrSafe"
Prof quando vou redimensionar a pagina da erro de tempo de execução11 da Divisão por 0. Fui ver o que era e constatei que o valor do Ht e Lg declarados no userform initialize estão com o valor vazio la dentro do userform resize. Quando eu executo somento o initialize essas variáveis ficam com valor. Ja dentro do resize ficam como vazias. Vc sabe o que pode ser ?
@@valdereiantunes Opa!! Ele ficou 1 mes com esse bug. Tive que fazer minhas tabelas no word. Aí um dia resolvi testar e ele tinha voltado ao normal. kkkk O que será que houve?
Wemerson Patrocinio, essa variável que estava dando erro, foi uma que utilizei para carregar um combobox, mas que não está presente no seu projeto, foi só remover e o formulário já está funcionando. Já estou te reencaminhando. Abraço!!
Valderei, cara o código é incrível, massa mesmo! Deu tudo certo para windows de 64 bits, porém para 32 bites apresentou erros: "Era esperado Sub ou Function"; ai em Vermelho: Declare PtrSafe Function FindWindowA& Lib "User32" (ByVal lpClassName$, ByVal lpWindowName$) Declare PtrSafe Function GetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&) Declare PtrSafe Function SetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&) Acredito que o erro seja pela configuração da máquina apresentar 32bits...do jeito que baixei testei na minha máquina de 64 bits e em seguida, na de 32bits, onde deu o erro...a planilha que falo é exatamente a sua (a disponível para download)..sem alterações no código. Se tiver algum toque para dar em relação agradeço!
Rafaek Amorim, sobre o erro de Sub ou Function, verifique em qual linha ela dá erro, pois aqui na minha máquina tudo roda normal, e é 32 bits. Normalmente isso é alguma variável que não foi declarada e agora o sistema pede. Verifica também nas referências se não há nenhum controle ausente. Vou tentar testar aqui e depois te retorno.
KKKKK... Respondendo a minha própria pergunta: Para rodar no windows 32bits é só apagar a expressão "PtrSafe", pois essa expressão é um ajuste do visual basic para sanar problemas de saturação de memória, resultados inesperados no código e possíveis falhas no aplicativo quando rodado em 64bits. Por tanto, na máquina de 32bits que for rodar o aplicativo deve-se salvar o aplicativo com a exclusão da expressão "PtrSafe" que vai funcionar direitinho!...espero ter contribuído para este poste!
Valmor, qual erro está dando? Me mande um print da tela, pois ninguém mais comentou sobre problema. Qual a versão do seu Office? Pelo que comentou, alguma coisa na sua arquitetura está errada, pois não está reconhecendo os comandos.
Alessandro Nascimento vc montou outro User form ou utilizou o que disponibilizei para download? Não estou no notebook agora, mas se não me engano tem uma config nas propriedades do form que libera isso, vou ver e depois te respondo. Abraço.
+Alessandro Nascimento, para corrigir este problema você deve setar a propriedade "showmodal" do seu UserForm como false, isso irá habilitar a condição de movimentar ou inserir dados na planilha. Digo isso imagino que você criou outra planilha e apenas aplicou os códigos. Abraço e se não for inscrito no canal peço que faça, assim você fica sempre informado das dicas que posto.
Alessandro Nascimento fico muito feliz em poder ajudar. Vlw, um forte abraço e fica ligado ai no canal, e se puderes, compartilha ele com seus contatos, a ideia do canal é ajudar cada vez mais. Até!!!
Vanderlei eu estava quebrando a cabeça com o mesmo problema mas você salvou mais uma vez. kkkk Muito obrigado pela aula. Agora é estudar o código e aproveitar. Vou indicar o canal para alguns amigos. Valew.....!
Olá novamente ao passar a planilha para outro computador deu um erro de : Erro de copilação no módulo oculto: Módulo1 O Que pode ser pois versão de sistemas são iguais de 32 bits .Pode ajudar?
+Alessandro Nascimento, tudo bem? Cara, só por e-mail fica difícil te ajudar, eu imagino que tenha alguma instrução com erro, ou faltando algo. Pode ser qualquer declaração que você tenha feito e não tenha referência, como por exemplo: Sub Abrir() Set Abrir=Worksheets.Range..... End Sub As vezes há necessidade de declaramos tudo o que há dentro das instruções, no exemplo quis te demonstrar que a palavra "Abrir" não foi declarada, e isso pode resultar em erro. Como ficaria: Sub Abrir() Dim Abrir as String Set Abrir=Worksheets.Range..... End Sub Assim não daria erro. Dá uma varrida no teu código..caso contrário me mande por e-mail que eu dou uma olhada. Abraço.
Salve xirú, engraçado que de uns tempos para cá esse código não está funcionando como deveria, uso o Office 2019 e ao criar userforms e arquivos xlsm do 0 para mim não aparece os botões de maximizar, minimizar e nem dá de redimensionar, enquanto arquivos que fiz na época do office 2016 funciona... Analisei cada lida de código com o teu video e está tudo igual! Será que eu tenho que habilitar alguma biblioteca? uso WIndows 10 Pro 64 Bits e o Office 2019 32 Bits
Descobri o motivo do problema, se você iniciar o userform e solicitar que no evento Initialize ele altere o caption do userform o comando buga e some os botões e a ação maximizar, minimizar e redimensionar... 😒😒😒
Fala meu camarada Bom dia Se você poder me responder por algum outro tipo de rede social cara coloquei todo o script e não consegui rodar na minha planilha de vba não sei se eu deixei passar alguma coisa me ajuda ae meu camarada caso for eu mando pra vc o script pronto já com o seu script pronto me ajuda ae pfv
+Jamerson Tenorio, vai sair o vídeo sim, não esqueci dele. Após finalizar estes que estão em andamento, farei um conforme prometido para você e também para o +Elenilson17 Reis.
Valderei, no meu pc 64bits está rodando tranquilo, mas nos de 32bits que eu uso sempre da erro, isso ocorre em quase todas as planilhas aqui do canal, vc saberia acertar essa questão pra conseguir usar em qualquer computador?
Olá, +Arthur Pedroti, muito obrigado pela sua inscrição no canal. Sobre sua questão, é interessante, pois meu notebook, usa o pacote de 32 bits e todos os projetos rodam tranquilamente. Você pode me mandar um print do erro que estão dando os projetos? Assim fica mais fácil buscar a solução. valderei.antunes@gmail.com
Rapaiz, eu até iria te dar 100000 likes, mais não consegui adapter nem a pau no meu formulário. O seu arquivo roda direitinho. Entretanto, quando tento adaptar ao meu projeto que tem 5 formulários, não acontece nada. Adaptei, ou seja, troquei o Me pelo nome do formulário mesmo e não aparece os benditos botões e nem tem como redimensionar. Tem alguma ideia?
Conseguiiiiiiiiiiiiii carale-o! O problema é que o meu formulário estava sem "Caption". Coloquei e tudo foi resolvido! Agora valeu 100000000 likes pra ti!
Almir de Matos, tudo bem cara!! Eu estou tendo um pequeno problema de tráfego com meu dropbox, mas até o domingo todos os links estarão funcionando de novo, então você poderá baixar aqui no vídeo.
Deu certo mas para simplificar basta fazer o seguinte: antes de mais nada ou de qualquer outro codigo ou ate mesmo de por uma textbox no userform voce vai criar um MODULO e colar esse cogido: Option Explicit Declare PtrSafe Function FindWindowA& Lib "User32" (ByVal lpClassName$, ByVal lpWindowName$) Declare PtrSafe Function GetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&) Declare PtrSafe Function SetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&) ' Declaração de Constantes Public Const GWL_STYLE As Long = -16 Public Const WS_MINIMIZEBOX = &H20000 Public Const WS_MAXIMIZEBOX = &H10000 Public Const WS_FULLSIZING = &H70000 'Attention, envoyer après changement du caption de l'UF Public Sub InitMaxMin(mCaption As String, Optional Max As Boolean = True, Optional Min As Boolean = True _ , Optional Sizing As Boolean = True) Dim hWnd As Long hWnd = FindWindowA(vbNullString, mCaption) If Max Then SetWindowLongA hWnd, GWL_STYLE, GetWindowLongA(hWnd, GWL_STYLE) Or WS_MAXIMIZEBOX If Min Then SetWindowLongA hWnd, GWL_STYLE, GetWindowLongA(hWnd, GWL_STYLE) Or WS_MINIMIZEBOX If Sizing Then SetWindowLongA hWnd, GWL_STYLE, GetWindowLongA(hWnd, GWL_STYLE) Or WS_FULLSIZING End Sub ====================================================================================================== xxxxx ai depois voce vai na nos codigos da UserForm e cola esse codigo: =================================================================================================== 'Declarações Option Explicit Dim Lg As Single Dim Ht As Single Dim Fini As Boolean Private Sub UserForm_Initialize() Dim i As Integer, L As Integer, TB InitMaxMin Me.Caption Ht = Me.Height Lg = Me.Width
End Sub 'Instrução para redimensionar o formulário dos conteúdos do formulário (textbox, combobox,etc) Private Sub UserForm_Resize() Dim RtL As Single, RtH As Single If Me.Width < 300 Or Me.Height < 200 Or Fini Then Exit Sub RtL = Me.Width / Lg RtH = Me.Height / Ht Me.Zoom = IIf(RtL < RtH, RtL, RtH) * 100 End Sub e pronto ta resolvido... (OBS: Tudo tirado do seu exemplo)
+T.Costa, show de bola, fico muito contente com contribuições como a sua, e é como sempre digo, existem diversas formas de se fazer a mesma coisa quando se trata de programação. Abraço.
Tentei utilizar esta rotina, mas dá erro nas linha "If Max then SetWindowLongA... "if Min then SetWindowLongA... e "If Sizing Then SetWindowLongA..." Aparece a seguinte mensagem "Número de argumentos incorreto ou atribuição de propriedade inválida"
Hola profesor buenas tarde, felicidades por su vídeo, es muy buen aporte. tengo un proyecto y quisiera hacerle unas consultas al respecto. por favor envíeme su email. le agradecería mucho.
+T.Costa você precisa ser mais específico com seu problema, qual é a linha de instrução que esta ficando marcada quando o erro ocorre? Se puder passar mais dados, posso tentar lhe ajudar.
Consegui amigo, muito obrigado, funcionou super bem e o formulário ficou bem mais profissional, tive um melhor aproveitamento da tela para o usuário final. Gostei do conteúdo do seu canal, inscrito.
Bom dia +Helton Zanetti, o conteúdo do vídeo está disponível para download na descrição do vídeo. Por isso te peço que se ainda não fez, faça sua inscrição, pois aqui todos os conteúdos tratados são liberados para download de forma gratuita e vitalícia. Agradeço seu interesse e sua inscrição no canal, isso faz com que o conteúdo fique mais visível e mais facilmente acessado por outros interessados em Excel e VBA. Abraço.
+Helton Zanetti, interessante não estar funcionando, pois este projeto já está com as declarações corretas para funcionar em 64 bits. Vc poderia me dizer qual é a mensagem que está sendo exibida?
Boa noite fiz tudo e deu certo aqui! Mas há uma maneira muito mas muito mais simples de pôr o userform na tela toda que descobri aqui ua-cam.com/video/UAzCwax4qdA/v-deo.html Obrigado Evandro Franco E é assim: Private Sub UserForm_Initialize() Me.Height = Int(1.1 * ActiveWindow.Height) 'è só ir mudando os nr para melhorar o tamanho Me.Width = Int(1 * ActiveWindow.Width) End Sub De qualquer maneira obrigado Vanderlei Antunes
Meu amigo, conteúdo muito relevante e que não envelhece! Estava utilizando outras APIs bem trabalhosas apenas para minimizar, e ainda assim só funcionavam bem com a planilha dentro do computador, já com esse módulo ela funcionou com a planilha salva na rede da empresa, logo todos que acessarem terão o mesmo resultado. Muito obrigado por compartilhar.
Que notícia ótima, a ideia da criação do canal foi exatamente essa, poder ajudar outros. As vezes funciona, as vezes não, mas muito obrigado pelo seu comentário.
Código simplismente maravilhoso e inteligente, parabéns e obrigado o compartilhamento.
Perspectiva Ativa, fico muito feliz em ler seu comentário, isso me dá ânimo para seguir compartilhando mais conteúdo.
Abraço e obrigado por inscrever-se no canal, volte sempre.
Vanderlei, muitíssimo obrigada por disponibilizar os códigos, aqui funcionou perfeitamente! Obrigada por dedicar seu tempo em nos ajudar!
Fico feliz em saber que deu tudo certo.
Olá Meu Jovem... Muito Bom mesmo, simplesmente fantástico
Gerson Chaves, muito obrigado pelo comentário, fico muito feliz em poder compartilhar estas dicas.
Volte sempre.
Parabéns! 64bits aqui e funcionou 100%.
Código maravilhoso. E o que eu mais gostei foi sua sinceridade de que encontrou ele e fez suas adaptações. PARABÉNS!
Muito obrigado 😁
Código sensacional.
Muito bacana mesmo.
Parabéns!
Valeu 😀
Foram meses em busca dessa solução, simplesmente fantástico. Muito obrigado professor!
Damião, eu que agradeço seu comentário, a ideia base do canal é essa, compartilhar conhecimento e auxiliar os demais.
Abraço e obrigado por inscrever-se no canal, volte sempre.
Que Maravilha... irei utilizar no meu projeto... muito obrigado.
Sucesso!
E se puder, compartilhe o link do canal com seus amigos, talvez haja mais pessoas precisando deste ou dos outros vídeos que temos aqui no canal.
Parabens excelente conteúdo e muito útil....
Muito obrigado, Alexandre Divino!!
Alexandre, se ainda não é, faça sua inscrição, se já for, muito obrigado pela força e dá uma passada pelas playlists do canal, tem muita coisa legal.
Abraço.
Vou sim com certeza esse conteúdo excelente de grande valia estou procurando adaptar no meu useforms , mais deve ter mais coisas edificantes vou verificar sim parabéns , algo que não tive em curso que fiz mais com vc estou aprendendo.
PERFEITO...PARABÉNS E MUITÍSSIMO OBRIGADO POR COMPARTILHAR ESSA VALIOSA INFORMAÇÃO.
Eu agradeço seu comentário e fico feliz em poder ajudar, volte sempre.
Your UA-cam channel is very successful, I found all the content and topics I want. I wish you continued success. Greetings from Turkey
Thanks Rehber Hane I am very happy to see you here, even though my videos are not in English or in your language.
Feel free to come back here.
Diferenciado. Deus que te proteja e sucessos !!
Excelente solução! Esse foi o unico video que achei para dimencionar formulario. Obrigado!
Vlw, abraço.
Parabéns meu amigo, o seu código foi o único que funcionou perfeitamente sem nenhum erro de depuração, e olha que eu procurei incansavelmente na internet. Parabéns mesmo! Mais 1 inscrito!
Muito bom esse código, parabéns por compartilhar.
EXCELENTE CÓDIGO, MUITO OBRIGADO POR COMPARTILHA-LO
Vlw, obrigado pelo comentário.
Muito Bom, apenas coloquei como comentário a abertura do formulário no tamanho da tela. Super bom.
Show...valeu Rodney.
Parabéns, excelente vídeo e ótima explicação!
Atualizei o meu formulário e tudo funcionou direitinho. Claro que tive que declarar todas as variáveis depois por causa do Option Explicit, mas deu tudo certo no final.
Show, abraço.
Irmão, qual foi a alteração que vc fez, pois tentei aqui e não deu certo o copia e cola?
Parabens cara, excelente video, da pra colocar em varios projetos esse codigo
Obrigado pelo comentário!!!!!
Volte sempre.
Você foi simplesmente sensacional.
Muito obrigado, ajudou muuuito.
Ganhou meu like e minha inscrição.
Que Deus continue te abençoando sempre por compartilhar seu conhecimeto.
Ajudando o próximo.;)
Fiquem com Deus todos vocês!!!
Poxa, valeu pelo comentário e pela inscrição. A ideia é sempre poder ajudar os outros "loucos" por #Excel.
Abraço e segue aí, logo, logo tem mais vídeo novo no ar.
Valderei, estava procurando por isso há mt tempo e finalmente encontrei. Muito obrigado! Agora os userforms ficarão com aspecto profissional. Um abraço!
Obrigado +Italo Silva Cordovil!!!
Fico muito feliz em poder ajudar, se puder ajudar o canal fazendo sua inscrição (caso não tenha feito ainda) e divulgando o conteúdo com seus amigos, ficarei grato.
Abraço e sucesso!!
Feito!
Valderei, como eu posso fazer pra abrir o userform sempre maximizado?
Já deixei o meu Like Professor e estou compartilhando com todos os amigos e grupos.
Sempre assisto aos seus videos para me inspirarem a colocar as minhas idéias para se desenvolverem. Muito Obrigado o UA-cam precisande mais pessoas como o senhor e outros que buscam a ajudar a comunidade do VBA a crescer e vamo q vamo...
#TopArmagedomSystem
Sensacional ... muito obrigado por essa aula.... Funcionou 100%
Oi amigo, coloque também um txt com texto do código do módulo e descrição das finalidade. Esse que os programadores usam para análises. Parabéns pelo trabalho.
Se pudesse dar 200 Joia eu dava, o ideal seria um vídeo explicando os comandos, mas de qualquer forma foi top o vídeo. Parabéns e obrigado desde já
Muito obrigado pelo comentário Andre.
É muito bom, mas eu não consegui fazer a imagem de fundo acompanhar o maximizar ... Gostaria de ajuda
Manoooo, me salvou, muito simples, vlw mesmo
Que bom que ajudou, volte sempre!!
Obrigado, muito bom o código...
Eu que agradeço tua visita e tua inscrição no canal e veja, que além deste, há vários outros vídeos legais.
Abraço.
Olá Valderei.... Oborgado pela dica... ajudou muito... No meu formulário deu quase tudo certo..somente a parte de deixar a planilha livre que não funcionou.. vc saberia dizer se tem como usar o excel ao mesmo tempo que um userform esta processando? o meu userform toma de 3 a 5 minutos para rodar e faz isso continuamente lendo arquivos numa pasta... porém enquanto processa ele trava o excel.. poderia me ajudar ?obrigado
Diogo, tudo bem!!
Infelizmente não há algo a ser feito, o Excel acaba realmente deixando tudo travado enquanto um processo esteja sendo rodado, a única saída é aguardar mesmo.
Muito boa a dica! Obrigado por compartilhar! Ajudou Muito!
Fala Diego...que bom!! Vlw.
Parabéns!!!Que Deus abençoe.
cara você me deu um adianto sem igual, muito obrigado, valeu mesmo.
vou testar e ver se consigo usar isso.
vlw
Boa noite. Muito legal esse video. Essa opção de aumentar ou diminuir o formulário é muito legal. Achei essa aula somente agora... Será que tem atualização? Como adaptar isso aos meus formularios sem ter que acrescentar as variáveis mencionadas... De qualquer forma, obrigado. Vou achar uma forma de adaptar...
Bons estudos!
Excelente, Saludos de Chile!!
Ola, Franco!!!
Muito bom saber dos alcances que temos aqui.
Cara, muito obrigado por compartilhar esse código editado para a versão x64 do windows. Mais fodão ainda é quem conseguiu fazer a conversão/adaptação.
Realmente, é um problema esse negócio de livrarias diferentes, tem códigos muito úteis (como o que ativa o botão scroll do mouse) que não rodam no meu windows x64.
Queria conseguir converter também...
Obrigado!
Fala +Pedro Jhonata, fico feliz em poder ajudar, pois este é o verdadeiro motivo da criação deste canal.
Com relação a adaptação do código original, esta foi feita por mim mesmo, e em alguns casos é relativamente fácil, basta apenas adicionar a instrução "PtrSafe" nas declarações. Ex: Declare PtrSafe Function.
Porém em alguns casos realmente não há como utilizarmos os projetos feitos em x86 nos x64.
Sobre o assunto da rolagem do mouse, vou ver se encontro algo que possa te ajudar.
Abraço e confira também os demais vídeos que o canal.
Valderei Antunes
Perfeito!
+1 inscrito
Só pra constar,
Se o UserForm estiver sem título (propriedade Caption = " "), estas funções não irão funcionar.
Pedro Jhonata interessante, vou fazer o teste... obrigado por comentar.
Então, +Pedro Jhonata, fiz o teste e realmente ele não funciona sem algum tipo de descrição no "Caption", tudo isso porque o código chama no Initialize a função Me.Caption para poder movimentar o objeto.
Fica a dica para todos então, o userform não pode ficar com a propriedade Caption vazia!!
Excelente video! Porém quando eu implemento meu excel continua travado mesmo minimizando o formulario...
Mateus, tudo bem.
Você deve estar com o evento modal ativado no teu formulário, isso não permite o acesso ao Excel quando o formulário está ativo.
Testa e me retorna.
@@valdereiantunes muito obrigado!!!! Era isso mesmo!!!
Excelente código, mas a imagem não acompanha o redimensionamento da tela, o que fazer?
Felipe, creio que seja necessário adicionar este ou algo do gênero na imagem também, assim ela será redimensionada junto, o código é aplicado nos controles e no formulário.
@@valdereiantunes perfeito obrigado.
Excelente, parabéns, gostaria de saber como eu poderia fazer para abrir o formulário para ver um tamanho menor desde que ao colocar o código, meu pequeno formulário se torna grande ocupando a tela inteira, você poderia me ajudar muito
Amigo, tudo bem!
Não entendi sua dúvida, você quer que o formulário abre no tamanho normal? Ou quer que ele abre em um tamanho customizado?
Obrigado.
@@valdereiantunes sim, originalmente, meu formulário é pequeno quando eu o executo, mas quando eu coloco seu código, meu formulário é ampliado em quase toda a tela da área de trabalho, então o que eu quero é que ele apareça conforme o projetei no VBA.
Obrigado!
@@proyecto2148 você deve apenas comentar as seguintes linhas:
' Me.Height = Application.Height
' Me.Width = Application.Width
dentro do módulo Initialize, isso fará com que seu formulário inicie no tamanho normal.
Se der certo para você, comenta aqui.
@@valdereiantunes gyazo.com/d87ef78a5d26991c1458b17767964f18 não deu certo :(
@@proyecto2148 baixa novamente o arquivo que tem no link do vídeo, eu alterei ele lá, testa no teu computador e veja como irá se comportar.
Qualquer coisa, comenta aqui.
Olá , você poderia fazer uma vídeo aula sobre o código do zero?
Como faço para iniciar o formulário já maximizado sem clicar no botão de maximizar? Obrigado..
Olá, você precisa colocar a chamada de maximizar na inicialização de seu documento.
Hola Profesor, Excelente vídeo. En mi caso debí poner el atributo PtrSafe. Tiene usted las APi para cambiar el cursor del mouse a una mano cuando paso por encima de un CommandButton???. Agradezco me las pase. Y gracias por todo lo que nos comparte. Saludos desde Panamá
Olá Dignora...nunca tinha pensado nisso, mas fui atrás e encontrei um código que faz o que queres!!! Amanhã tem víde novo no canal e será a resposta para sua pergunta...
Abraço e até amanhã.
No te hace falta, apis para eso, en propiedades del userfor o de cualquier Control, tien las opción de cambiar la forma del cursor, o incluir un icono, de 16x16 hasta 64X6, El icon lo adjuntas en la propiedad Mouse Icon y para que funcione en la propiedad Mousepointer select 99-frMousePointerCustom.... Sin necesidad de elegir un icon externo, desde Mousepointer tienes ya varios.
Tienes multitud de imagens en Google, y tiens conversores de imágenes a icon seleccionando las dimensiones. haciendo esto puedes poner el icon que te apetezca
Parabéns meu otimo muito facil obrigado
Coloquei no meu projeto e ficou bom, MAS o listview de um dos UserForm não foi redimensionado. Pensei que aumentando a tela ele cresceria tbm aparecendo mais as informações sem precisar usar a barra de rolagem. ='(
Áurea, tudo bem, para que isso ocorra, você deve aplicar em todos os formulários, no exemplo, tratamos apenas com 01 userform.
@@valdereiantunes Aaah siim, entendi, muito obrigada! :)
Boa noite! tenho um projeto pronto só faltava desenvolver esses códigos de minimizar e maximizar, mas quando adiciono o código, a minha caixa de busca onde tem a opção de totaldelinhas da erro , como não tenha informado variável, mas quando tiro todo código adicionado funciona normal, professor poderia me ajudar como faço para deixar programado minha caixa de localização de dados e inserir esse código sem que me de esse erro? Desde já agradeço!
José Vagner.
Cara olha só, tenta informar está variável quando inserir o código, já vi outras pessoas com o mesmo problema e só com a declaração da variável isso já foi resolvido.
Boa tarde, coloquei a função conforme ensinou. Ficou muito bom, mas não sei pq minhas listbox não estão funcionando, quando tiro a função, elas funcionam, quando coloco a função elas dão erro. Pode me informar o pq? Erro "Variável não definida" em todas as listboxs
Marcos, chegou a verificar se todas as tuas variáveis estão nomeadas? Ou talvez, uma variável desta função precise ser declarada.
As vezes, é uma bobagem.
@@valdereiantunes Tudo bem? obrigado pelo retorno.. pelo que eu vi a forma que eu uso a combobox (não era listbox, me equivoquei) é o problema, pelo visto ela também altera a estrutura e não inicializa junto com essa api.
Valderei, parabéns por mais uma aula show!!! Por favor, preciso de uma grande ajuda sua. Como faço pra calcular a partir de uma data digitada em uma textbox as datas subsequentes(Parcelas) com o mesmo dia, ou seja, digitei 01/11/2016, então, as outras textbox ficaram 01/12/2016, 01/01/2017 .... seria possível??? Essa informação não será salva na planilha, ela apenas servirá pra jogar em um relatório do word, ou seja precisaria que todo procedimento fosse realizado no formulário e não nas células das planilhas.
+Kárcio Oliveira, tudo bem!
Vamos a sua dúvida.
Pergunta: Estas datas apenas serão visualizadas no teu userform e depois serão carregadas para um relatório em word? É isso?
A parte das datas não é difícil não , porém a interação com word não sei te dizer não!!! Eu nunca trabalhei com os dois aplicativos juntos, sei que dá, mas nunca trabalhei.
Vou montar algo com as datas e te mando pode ser?
Valderei Antunes Obrigado! em relação ao word não precisa se preocupar, a minha questão é relação a data, se vc quiser te passo o arquivo. valeu mesmo pela ajuda!!
Valderei, esse é o link se vc quiser visualizar o form mega.nz/#!n1c2TBxK!UpYx8ubMuHJN_C9IGP4EB954UZIo8A93tuzqljvlHgA
Kárcio Oliveira me passa teu endereço de e-mail, quero te enviar o arquivo que havia me pedido.
karcio.pe@gmail.com valeu!!!
Amigo, boa noite, se for possível tenta refazer este vídeo com uma UserForm do zero pra que possamos entender cada comando contido nas linhas, desculpa qualquer coisa, é que estou aprendendo Excel avançado. Obrigado.
Elenilson17 Reis tudo bem, olha da para fazer sim...EU tenho um outro video que vou postar está semana e na proxima eu faço um com a montagem deste form a partir do zero.
Abraço.
Valderei Antunes, obrigado.
Abraço.
@@valdereiantunes Se possível add o link do video na descrição deste video, para ficar em sequencia ou uma playlist, se já não tiver
Parabéns, sensacional!!!!!!
Valderei, excelente trabalho!!!! Parabéns. Você pode me ajudar? como faço para o userform inicializar MAXIMIZADO (com a sua rotina no form).
Olá Robson Goularte, acrescente no Initialize do formulário as seguintes linhas:
Application.WindowState = xlMaximized
Me.Height = Application.Height
Me.Width = Application.Width
Me.Left = Application.Left
Me.Top = Application.Top
Isso fará com que ele já inicie maximizado.
Excelente dica, mas o link para baixar o arquivo e ter o código não está funcionando, poderia verificar.
Show de dica, parabéns.
Vou corrigir sim, obrigado pelo comentário e alerta.
@@valdereiantunes Obrigado, consegui baixar a planilha.
@@valdereiantunes Será se você pode me ajudar com uma outra dúvida, tipo coloquei num UseForm uma Label onde é calculado e exibido um valor num AfterUpdate de duas Caixas Texto. Aí eu quero esse valor da Label lançado em uma célula na planilha com dados do UseForm, Tem como fazer isso?
Estou tentando aqui mas não consegui ainda.
O código que tentei usar é esse, mas da erro.
Cells(Linha, 5) = Lbl_HPd.Value
Desculpe se não consegui explicar direito.
Beleza amigo muito bom
Obrigado 👍, Zé Gomes.
Volte sempre e se puderes, compartilhe o link do canal com seus amigos e conhecidos!!!
depois que usei o código que você postou, perdi todo o trabalho que tinha feito no protejo... aparece a seguinte informação: modulo não encontrado.
Sabe o que pode ter acontecido/ se foi a versão do office ou... não estou consiguindo abrir nem um formulário...
tem alguma dica?
Olá Jefferson, desculpe pela demora, você já conseguiu resolver o problema?
Cara a gostei deste comando, mas não funcionou na minha base de dados, ela apresenta um erro de compilação: 'Sub' ou 'Function' não definida.
Public Sub InitMaxMin(mCaption As String, Optional Max As Boolean = True, Optional Min As Boolean = True _
, Optional Sizing As Boolean = True)
Dim hWnd As Long
hWnd = FindWindowA(vbNullString, mCaption)
If Max Then SetWindowLongA hWnd, GWL_STYLE, GetWindowLongA(hWnd, GWL_STYLE) Or WS_MAXIMIZEBOX
Podes me dar uma ajuda?
Boa noite, video muito bom. Baixei o arquivo e minimizar/maximizar funciona legal, porém o Excel não pode ser usado quando minimizado. Toca um beep e nada acontece.
Descobri. Falta um parâmetro no código do seu arquivo disponibilizado.
Muito bom, Shigue Hashimoto.
Se quiser compartilhar aqui a correção, te agradeço, assim, eu e os outros corrigimos nossos projetos.
Abraço.
Olá Valderei, tudo bem?
Obrigado pelo vídeo e disponibilização da planilha.
Tentei usar, mas ao abrir a planilha o excel retorna o seguinte erro:
"Erro de compilação
O código desse projeto deve ser atualizado para uso em sistema de 64
bits. Analise e atualize as instruções Declare e, em seguida, marque-as
com o atributo PtrSafe."
Poderia me ajudar a resolver esse problema?
Olá +Julio Moreira, pois é, eu comentei que ela funcionaria em qualquer arquitetura, mas depois analisando o código, vi que está setada para arquitetura X86 do pacote office. Tem algumas medidas no próprio site da Microsoft para corrigir isso, eu vou dar uma pesquisa e te retorno para solucionarmos este seu problema.
Abraço!!
+Julio Moreira, acabei de atualizar o código, tenta baixar novamente o arquivo e testar em sua máquina.
Olá +Valderei Antunes, muito obrigado pela ajuda, parabéns pelo trabalho!!!!
Abraço.
Teria, por favor, como enviar uma planilha compativel com 64 bits. Obrigado
No meu caso no modulo ficou
Declare PtrSafe Function FindWindowA& Lib "User32" (ByVal lpClassName$, ByVal lpWindowName$)
Declare PtrSafe Function GetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&)
Declare PtrSafe Function SetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
em vermelho e mensagem de erro era esperado sub ou função e o vba seleciona PtrSafe
colei em um modulo novo e o erro é o mesmo; como resolver ? w7 64bits office 2007
Vanderlei Carlos, tudo bem.
Muito estranho ter ficado em vermelho, normalmente alguma inscrição errada, é exibida em amarelo pelo editor do VBA.
Você diz, que seu #Windows7 é 64 bits, e quanto ao seu Office, é 64 ou 32?
Acho que para te ajudar, eu precisarei de mais informações.
@@valdereiantunes Não sei se é 32 ou 64, pois sempre instalo ele e funciona em os dois.
Usando
me. higth igual application.higth
me;width igual application.width
dai só tem o x de fechar
mas funcional.
Boa noite, na minha userform tem uma multpag tem como ajustar a multpag junto com o userform?
Nunca testei com Multipage, mas creio que seja o mesmo procedimento, pois este código teoricamente redimensiona todos os itens.
Vou pesquisar e qualquer coisa te retorno.
Obrigado pela inscrição.
Como faço para não aparecer o botão de minimizar ? só o de maximizar e o de fechar
ítalo i, vou dar uma olhada no código, mas creio que desabilitando a função de minimizar no código isso já seja resolvido.
Depois falamos.
Valderei Antunes Ta joia Valderei , tentei retirar varias partes do codigo, mas n conseguir. Fico no aguardo , desde ja agradeço
No meu ta dando um erro de variável nao definida... no "ListJ"... ME AJUDA PF
Funcionou perfeitamente porem não consigo utilizar a planilha enquanto o form está minimizado. Alguem pode me ajudar?
Drones, tudo bem.
Você precisa ir dentro do editor do VBA e tirar o foco do formulário, deixe a opção Show Modal como True, desta forma, irá conseguir acessar a tua planilha.
@@valdereiantunes ok obrigado.
Ola, primeiramente parabens pelo video. Você tem esse código para computador 64bits? ou indica algum? estou precisando.
Não tenho Fabiano, vou ficar te devendo.
Perfeito!!!
Vlw pelo comentário!!
Só tem um erro nesse codigo. Ao posicionar o ponteiro para puxar para os lados ele nao redimensiona o formulario travado. ele redimensiona fora do padrão, mas mesmo assim codigo muito bom
Olá meu amigo!
Seu código me ajudou bastante, muito obrigado!
Meu sistema é de 64 bits, e quando coloquei o código numa planilha minha, deu erro que estava dividindo por zero na parte 'RtL = Me.Width / Lg
Sendo assim, deixei como comentário as seguintes partes: 'RtL = Me.Width / Lg
'RtH = Me.Height / Ht
'Me.Zoom = IIf(RtL < RtH, RtL, RtH) * 100
E o sistema funcionou perfeitamente!
Eu não sei explicar o motivo. Deixo para conhecimento, e se alguém souber explicar o motivo, gentileza informar.
Pessoal, percebi que comentar essas linhas tira o ajuste de proporção do conteúdo do form...
Ao roda na maquinha com 64 bits devo mudar alguma coisa para dar certo ? ou não necessita.
Alessandro Nascimento sim, vc precisa acrescentar PtrSafe na declaracao das funcoes logo no inicio do Codigo.
Caso contrario vai dar erro.
Example:
"Declare Function PtrSafe"
Valderei Antunes
ok vou tentar aqui se dar certo.
Qual seu email ?
Prof quando vou redimensionar a pagina da erro de tempo de execução11 da Divisão por 0. Fui ver o que era e constatei que o valor do Ht e Lg declarados no userform initialize estão com o valor vazio la dentro do userform resize. Quando eu executo somento o initialize essas variáveis ficam com valor. Ja dentro do resize ficam como vazias. Vc sabe o que pode ser ?
Olá, conseguiu resolver? Se sim poderia me ajudar. Desde já agradeço.
Valderei, vc diz para baixar mas ele vem vazio(Travado). Desistiu de compartilhar o código?
Vlw Renato.
Conseguiu baixar Zubelzo??
Deu certo sim...vlw.
@@valdereiantunes Deu certo sim....vlw
@@Zubelzo abraço e apareça sempre!!
Mestre, meu cursor simplesmente parou de mudar da seta para redimensionar, aí não estou mais conseguindo redimensionar imagem.
Vini, você conseguiu resolver o problema?
@@valdereiantunes Opa!! Ele ficou 1 mes com esse bug. Tive que fazer minhas tabelas no word. Aí um dia resolvi testar e ele tinha voltado ao normal. kkkk
O que será que houve?
@@1006vini1 Muito estranho...pode ter ocorrido alguma incompatibilidade nas versões do Excel...mas fica meio difícil de dizer o que pode ter ocorrido.
Erro "Variavel não definida": ( cbo.Dia ) ??? como corrigir? Enviei no seu e-mail, se puder dar uma olhada... (ainda estou concluindo o restante.. )
Olá Wemerson Patrocinio, vou verificar e depois te retorno.
Wemerson Patrocinio, essa variável que estava dando erro, foi uma que utilizei para carregar um combobox, mas que não está presente no seu projeto, foi só remover e o formulário já está funcionando.
Já estou te reencaminhando.
Abraço!!
Como faço para esse código iniciar minha UserForm maximizada ??
no meu esta dando esse erro
divisão por zero nessa instrução
RtL = Me.Width / Lg
aqui tbm, resolveu?
Resolvido aqui, você precisa colocar a parte da declaração lá na parte superior do código, a declaração também está no arquivo do vídeo
Valderei, cara o código é incrível, massa mesmo! Deu tudo certo para windows de 64 bits, porém para 32 bites apresentou erros: "Era esperado Sub ou Function"; ai em Vermelho:
Declare PtrSafe Function FindWindowA& Lib "User32" (ByVal lpClassName$, ByVal lpWindowName$)
Declare PtrSafe Function GetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&)
Declare PtrSafe Function SetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
Acredito que o erro seja pela configuração da máquina apresentar 32bits...do jeito que baixei testei na minha máquina de 64 bits e em seguida, na de 32bits, onde deu o erro...a planilha que falo é exatamente a sua (a disponível para download)..sem alterações no código.
Se tiver algum toque para dar em relação agradeço!
Rafaek Amorim, sobre o erro de Sub ou Function, verifique em qual linha ela dá erro, pois aqui na minha máquina tudo roda normal, e é 32 bits.
Normalmente isso é alguma variável que não foi declarada e agora o sistema pede.
Verifica também nas referências se não há nenhum controle ausente.
Vou tentar testar aqui e depois te retorno.
KKKKK... Respondendo a minha própria pergunta: Para rodar no windows 32bits é só apagar a expressão "PtrSafe", pois essa expressão é um ajuste do visual basic para sanar problemas de saturação de memória, resultados inesperados no código e possíveis falhas no aplicativo quando rodado em 64bits. Por tanto, na máquina de 32bits que for rodar o aplicativo deve-se salvar o aplicativo com a exclusão da expressão "PtrSafe" que vai funcionar direitinho!...espero ter contribuído para este poste!
Código não funciona só da ero esperado sub função e no icone que devria aparecer maximizar e minimizar só aparece um ponto de inrrogação?
Valmor, qual erro está dando? Me mande um print da tela, pois ninguém mais comentou sobre problema. Qual a versão do seu Office?
Pelo que comentou, alguma coisa na sua arquitetura está errada, pois não está reconhecendo os comandos.
o meu só não deu certo a parte que posso utilizar a planilha sem fechar o form o resto ficou ótimo.
Alessandro Nascimento vc montou outro User form ou utilizou o que disponibilizei para download?
Não estou no notebook agora, mas se não me engano tem uma config nas propriedades do form que libera isso, vou ver e depois te respondo.
Abraço.
+Alessandro Nascimento, para corrigir este problema você deve setar a propriedade "showmodal" do seu UserForm como false, isso irá habilitar a condição de movimentar ou inserir dados na planilha.
Digo isso imagino que você criou outra planilha e apenas aplicou os códigos.
Abraço e se não for inscrito no canal peço que faça, assim você fica sempre informado das dicas que posto.
showmodal era isso mesmo muito Obrigado ajudou demais na minha planilha.
Fica com Deus e boas aulas!.
Alessandro Nascimento fico muito feliz em poder ajudar. Vlw, um forte abraço e fica ligado ai no canal, e se puderes, compartilha ele com seus contatos, a ideia do canal é ajudar cada vez mais. Até!!!
Vanderlei eu estava quebrando a cabeça com o mesmo problema mas você salvou mais uma vez.
kkkk
Muito obrigado pela aula.
Agora é estudar o código e aproveitar.
Vou indicar o canal para alguns amigos.
Valew.....!
Olá novamente ao passar a planilha para outro computador deu um erro de :
Erro de copilação no módulo oculto: Módulo1
O Que pode ser pois versão de sistemas são iguais de 32 bits .Pode ajudar?
+Alessandro Nascimento, tudo bem?
Cara, só por e-mail fica difícil te ajudar, eu imagino que tenha alguma instrução com erro, ou faltando algo.
Pode ser qualquer declaração que você tenha feito e não tenha referência, como por exemplo:
Sub Abrir()
Set Abrir=Worksheets.Range.....
End Sub
As vezes há necessidade de declaramos tudo o que há dentro das instruções, no exemplo quis te demonstrar que a palavra "Abrir" não foi declarada, e isso pode resultar em erro.
Como ficaria:
Sub Abrir()
Dim Abrir as String
Set Abrir=Worksheets.Range.....
End Sub
Assim não daria erro.
Dá uma varrida no teu código..caso contrário me mande por e-mail que eu dou uma olhada.
Abraço.
Vi aqui agora que a outra maquina é de 64 bits será que é esse o problema?
qual seu email?
valderei.antunes@gmail.com
Olá bom dia,
Te enviei a planilha para vc fazer um teste ai .
Obrigado!
Salve xirú, engraçado que de uns tempos para cá esse código não está funcionando como deveria, uso o Office 2019 e ao criar userforms e arquivos xlsm do 0 para mim não aparece os botões de maximizar, minimizar e nem dá de redimensionar, enquanto arquivos que fiz na época do office 2016 funciona... Analisei cada lida de código com o teu video e está tudo igual! Será que eu tenho que habilitar alguma biblioteca? uso WIndows 10 Pro 64 Bits e o Office 2019 32 Bits
Descobri o motivo do problema, se você iniciar o userform e solicitar que no evento Initialize ele altere o caption do userform o comando buga e some os botões e a ação maximizar, minimizar e redimensionar... 😒😒😒
Alex, muito bom!!
Parabéns.
Fala meu camarada Bom dia Se você poder me responder por algum outro tipo de rede social cara coloquei todo o script e não consegui rodar na minha planilha de vba não sei se eu deixei passar alguma coisa me ajuda ae meu camarada caso for eu mando pra vc o script pronto já com o seu script pronto me ajuda ae pfv
Fala jonathan, me passa por e-mail.
valderei.antunes@gmail.com
kd o vídeo que começa do zero ??? agradeço pela atenção
+Jamerson Tenorio, vai sair o vídeo sim, não esqueci dele. Após finalizar estes que estão em andamento, farei um conforme prometido para você e também para o +Elenilson17 Reis.
Valderei, no meu pc 64bits está rodando tranquilo, mas nos de 32bits que eu uso sempre da erro, isso ocorre em quase todas as planilhas aqui do canal, vc saberia acertar essa questão pra conseguir usar em qualquer computador?
Olá, +Arthur Pedroti, muito obrigado pela sua inscrição no canal.
Sobre sua questão, é interessante, pois meu notebook, usa o pacote de 32 bits e todos os projetos rodam tranquilamente.
Você pode me mandar um print do erro que estão dando os projetos? Assim fica mais fácil buscar a solução.
valderei.antunes@gmail.com
funcionou parabéns
Vlw.
Rapaiz, eu até iria te dar 100000 likes, mais não consegui adapter nem a pau no meu formulário. O seu arquivo roda direitinho. Entretanto, quando tento adaptar ao meu projeto que tem 5 formulários, não acontece nada. Adaptei, ou seja, troquei o Me pelo nome do formulário mesmo e não aparece os benditos botões e nem tem como redimensionar. Tem alguma ideia?
Conseguiiiiiiiiiiiiii carale-o! O problema é que o meu formulário estava sem "Caption". Coloquei e tudo foi resolvido! Agora valeu 100000000 likes pra ti!
Grande Ivan!!! Sabia que iria conseguir.
Parabéns garoto e obrigado pelos LIKES!!!
Muy bueno. Gracias por compartir.
Como faço para ter a planilha ?
Almir de Matos, tudo bem cara!! Eu estou tendo um pequeno problema de tráfego com meu dropbox, mas até o domingo todos os links estarão funcionando de novo, então você poderá baixar aqui no vídeo.
OK, mas se for possível você pode enviar para meu e-mail - almirdematos@gmail.com
muito bom show
Quais os créditos do código?!
Olá Rafaek Amorim, sua pergunta é sobre quem desenvolveu o código? Se sim, então minha resposta é, não lembro mais, mas era de um site Francês!!!
show de bola
não consegui baixar
Kellem, desculpe a demora, segue link para baixar o arquivo.
1drv.ms/x/s!Atl_KuGPjKIU1XvFYnmG7XA8G5b4?e=pcyf5o
Deu certo mas para simplificar basta fazer o seguinte: antes de mais nada ou de qualquer outro codigo ou ate mesmo de por uma textbox no userform voce vai criar um MODULO e colar esse cogido:
Option Explicit
Declare PtrSafe Function FindWindowA& Lib "User32" (ByVal lpClassName$, ByVal lpWindowName$)
Declare PtrSafe Function GetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&)
Declare PtrSafe Function SetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
' Declaração de Constantes
Public Const GWL_STYLE As Long = -16
Public Const WS_MINIMIZEBOX = &H20000
Public Const WS_MAXIMIZEBOX = &H10000
Public Const WS_FULLSIZING = &H70000
'Attention, envoyer après changement du caption de l'UF
Public Sub InitMaxMin(mCaption As String, Optional Max As Boolean = True, Optional Min As Boolean = True _
, Optional Sizing As Boolean = True)
Dim hWnd As Long
hWnd = FindWindowA(vbNullString, mCaption)
If Max Then SetWindowLongA hWnd, GWL_STYLE, GetWindowLongA(hWnd, GWL_STYLE) Or WS_MAXIMIZEBOX
If Min Then SetWindowLongA hWnd, GWL_STYLE, GetWindowLongA(hWnd, GWL_STYLE) Or WS_MINIMIZEBOX
If Sizing Then SetWindowLongA hWnd, GWL_STYLE, GetWindowLongA(hWnd, GWL_STYLE) Or WS_FULLSIZING
End Sub
======================================================================================================
xxxxx ai depois voce vai na nos codigos da UserForm e cola esse codigo:
===================================================================================================
'Declarações
Option Explicit
Dim Lg As Single
Dim Ht As Single
Dim Fini As Boolean
Private Sub UserForm_Initialize()
Dim i As Integer, L As Integer, TB
InitMaxMin Me.Caption
Ht = Me.Height
Lg = Me.Width
End Sub
'Instrução para redimensionar o formulário dos conteúdos do formulário (textbox, combobox,etc)
Private Sub UserForm_Resize()
Dim RtL As Single, RtH As Single
If Me.Width < 300 Or Me.Height < 200 Or Fini Then Exit Sub
RtL = Me.Width / Lg
RtH = Me.Height / Ht
Me.Zoom = IIf(RtL < RtH, RtL, RtH) * 100
End Sub
e pronto ta resolvido... (OBS: Tudo tirado do seu exemplo)
+T.Costa, show de bola, fico muito contente com contribuições como a sua, e é como sempre digo, existem diversas formas de se fazer a mesma coisa quando se trata de programação.
Abraço.
Tentei utilizar esta rotina, mas dá erro nas linha "If Max then SetWindowLongA... "if Min then SetWindowLongA... e "If Sizing Then SetWindowLongA..."
Aparece a seguinte mensagem "Número de argumentos incorreto ou atribuição de propriedade inválida"
Cara, meus parabéns pela iniciativa. Excelente teu código, aliás, simplesmente perfeito. Quando crescer quero ser igual a você kkkk.
Hola profesor buenas tarde, felicidades por su vídeo, es muy buen aporte. tengo un proyecto y quisiera hacerle unas consultas al respecto. por favor envíeme su email. le agradecería mucho.
Thank you so much
ta dando variavel nao definida
+T.Costa você precisa ser mais específico com seu problema, qual é a linha de instrução que esta ficando marcada quando o erro ocorre?
Se puder passar mais dados, posso tentar lhe ajudar.
ok vou fazer novamente e coloco aqui mais tarde
LINK OFFLINE
Olá, acabei de testar e está funcionando normal, pode verificar novamente?
Consegui amigo, muito obrigado, funcionou super bem e o formulário ficou bem mais profissional, tive um melhor aproveitamento da tela para o usuário final.
Gostei do conteúdo do seu canal, inscrito.
Show de bola!!!! Obrigado pelo comentário e pela inscrição.
Bom dia.Poderia enviar a planilha para chexu@ig.com.br? Obrigado
Bom dia +Helton Zanetti, o conteúdo do vídeo está disponível para download na descrição do vídeo.
Por isso te peço que se ainda não fez, faça sua inscrição, pois aqui todos os conteúdos tratados são liberados para download de forma gratuita e vitalícia.
Agradeço seu interesse e sua inscrição no canal, isso faz com que o conteúdo fique mais visível e mais facilmente acessado por outros interessados em Excel e VBA.
Abraço.
Obrigado. Não estou conseguindo abir porque o meu computador é de 64
+Helton Zanetti, interessante não estar funcionando, pois este projeto já está com as declarações corretas para funcionar em 64 bits.
Vc poderia me dizer qual é a mensagem que está sendo exibida?
Boa noite fiz tudo e deu certo aqui!
Mas há uma maneira muito mas muito mais simples de pôr o userform na tela toda que descobri aqui ua-cam.com/video/UAzCwax4qdA/v-deo.html
Obrigado Evandro Franco
E é assim:
Private Sub UserForm_Initialize()
Me.Height = Int(1.1 * ActiveWindow.Height) 'è só ir mudando os nr para melhorar o tamanho
Me.Width = Int(1 * ActiveWindow.Width)
End Sub
De qualquer maneira obrigado Vanderlei Antunes