Código vb:
Ver original
Function RESULTADOS (celdaMes As String, celdaCabecera As String) Dim hojaBuscada As Integer Dim filaBuscada As Integer Dim columnaBuscada As Integer ' Si la hoja es la correcta... 'For i=1 To ThisWorkBook.Sheets.Count ' if (ThisWorkBook.Sheets(i).Name = celdaMes) Then ' hojaBuscada = i ' End if 'Next 'Ahora comparamos celdas en la hoja buscada...para encontrar la fila de los totales For i=1 To 200 if (ThisWorkBook.Sheets("celdaMes").Cells(i,1)="TOTALES") Then filaBuscada = i End if Next 'Encontramos la columna que nos interesa For i=1 To 50 if (ThisWorkBook.Sheets("celdaMes").Cells(1,i)=celdaCabecera) Then columnaBuscada = i End if Next Dim resultado As Integer resultado=Application.ThisWorkBook.Sheets("celdaMes").Cells(filaBuscada,columnaBuscada).Copy RESULTADOS = resultado End Function
Buenos días, estoy intentando mejorar mi hoja de gastos.
Uso LibreOffice calc en Ubuntu 12.04.
Tengo una hoja por cada mes y una hoja final para resumen anual. En esta hoja final intento que no tenga que copiar y pegar desde la hoja del mes a la hoja final cada fin de mes como hago ahora.
El problema está principalmente en que la fila de totales no es fija sino que cada mes varia en función de las filas que voy añadiendo o quitando en esta hoja.
Hablando de esta función:
En la casilla del mes de enero de la columna coche pondría: =RESULTADOS (A2, B1) en las columnas están los conceptos como el coche y enlas filas los meses.
La función debe primero buscar la hoja enero (A2). He comentado la primera forma que usé por que me parece mejor usando directamente el string que recojo de A2 pero no sé si se puede hacer así.
Luego, sabiendo la hoja en que trabajar, busca la fila de TOTALES. Y luego busca la columna del concepto que me interesa (B1).
Ahora mismo cuando ejecuto la fórmula me da Err:502.
He probado poniendo los ThisWorkBook delante. No sé si hace falta o sí es correcto.
También he usado el Application...copy para copiar la celda. Tampoco sé si es correcto.
Alguna sugerencia? Gracias
Antonio