Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

GTTJ

MouseMove em Célula

Recommended Posts

Ola´,

Estou com o seguinte problema:

Tenho uma fórmula =SEERRO(HIPERLINK(MouseMove(B7);"");EJ7),na célula B7. Note que tenho duas funções uma Hiperlink e outra chamada MouseMove, UDF. Este jogo me permite o efeito de MouseMove em célula.

Estou com problema na terceira passagem do Menu, que também contém está formula. Parece que tem algum evento concorrente, mas não consigo me desvencilhar, pois na terceira passagem do Menu ele só executa a primeira linha. e ignora o restante. Exemplficando:

Na célula B7 está aparecendo a palavra Menu que se localiza na célula "EJ7". assim: =SEERRO(HIPERLINK(MouseMove(B7);"");EJ7)

Esta fórmula ou Macro chama a função

Function MouseMove(endereco As Range)
If Range("D1") = endereco Then Exit Function
If endereco.Address = "$B$7" Then
Range("D8:F50") = ""
Range("D1") = endereco
Range("B8:B9") = "=IFERROR(HYPERLINK(MouseMove1(RC),""""),RC[138])"
Application.EnableEvents = False
Range("D8:F50") = ""
End If
End Function
Nas células B8 e B9 aparecem as palavras "Coordenador" e "Supervisor" e as fórmulas são:
=SEERRO(HIPERLINK(MouseMove1(B8);"");EJ8)
=SEERRO(HIPERLINK(MouseMove1(B9);"");EJ9)
A função chamada é:
Function MouseMove1(endereco As Range)
'Application.EnableEvents = True
If Range("D1") = endereco Then Exit Function
If endereco.Address = "$B$9" Then
Range("D8:F50") = ""
Range("FK2:FK40") = ""
Range("D1") = endereco
Macro1
X = Application.WorksheetFunction.CountA(Range("FK1:FK500"))
'Application.EnableEvents = False
'Range("D9:D19") = "=IFERROR(HYPERLINK(MouseMove2(RC),""""),R[-8]C[151])"
Range(Chr(endereco.Column + 66) & endereco.Row & ":" & Chr(endereco.Column + 66) & endereco.Row + X - 1) = "=IFERROR(HYPERLINK(MouseMove2(R[-8]C[151]),R[-8]C[151]),R[-8]C[151])"
'Calculate
'Call Adicionar_Analista
'Application.EnableEvents = False
End If
If endereco.Address = "$B$8" Then
Range("D8:F50") = ""
Range("D1") = endereco
X = Application.WorksheetFunction.CountA(Range("FL1:FL500"))
'Application.EnableEvents = False
Range(Chr(endereco.Column + 66) & endereco.Row & ":" & Chr(endereco.Column + 66) & endereco.Row + X - 1) = "=IFERROR(HYPERLINK(MouseMove3(R[-7]C[164]),R[-7]C[164]),R[-7]C[164])"
Application.EnableEvents = True
End If
Observação está função cria um submenu com o nome dos supervisores, caso a célula escolhida foi "B9" ou "B8", no caso de Coordenador. Até aquí tubo bem, porém, neste submenu também tem outra conjugação desta fórmulas, mas só é executado a primeira linha desta terceira função:
. Notem a função:
Function MouseMove2(endereco As Range)
Range("E1") = endereco.Value
X = Application.WorksheetFunction.CountA(Range("FJ1:FJ500"))
Range(Chr(endereco.Column + 65) & endereco.Row & ":" & Chr(endereco.Column + 65) & endereco.Row + X - 1) = "=IFERROR(HYPERLINK(MouseMove1(RC),""""),R[" & -endereco.Row + 1 & "]C[149])"
End Function
Nela solicito que:
Na 1ª Linha - A célula "E1" receba o valor correspondente a onde Mouse estiver passando, pois vou precisar deste valor.
Na 2ª Linha - Faça a contagem de quantos operadores estão abaixo deste supervisor em questão.
Na 3ª Linha - Informo para ele criar um segundo submenu contendo os nomes Operadores daquele Supervisor.
Só é executado a primeira linha.
Já tentei várias coisas Application.EnableEvents de diversas formas.
Conjugar com o evento Change e Nada!
Alguém se puder me ajudar fico grato!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por AndréAraujo
      Olá pessoal, venho procurando uma maneira de fazer com que o evento mousemove
      seja reconhecido quando executado sobre um iframe do YouTube, minha ideia inicial
      foi sobrepor uma div ao iframe, mas o devido aos banners e anúncios em vídeo a ideia
      se tornou inviável. Procurei por um bom tempo soluções, não encontrei nenhuma que eu
      pudesse compreender e adaptar-la ao meu projeto.
      Montei um pequena simulação do projeto para tornar mais fácil a exibição do problema:
      <!doctype html> <html> <head> <meta charset="utf-8"> <title>Documento sem título</title> <script src='https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js' type='text/javascript'></script> </head> <body> <style> .area-mousemove{ width:600px; height:500px; background-color:#09F; margin:0 auto; } .container{ max-width:600px; max-height:337.5px; position:relative; } .container-player{ padding-bottom:56.25%; height:0; background-color:#222; } #ytplayer{ display:block; } .container-player iframe, .container-player object, .container-player embed{ background-color:#000; position:absolute; top:0; left:0; width:100%; height:100%; border:0; z-index:1; } .controls{ width:100%; height:40px; background-color:#F60; position:absolute; z-index:1; bottom:0; left:0; display:none; } .text{ line-height:40px; margin-left:20px; font-family:Arial; font-size:18px; font-weight:700; color:#000; display:table; float:left; cursor:default; } .screen{ line-height:40px; background-color:#222; margin-right:20px; padding:0 10px; font-family:Arial; font-size:18px; font-weight:700; color:#fff; float:right; cursor:pointer; } .close-screen{ line-height:40px; background-color:#222; margin-right:20px; padding:0 10px; font-family:Arial; font-size:18px; font-weight:700; color:#fff; float:right; display:none; cursor:pointer; } </style> <div class="area-mousemove"> <div class="container"> <div id="container-screen"> <div class="container-player"> <iframe id="ytplayer" type="text/html" src="https://www.youtube.com/embed/2TvNnW2Br70?controls=0&rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe> <div class="controls"><span class="text">Controles</span><span class="screen start">Screen</span><span class="close-screen start">[ x ]</span></div> </div> </div> </div> </div> <script> $('.area-mousemove').mousemove(function(cursor){ $('.controls').fadeIn(200); hideStart(); }); var timeout; function hideStart(){ if(timeout !== undefined){ clearTimeout(timeout); } timeout = setTimeout(function(){ $('.controls').fadeOut(200); }, 2500); } $('.controls span.start').on('click', function(a){ $('.screen').hide(); $('.close-screen').show(); var elem = document.getElementById("container-screen"); if(elem.requestFullscreen){ elem.requestFullscreen(); }else if(elem.mozRequestFullScreen){ /* Firefox */ elem.mozRequestFullScreen(); }else if(elem.webkitRequestFullscreen){ /* Chrome, Safari & Opera */ elem.webkitRequestFullscreen(); }else if(elem.msRequestFullscreen){ /* IE/Edge */ elem.msRequestFullscreen(); } screenfull.toggle($('#container-screen')[0]); }); if (document.addEventListener){ document.addEventListener('webkitfullscreenchange', exitHandler, false); document.addEventListener('mozfullscreenchange', exitHandler, false); document.addEventListener('fullscreenchange', exitHandler, false); document.addEventListener('MSFullscreenChange', exitHandler, false); } function exitHandler(){ if(!document.webkitIsFullScreen && !document.mozFullScreen && !document.msFullscreenElement){ $('.close-screen').hide(); $('.screen').show(); $('.controls').css('position', 'absolute'); } } </script> <script type="text/jscript" src="https://AndreAraujo1.github.io/screen/screen.js"></script> </body> </html> Agradeço a atenção!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.