Pergunte aqui

Histórico de revisões [voltar]

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

CreateNames

Bom dia! Preciso saber qual código no Basic utilizo para criar um intervalo nomeado. Tentei gravar uma macro fazendo isso de várias formas mas não aparece o código na macro e nem faz a gravação depois que executo a macro. Preciso do código pois irei personalizar essa função.

Meu intuito é criar um botão que faça várias nomeações de intervalos com determinados critérios em um loop.

CreateNames

Bom dia! Preciso saber qual código no Basic utilizo para criar um intervalo nomeado. Tentei gravar uma macro fazendo isso de várias formas mas não aparece o código na macro e nem faz a gravação depois que executo a macro. Preciso do código pois irei personalizar essa função.

Meu intuito é criar um botão que faça várias nomeações de intervalos com determinados critérios em um loop. loop.

Segue abaixo o código desse loop no excel, estou tentando passar para o libre mas não estou conseguindo:

"Private Sub CommandButton1_Click()

Dim n As Long Dim i As Long Dim m As Long Dim linha As String Dim linhai As String Dim linham As String Dim intervaloinicial As String Dim intervalofinal As String Dim intervalo As String

i = 1 n = 2 m = 3 linha = "I" & n linham = "I" & m

While Not IsEmpty(Range(linham).Value)

While Sheets("CORES E TAMANHO LUPO").Range(linha).Value = Sheets("CORES E TAMANHO LUPO").Range(linham).Value

linha = "I" & n linhai = "I" & i linham = "I" & m

If Sheets("CORES E TAMANHO LUPO").Range(linhai).Value <> Sheets("CORES E TAMANHO LUPO").Range(linha).Value Then
intervaloinicial = "J" & n
End If
If Sheets("CORES E TAMANHO LUPO").Range(linha).Value <> Sheets("CORES E TAMANHO LUPO").Range(linham).Value Then
intervalofinal = "J" & n
End If

n = n + 1 i = i + 1 m = m + 1

Wend

intervalo = intervaloinicial & ":" & intervalofinal ActiveWorkbook.Names.Add Name:=Sheets("CORES E TAMANHO LUPO").Range(linha).Value, RefersToR1C1:=intervalo ActiveWorkbook.Names(Sheets("CORES E TAMANHO LUPO").Range(linha).Value).Comment = ""

linha = "I" & n linham = "I" & m

Wend

End Sub"

CreateNames

Bom dia! Preciso saber qual código no Basic utilizo para criar um intervalo nomeado. Tentei gravar uma macro fazendo isso de várias formas mas não aparece o código na macro e nem faz a gravação depois que executo a macro. Preciso do código pois irei personalizar essa função.

Meu intuito é criar um botão que faça várias nomeações de intervalos com determinados critérios em um loop.

Segue abaixo o código desse loop no excel, estou tentando passar para o libre mas não estou conseguindo:

"Private Sub CommandButton1_Click()

CommandButton1_Click() Dim n As Long Dim i As Long Dim m As Long Dim linha As String Dim linhai As String Dim linham As String Dim intervaloinicial As String Dim intervalofinal As String Dim intervalo As String

String i = 1 n = 2 m = 3 linha = "I" & n linham = "I" & m

m While Not IsEmpty(Range(linham).Value)

IsEmpty(Range(linham).Value) While Sheets("CORES E TAMANHO LUPO").Range(linha).Value = Sheets("CORES E TAMANHO LUPO").Range(linham).Value

LUPO").Range(linham).Value linha = "I" & n linhai = "I" & i linham = "I" & m

m

    If Sheets("CORES E TAMANHO LUPO").Range(linhai).Value <> Sheets("CORES E TAMANHO LUPO").Range(linha).Value Then
 intervaloinicial = "J" & n
 End If
 If Sheets("CORES E TAMANHO LUPO").Range(linha).Value <> Sheets("CORES E TAMANHO LUPO").Range(linham).Value Then
 intervalofinal = "J" & n
 End If

n = n + 1 i = i + 1 m = m + 1

Wend

