Una macro de vba a oobasic
Una macro de vba a oobasic
buenos dias,
estoy pasando la macro de vba a oobasic y queria saber si podian ayudarme
Sub genera()
Sheets("INICIO").Select
entidad = Range("C7").Value
sucursal = Range("C8").Value
Sheets("VENTA").Visible = xlSheetVisible
Sheets("VENTA").Select
Cells.Select
Range("A2").Activate
Selection.Copy
Sheets("VENTA").Visible = xlSheetHidden
Sheets.Add Type:=xlWorksheet
ActiveSheet.Name = "V_" & sucursal
Range("A1").Select
ActiveSheet.Paste
Range("A3").Value = entidad
Range("B3").Value = sucursal
ActiveWindow.Zoom = 75
ActiveSheet.Protect "kplus2002"
End Sub
Sub borra()
Application.DisplayAlerts = False
For Each ws In Worksheets
If ws.Name <> "INICIO" And ws.Name <> "COMPRA" And ws.Name <> "VENTA" And ws.Name <> "denom" Then ws.Delete
Next
Application.DisplayAlerts = True
End Sub
Gracias
Editado por el moderador (mauricio) para separar el mensaje del tema original por tratarse de un problema diferente. Si no lo has hecho aún por favor lee la Guía de supervivencia
estoy pasando la macro de vba a oobasic y queria saber si podian ayudarme
Sub genera()
Sheets("INICIO").Select
entidad = Range("C7").Value
sucursal = Range("C8").Value
Sheets("VENTA").Visible = xlSheetVisible
Sheets("VENTA").Select
Cells.Select
Range("A2").Activate
Selection.Copy
Sheets("VENTA").Visible = xlSheetHidden
Sheets.Add Type:=xlWorksheet
ActiveSheet.Name = "V_" & sucursal
Range("A1").Select
ActiveSheet.Paste
Range("A3").Value = entidad
Range("B3").Value = sucursal
ActiveWindow.Zoom = 75
ActiveSheet.Protect "kplus2002"
End Sub
Sub borra()
Application.DisplayAlerts = False
For Each ws In Worksheets
If ws.Name <> "INICIO" And ws.Name <> "COMPRA" And ws.Name <> "VENTA" And ws.Name <> "denom" Then ws.Delete
Next
Application.DisplayAlerts = True
End Sub
Gracias
Editado por el moderador (mauricio) para separar el mensaje del tema original por tratarse de un problema diferente. Si no lo has hecho aún por favor lee la Guía de supervivencia
openoffice 3 en windows xp
Re: Una macro de vba a oobasic
No conozco VB pero he intentado replicar el código en OooBasic. He supuesto que “entidad” y “sucursal” son texto.
Código: Seleccionar todo
Sub genera
Doc = ThisComponent
Hoja_IN = Doc.Sheets.getByName("INICIO")
entidad = Hoja_IN.getCellrangeByName("C7").getString()
sucursal = Hoja_IN.getCellrangeByName("C8").getString()
Hoja_VEN = Doc.Sheets.getByName("VENTA")
'Hoja_VEN.isVisible = True
VEN_Cell = Hoja_VEN.getCellrangeByName("A2")
RAddress = VEN_Cell.RangeAddress
'Hoja_VEN.isVisible = False
Hojas = Doc.Sheets
Hojas.insertNewByName("V_" + sucursal, 2)
Hoja_VSuc = Hojas.getByName("V_" & sucursal)
Cell_A1 = Hoja_VSuc.getCellrangeByName("A1")
CellAddress = Cell_A1.CellAddress
Hoja_VSuc.copyRange(CellAddress, RAddress)
Cell_A3 = Hoja_VSuc.getCellrangeByName("A3")
Cell_A3.string = entidad
Cell_B3 = Hoja_VSuc.getCellrangeByName("B3")
Cell_B3.string = sucursal
End Sub
Sub Borrar
Hojas = ThisComponent.Sheets
HojaEnum = Hojas.createEnumeration
While HojaEnum.hasMoreElements
Hoja = HojaEnum.nextElement
If Hoja.Name <> "INICIO" AND Hoja.Name <> "VENTA" AND Hoja.Name <> "denom" AND Hoja.Name <> "COMPRA" Then
Hojas.removeByName(Hoja.Name)
End If
Wend
end subRe: Una macro de vba a oobasic
La macro “genera”:
1.Inserta una hoja nueva cuyo nombre depende del texto en al celda INICIO.C8
2.Copia VENTA.A2 a A1 de la hoja nueva.
3.Copia el texto de INICIO.C7 a A3 de la hoja nueva.
4.Copia el texto de INICIO.C8 a B3 de la hoja nueva.
La macro Borrar elimina todas las hojas excepto VENTA, INICIO, denom y COMPRA
1.Inserta una hoja nueva cuyo nombre depende del texto en al celda INICIO.C8
2.Copia VENTA.A2 a A1 de la hoja nueva.
3.Copia el texto de INICIO.C7 a A3 de la hoja nueva.
4.Copia el texto de INICIO.C8 a B3 de la hoja nueva.
La macro Borrar elimina todas las hojas excepto VENTA, INICIO, denom y COMPRA
Código: Seleccionar todo
Sub genera
'Usar el documento que llamo la macro
Doc = ThisComponent
'Hoja_IN = la hoja INICIO
Hoja_IN = Doc.Sheets.getByName("INICIO")
'entidad = el texto de la celda INICIO.C7
entidad = Hoja_IN.getCellrangeByName("C7").getString()
'sucursal = el texto de la celda INICIO.C8
sucursal = Hoja_IN.getCellrangeByName("C8").getString()
'Hoja_VEN = la hoja VENTA
Hoja_VEN = Doc.Sheets.getByName("VENTA")
'Hoja_VEN.isVisible = True
'VEN_Cell = la celda VENTA.A2
VEN_Cell = Hoja_VEN.getCellrangeByName("A2")
'Guardar el RangeAddress de VEN_Cell para copiar la después
RAddress = VEN_Cell.RangeAddress
'Hoja_VEN.isVisible = False
'Hojas contiene todas las hojas del documento
Hojas = Doc.Sheets
'Crear una hoja nueva con el nombre "V_" + sucursal
Hojas.insertNewByName("V_" + sucursal, 2)
'Hoja_VSuc = la hoja nueva
Hoja_VSuc = Hojas.getByName("V_" + sucursal)
'Cell_A1 = la celda A1 de la hoja nueva
Cell_A1 = Hoja_VSuc.getCellrangeByName("A1")
'Guardar el CellAddress de Cell_A1 para copiar VENTA.A2
CellAddress = Cell_A1.CellAddress
'Pegar VENTA.A2 en celda A1 de la hoja nueva
Hoja_VSuc.copyRange(CellAddress, RAddress)
'Cell_A3 = la celda A3 de la hoja nueva
Cell_A3 = Hoja_VSuc.getCellrangeByName("A3")
'Poner el texto guardado en entidad en la celda A3
Cell_A3.string = entidad
'Cell_B3 = la celda B3 de la hoja nueva
Cell_B3 = Hoja_VSuc.getCellrangeByName("B3")
'Poner el texto guardado en sucural en la celda B3
Cell_B3.string = sucursal
End Sub Re: Una macro de vba a oobasic
Perdonar, por no explicarla bien. Efectivamente es una hoja excel, que tiene dos botones (inicio, compra) y dos cuadros de texto entidad y sucursal. Esta hoja excel, lo que hace es al pinchar en el boton compra, lanza la macro genera y abre una nueva ventana pasandole los compos entidad y sucursal que son (C7 y C8).
He intentado poner la macro que me habeis facilitado y me da problemas en "Hojas.insertNewByName("V_" + sucursal, 2)" me dice que hay un error de sintaxis. Puede ser por la versión de OpenOffice que tengo instalada? Tengo la versión 3.
Gracias por vuestra ayuda
Un saludo
He intentado poner la macro que me habeis facilitado y me da problemas en "Hojas.insertNewByName("V_" + sucursal, 2)" me dice que hay un error de sintaxis. Puede ser por la versión de OpenOffice que tengo instalada? Tengo la versión 3.
Gracias por vuestra ayuda
Un saludo
openoffice 3 en windows xp
Re: Una macro de vba a oobasic
Chicos estoy descubriendo que lo que hace es abrir una hoja oculta que contiene unas tablas.
openoffice 3 en windows xp
Re: Una macro de vba a oobasic
Si, la muestra y después la oculta, pero esto no es necesario, la macro que te paso el compañero hace casi lo mismo, checalo por favor...
Saludos
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro