Tengo una macro acabada, cuando llama a cada macro en su modulo indenpendiente la realiza bien, pero cuando la llamo desde un botón a todas ellas juntas no acaba de hacer bien las macros, a que puede ser debido??
Os pongo dicha macro en cuestión.
Código: Seleccionar todo
Sub NuevoMes()
Call CambiarFecha
Call BorrarDatos
Call Semana1
Call Semana5
Call Semana6
Call OcultarHoja6
End Sub
Sub CambiarFecha()
Dim oDoc As Object
Dim oOrigen As Object
Dim oDestino As Object
'Este documento
oDoc = ThisComponent
'La hoja activa
oDoc = ThisComponent.getSheets.getByName ("Rangos")
'El rango origen
oOrigen = oDoc.getCellRangeByName( "FechaSiguiente" )
'La celda destino A15
oDestino = oDoc.getCellByPosition( 29,111 )
'Copiamos el rango
oDoc.copyRange( oDestino.getCellAddress, oOrigen.getRangeAddress )
'IMPORTANTE: Todos estos métodos requieren que el origen y el destino tengan
'EXACTAMENTE el mismo tamaño
oDestino = oDoc.getCellRangeByName( "Fechaactual" )
oDestino.setData( oOrigen.getData )
End Sub
Sub BorrarDatos()
Dim oDoc As Object
Dim oRango1 As Object
Dim oRango2 As Object
Dim oRango3 As Object
Dim oRango4 As Object
Dim oRango5 As Object
Dim oRango6 As Object
'Este documento
oDoc = ThisComponent
'Hoja por nombre rango por nombre
oRango1 = oDoc.getSheets.getByName("Semana 1").getCellRangeByName("C6:I50")
oRango2 = oDoc.getSheets.getByName("Semana 2").getCellRangeByName("C6:I50")
oRango3 = oDoc.getSheets.getByName("Semana 3").getCellRangeByName("C6:I50")
oRango4 = oDoc.getSheets.getByName("Semana 4").getCellRangeByName("C6:I50")
oRango5 = oDoc.getSheets.getByName("Semana 5").getCellRangeByName("C6:I50")
oRango6 = oDoc.getSheets.getByName("Semana 6").getCellRangeByName("C6:I50")
'Borramos todos los datos en cada rango
oRango1.clearContents(1)
oRango2.clearContents(1)
oRango3.clearContents(1)
oRango4.clearContents(1)
oRango5.clearContents(1)
oRango6.clearContents(1)
End Sub
Sub Semana1()
Dim Hoja1 As Object
Dim Contador As Integer
Hoja1 = ThisComponent.getSheets.getByName("Semana 1")
For Contador = 2 To 7
If Hoja1.getCellByPosition(Contador,4).getValue = 0 Then
Hoja1.getCellByPosition(Contador,4).getColumns.IsVisible = False
End If
Next Contador
End Sub
Sub Semana5()
Dim Hoja5 As Object
Dim Contador As Integer
Hoja5 = ThisComponent.getSheets.getByName("Semana 5")
For Contador = 3 To 8
If Hoja5.getCellByPosition(Contador,4).getValue = 0 Then
Hoja5.getCellByPosition(Contador,4).getColumns.IsVisible = False
End If
Next Contador
End Sub
Sub OcultarHoja6()
Dim Hoja6 As Object
Dim HojaRangos As Object
Dim oDoc As Object
Hoja6 = ThisComponent.getSheets.getByName("Semana 6")
If Hoja6.getCellRangeByName("C5").getValue() > 0 Then
Hoja6 = ThisComponent.getSheets().getByIndex(6)
Hoja6.isVisible = Not Hoja6.isVisible
Else
End If
End Sub
Sub Semana6()
Dim HojaRangos As Object
Dim Hoja6 As Object
Dim sCol As String
'Capitulo 6.1
HojaRangos = ThisComponent.getSheets.getByName("Rangos")
Hoja6 = ThisComponent.getSheets.getByName("Semana 6")
'If HojaRangos.Range("$AI$21") > 0 Then
'Capitulo 6.2 y 6.4.1
If HojaRangos.getCellRangeByName("$R$21").getValue() > 0 Then
'If Hoja6.Range("C5") > 0 Then
If Hoja6.getCellRangeByName("D5").getValue() > 0 Then
'Columns("D:H").Select
sCol = "E1:I1"
Else
sCol = "D1:I1"
'Columns("C:H").Select
End If
'Selection.EntireColumn.Hidden = True
'Capitulo 6.5.2
Hoja6.getCellRangeByName( sCol ).getColumns.IsVisible = False
'Range("B6").Select
Else
'If Hoja6.Visible = xlSheetHidden Then
'Capitulo 6.1.6
If Not Hoja6.isVisible Then
'Hoja6.Visible = xlSheetVisible
Hoja6.isVisible = True
End If
'Hoja6.Visible = xlSheetHidden
Hoja6.isVisible = False
End If
End Sub