Saltar al contenido

Al ejecutar macros las formulas no funcionan


Recommended Posts

Antes que nada, un saludo a todos y gracias por su ayuda. El problema que tengo es el siguiente:

Al ejecutar macros estos me copian bien los valores, y reescriben las fórmulas, pero estas no se ejecutan. En la casilla queda #¿NOMBRE?. Lo que tengo que hacer es ir a la casilla modificar de cualquier forma la formula de la celda -como poner un espacio- luego darle enter y ahí reaparecen los valores correctos de la formula. El problema no es que no se calcula nuevamente la formula o que no se actualiza la “hoja de cálculos” sino que no funciona la formula bajo ninguna circunstancia, F9, enter, etc. Hasta que esta no se modifica.

Estas son las formulas utilizadas

H8=> =SUMA(-C8-E8+F8)
C3=> =SUMA (H8:H508)
C4=> =SUMA(C8:C508)+SUMA(E8:E508)
F4=> =SUMAR.SI.CONJUNTO($H$8:$H$508;$A$8:$A$508;">="&F2;$A$8:$A$508;"<="&F3)

#¿NOMBRE? es lo que pone en la casilla del resultado.

 

Enlace a comentario
Compartir con otras webs

avalencia gracias, luego de leer lo que me pasaste, como trabajo en hoja de calculo on line, tuve que modificar el idioma y el sitio de residencia, al ingles. De esa forma funciona todo bien, pero si vuelvo al español, las formulas echas con macros ya me dan error. (si no modificaba el idioma, por mas de que yo ponía la formula en ingles, me la cambiaba al español de forma automática. Pero bueno no es una solución que me guste mucho......

Enlace a comentario
Compartir con otras webs

Ejemplo para F4:

Range("F4").FormulaLocal = "=SUMAR.SI.CONJUNTO($H$8:$H$508;$A$8:$A$508;"">=""&F2;$A$8:$A$508;""<=""&F3)"

o también
Range("F4").Formula = "=SUMIFS($H$8:$H$508,$A$8:$A$508,"">=""&F2,$A$8:$A$508,""<=""&F3)"
 

En el caso de FormulaLocal debes usar el separador que tengas definido en Excel, en el ejemplo el punto y coma (;), en el caso de Formula, debes usar obligatoriamente la coma (,) como separador y el nombre de la función en Inglés.

Enlace a comentario
Compartir con otras webs

Estimado Antonio, estoy usando esta formula:" =SUMIFS($H$8:$H$508,$A$8:$A$508,">="&F2,$A$8:$A$508,"<="&F3)" y si en  Archivo-Configuración de hoja de calculo- pestaña general, apartado configuración regional coloco "Argentina", me da error. En cambio si pongo "Estados Unidos" funciona de maravilla. Pero me obliga a usar "," para separar los "miles" 1,000 en vez de 1.000.

Enlace a comentario
Compartir con otras webs

Estimado avalencia, gracias por su mensaje, le comento este es el macro que utilizo:

Por otro lado trabajo con hoja de calculo de google adjunto imagen. Creo que se le llama excel on line, o estoy equivocado?

 

 

function Vendido3() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A4:H4').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Venta'), true);
  spreadsheet.getRange('8:8').activate();
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
  spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Stock'), true);
  spreadsheet.getRange('G5').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Venta'), true);
  spreadsheet.getRange('A8').activate();
  spreadsheet.getRange('Stock!G5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Stock'), true);
  spreadsheet.getRange('B5:F5').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Venta'), true);
  spreadsheet.getRange('B8:F8').activate();
  spreadsheet.getRange('Stock!B5:F5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('H8').activate();
  spreadsheet.getActiveRangeList().setNumberFormat('"$"#,##0');
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Stock'), true);
  spreadsheet.getRange('H5').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Venta'), true);
  spreadsheet.getRange('G8').activate();
  spreadsheet.getRange('Stock!H5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('H8').activate();
  spreadsheet.getCurrentCell().setFormula('=SUM(-C8-E8+F8)');
  spreadsheet.getRange('C3').activate();
  spreadsheet.getCurrentCell().setFormula('=SUM(H8:H508)');
  spreadsheet.getRange('C4').activate();
  spreadsheet.getCurrentCell().setFormula('=SUM(C8:C508)+SUM(E8:E508)');
  spreadsheet.getRange('F4').activate();
  spreadsheet.getCurrentCell().setFormula('=SUMIFS($H$8:$H$508,$A$8:$A$508,">="&F2,$A$8:$A$508,"<="&F3)');
  spreadsheet.getRange('H4').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Stock'), true);
  spreadsheet.getRange('A5:H5').activate();
  spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
  spreadsheet.getRange('A5').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Venta'), true);
};

 

 

thump_9919833web.jpg

Enlace a comentario
Compartir con otras webs

Jejeje, ahora se entiende mejor. Algunas aclaraciones:

- No, Excel no es lo mismo que la Hoja de Cálculo de Google

- No, Excel OnLine es otra cosa, en si la Hoja de Cálculo de Google es un programa online

- No, la Hoja de Cálculo de Google no usa macros de VBA, sus macros son en un lenguaje llamado  Google Apps Script

- Este es un foro de Excel, lo ideal sería que vayas a un foro de Google y  y/o Google Apps Script

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.