1 Wend intervalo = intervaloinicial & ":" & intervalofinal ActiveWorkbook.Names.Add Name:=Sheets("CORES E TAMANHO LUPO").Range(linha).Value, RefersToR1C1:=intervalo ActiveWorkbook.Names(Sheets("CORES E TAMANHO LUPO").Range(linha).Value).Comment = """" linha = "I" & n linham = "I" & m Wend End Sub"

.

linha = "I" & n linham = "I" & m

Wend

End Sub"

CreateNames

Bom dia! Preciso saber qual código no Basic utilizo para criar um intervalo nomeado. Tentei gravar uma macro fazendo isso de várias formas mas não aparece o código na macro e nem faz a gravação depois que executo a macro. Preciso do código pois irei personalizar essa função.

Meu intuito é criar um botão que faça várias nomeações de intervalos com determinados critérios em um loop.

Segue abaixo o código desse loop no excel, estou tentando passar para o libre mas não estou conseguindo:

"Private Sub CommandButton1_Click()

Dim n As Long
Dim i As Long
Dim m As Long
Dim linha As String
Dim linhai As String
Dim linham As String
Dim intervaloinicial As String
Dim intervalofinal As String
Dim intervalo As String

i = 1
n = 2
m = 3
linha = "I" & n
linham = "I" & m

While Not IsEmpty(Range(linham).Value)

While Sheets("CORES E TAMANHO LUPO").Range(linha).Value = Sheets("CORES E TAMANHO LUPO").Range(linham).Value

linha = "I" & n
linhai = "I" & i
linham = "I" & m

    If Sheets("CORES E TAMANHO LUPO").Range(linhai).Value <> Sheets("CORES E TAMANHO LUPO").Range(linha).Value Then
    intervaloinicial = "J" & n
    End If
    If Sheets("CORES E TAMANHO LUPO").Range(linha).Value <> Sheets("CORES E TAMANHO LUPO").Range(linham).Value Then
    intervalofinal = "J" & n
    End If

n = n + 1
i = i + 1
m = m + 1

Wend

intervalo = intervaloinicial & ":" & intervalofinal
ActiveWorkbook.Names.Add Name:=Sheets("CORES E TAMANHO LUPO").Range(linha).Value, RefersToR1C1:=intervalo
ActiveWorkbook.Names(Sheets("CORES E TAMANHO LUPO").Range(linha).Value).Comment = ""

linha = "I" & n
linham = "I" & m

Wend

End Sub"

.

Passei o a tarde tentando e conseguir chegar a isso, mas falta inserir o nome do intervalo direto, coisa que não estou conseguindo:

 "sub Main
 rem ----------------------------------------------------------------------
 rem define variables
 dim document   as object
 dim dispatcher as object
 dim intervalo as String
 dim x as Long
 dim y as Long
 rem ----------------------------------------------------------------------
 rem get access to the document
 document   = ThisComponent.CurrentController.Frame
 dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
 x = 2
 y = 5
 intervalo = "$J$" & x & ":$J$" & y

 rem ----------------------------------------------------------------------
 dim args1(0) as new com.sun.star.beans.PropertyValue
 args1(0).Name = "ToPoint"
 args1(0).Value = intervalo

 dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

 rem ----------------------------------------------------------------------
 dispatcher.executeDispatch(document, ".uno:CreateNames", "", 0, Array())

 end sub"

CreateNames

Bom dia! Preciso saber qual código no Basic utilizo para criar um intervalo nomeado. Tentei gravar uma macro fazendo isso de várias formas mas não aparece o código na macro e nem faz a gravação depois que executo a macro. Preciso do código pois irei personalizar essa função.

Meu intuito é criar um botão que faça várias nomeações de intervalos com determinados critérios em um loop.

Segue abaixo o código desse loop no excel, estou tentando passar para o libre mas não estou conseguindo:

"Private Sub CommandButton1_Click()

Dim n As Long
Dim i As Long
Dim m As Long
Dim linha As String
Dim linhai As String
Dim linham As String
Dim intervaloinicial As String
Dim intervalofinal As String
Dim intervalo As String

i = 1
n = 2
m = 3
linha = "I" & n
linham = "I" & m

While Not IsEmpty(Range(linham).Value)

While Sheets("CORES E TAMANHO LUPO").Range(linha).Value = Sheets("CORES E TAMANHO LUPO").Range(linham).Value

linha = "I" & n
linhai = "I" & i
linham = "I" & m

    If Sheets("CORES E TAMANHO LUPO").Range(linhai).Value <> Sheets("CORES E TAMANHO LUPO").Range(linha).Value Then
    intervaloinicial = "J" & n
    End If
    If Sheets("CORES E TAMANHO LUPO").Range(linha).Value <> Sheets("CORES E TAMANHO LUPO").Range(linham).Value Then
    intervalofinal = "J" & n
    End If

n = n + 1
i = i + 1
m = m + 1

Wend

intervalo = intervaloinicial & ":" & intervalofinal
ActiveWorkbook.Names.Add Name:=Sheets("CORES E TAMANHO LUPO").Range(linha).Value, RefersToR1C1:=intervalo
ActiveWorkbook.Names(Sheets("CORES E TAMANHO LUPO").Range(linha).Value).Comment = ""

linha = "I" & n
linham = "I" & m

Wend

End Sub"

.

Passei o a tarde tentando e conseguir chegar a isso, mas falta inserir o nome do intervalo direto, coisa que não estou conseguindo:

 "sub Main
 rem ----------------------------------------------------------------------
 rem define variables
 dim document   as object
 dim dispatcher as object
 dim intervalo as String
 dim x as Long
 dim y as Long
 rem ----------------------------------------------------------------------
 rem get access to the document
 document   = ThisComponent.CurrentController.Frame
 dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
 x = 2
 y = 5
 intervalo = "$J$" & x & ":$J$" & y

 rem ----------------------------------------------------------------------
 dim args1(0) as new com.sun.star.beans.PropertyValue
 args1(0).Name = "ToPoint"
 args1(0).Value = intervalo

 dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

 rem ----------------------------------------------------------------------
 dispatcher.executeDispatch(document, ".uno:CreateNames", "", 0, Array())

 end sub"