Pergunte aqui

Histórico de revisões [voltar]

clique para ocultar/mostrar a revisão 1
Versão inicial

Consegui fazer o que precisava não sei se é a melhor forma. funcionou com um intervalo nomeado de apenas uma célula. Quem quiser conferir tá aí:

Sub CelulaAlterada(oCelula) ' Testar se o objeto selecionado é uma célula individual' If oCelula.ImplementationName <> "ScCellObj" Then Exit Sub

'//---------------------------'
'Manipula o intervalo nomeado em questão "Config_Ano" '
oDoc = ThisComponent
oRange = oDoc.NamedRanges.getByName("Config_Ano")
oCell = oRange.ReferredCells.getCellByPosition(0,0)

'Nome absoluto da célula do intervalo nomeado no caso: $Config.$D$1'
nomeIntervaloNomeado = oCell.AbsoluteName
'//---------------------------'

If oCelula.AbsoluteName = nomeIntervaloNomeado Then
    'Chamar a macro desejada'
    Call CalcularMoonPhases

    'se quiser saber conteúdo da célula do intervalo nomeado'
    valorIntervaloNomeado = oCell.Value
    msgbox valorIntervaloNomeado
End If

End Sub

Agora eu posso recortar e colar a celula nomeado em qualquer local da planilha e a macro vai funcionar. Se alguém tiver uma sugestão mais adequada estou aceitando Obrigado.

Consegui fazer o que precisava não sei se é a melhor forma. funcionou com um intervalo nomeado de apenas uma célula. Quem quiser conferir tá aí:

Sub CelulaAlterada(oCelula)
    ' Testar se o objeto selecionado é uma célula individual'
    If oCelula.ImplementationName <> "ScCellObj" Then Exit Sub

Sub

    '//---------------------------'
 'Manipula o intervalo nomeado em questão "Config_Ano" '
"Config_Ano"'
    oDoc = ThisComponent
 oRange = oDoc.NamedRanges.getByName("Config_Ano")
 oCell = oRange.ReferredCells.getCellByPosition(0,0)

 'Nome absoluto da célula do intervalo nomeado no caso: $Config.$D$1'
 nomeIntervaloNomeado = oCell.AbsoluteName
 '//---------------------------'

 If oCelula.AbsoluteName = nomeIntervaloNomeado Then
     'Chamar a macro desejada'
     Call CalcularMoonPhases

     'se quiser saber conteúdo da célula do intervalo nomeado'
     valorIntervaloNomeado = oCell.Value
     msgbox valorIntervaloNomeado
 End If
If  
End Sub

End Sub

Agora eu posso recortar e colar a celula nomeado em qualquer local da planilha e a macro vai funcionar. Se alguém tiver uma sugestão mais adequada estou aceitando Obrigado.

Consegui fazer o que precisava não sei se é a melhor forma. funcionou com um intervalo nomeado de apenas uma célula. Quem quiser conferir tá aí:

Sub CelulaAlterada(oCelula)
    ' Testar se o objeto selecionado é uma célula individual'
    If oCelula.ImplementationName <> "ScCellObj" Then Exit Sub

    '//---------------------------'
    'Manipula o intervalo nomeado em questão "Config_Ano"'
"Config_Ano" '
    oDoc = ThisComponent
    oRange = oDoc.NamedRanges.getByName("Config_Ano")
    oCell = oRange.ReferredCells.getCellByPosition(0,0)

    'Nome absoluto da célula do intervalo nomeado no caso: $Config.$D$1'
    nomeIntervaloNomeado = oCell.AbsoluteName
    '//---------------------------'

    If oCelula.AbsoluteName = nomeIntervaloNomeado Then
        'Chamar a macro desejada'
        Call CalcularMoonPhases

        'se quiser saber conteúdo da célula do intervalo nomeado'
        valorIntervaloNomeado = oCell.Value
        msgbox valorIntervaloNomeado
    End If  
End Sub

Agora eu posso recortar e colar a celula nomeado em qualquer local da planilha e a macro vai funcionar. Se alguém tiver uma sugestão mais adequada estou aceitando aceitando

Deixei no msgbox como pegar o valor da céĺula com o intervalo nomeado caso seja útil pra outros usuários. Obrigado.

Consegui fazer o que precisava não sei se é a melhor forma. funcionou com um intervalo nomeado de apenas uma célula. Quem quiser conferir tá aí:

Sub CelulaAlterada(oCelula)
    ' Testar se o objeto selecionado é uma célula individual'
    If oCelula.ImplementationName <> "ScCellObj" Then Exit Sub

    '//---------------------------'
    'Manipula o intervalo nomeado em questão "Config_Ano" '
    oDoc = ThisComponent
    oRange = oDoc.NamedRanges.getByName("Config_Ano")
    oCell = oRange.ReferredCells.getCellByPosition(0,0)

    'Nome absoluto da célula do intervalo nomeado no caso: $Config.$D$1'
    nomeIntervaloNomeado = oCell.AbsoluteName
    '//---------------------------'

    If oCelula.AbsoluteName = nomeIntervaloNomeado Then
        'Chamar a macro desejada'
        Call CalcularMoonPhases

        'se quiser saber conteúdo da célula do intervalo nomeado'
        valorIntervaloNomeado = oCell.Value
        msgbox valorIntervaloNomeado
    End If  
End Sub

Agora eu posso recortar e colar a celula célula do intervalo nomeado em qualquer local da mesma planilha e a macro vai funcionar. funcionar. Também posso renomear a planilha sem ter que fazer alteração no código da macro. Se alguém tiver uma sugestão mais adequada estou aceitando

Deixei no msgbox como pegar o valor da céĺula com o intervalo nomeado caso seja útil pra outros usuários. Obrigado.

Consegui fazer o que precisava não sei se é a melhor forma. funcionou com um intervalo nomeado de apenas uma célula. Quem quiser conferir tá aí:

Sub CelulaAlterada(oCelula)
    ' Testar se o objeto selecionado é uma célula individual'
    If oCelula.ImplementationName <> "ScCellObj" Then Exit Sub

    '//---------------------------'
    'Manipula o intervalo nomeado em questão "Config_Ano" '
    oDoc = ThisComponent
    oRange = oDoc.NamedRanges.getByName("Config_Ano")
    oCell = oRange.ReferredCells.getCellByPosition(0,0)

    'Nome absoluto da célula do intervalo nomeado no caso: $Config.$D$1'
$Planilha2.$D$1'
    nomeIntervaloNomeado = oCell.AbsoluteName
    '//---------------------------'

    If oCelula.AbsoluteName = nomeIntervaloNomeado Then
        'Chamar a macro desejada'
        Call CalcularMoonPhases

        'se quiser saber conteúdo da célula do intervalo nomeado'
        valorIntervaloNomeado = oCell.Value
        msgbox valorIntervaloNomeado
    End If  
End Sub

Agora eu posso recortar e colar a célula do intervalo nomeado em qualquer local da mesma planilha e a macro vai funcionar. Também posso renomear a planilha sem ter que fazer alteração no código da macro. Se alguém tiver uma sugestão mais adequada estou aceitando

Deixei no msgbox como pegar o valor da céĺula com o intervalo nomeado caso seja útil pra outros usuários. Obrigado.