¿Cómo evitar las comillas de un rango en una macro?

Buenas,
Estoy intentado hacer una macro dónde inserto en diferentes celdas un CONTAR.SI, pero no consigo que me coja el rango que le especifico.
La fórmula que me escribe en la celda me queda de la siguiente manera (estando en la celda 'Hoja1'!A1 por ejemplo): =CONTAR.SI('Munt. Acc.'!'O2':'Munt. Acc.'!'O3000';B9) y me da #¿NOMBRE? Por las comillas simples de cada celda del rango. ¿Qué puedo hacer? Tengo otra fórmula de suma y no tengo ese problema, pero en este caso tengo que situar el rango en otra hoja distinta de la que estoy. ¿Puede ser este el problema?
Ahí va la parte del código:
Dim Inici As String
Dim Final As String
Dim Direccio As String
Dim Quantitat As Integer
Dim LlocQ As String
LlocQ = ActiveSheet.Range("C1").Value    [C1 es una dirección a varias celdas (va cambiando) que contienen un número distinto.]
Quantitat = ActiveSheet.Range(LlocQ).Value
For k = 1 To Quantitat
Inici = Sheets("Hoja1").Range("H3").Value [=DIRECCION(2;15+G2;4;;"Munt. Acc.")]
Final = Sheets("Hoja1").Range("H2").Value [=DIRECCION(3000;15+G2;4;;"Munt. Acc.")][También he probado sin definir la hoja y escribiendola en la fórmula de abajo antes del rango: 'Munt. Acc.'!" & Inici & ":" & Final & " etc...]
Direccio = Sheets("Hoja1").Range("D1").Value [Dirección a la celda dónde colocar la fórmula]
Range(Direccio).Formula = "=IF(RC[-1]=""Quantitat"",""Restant"",IF(RC[-1]="""","""",RC[-1]-COUNTIF(" & Inici & ":" & Final & ",RC[-2])))"
La fórmula de la suma que funciona es esta:
Comptador = ActiveSheet.Range("D5").Value [Dirección a una celda de la misma hoja]
Suma = ActiveSheet.Range("E5").Value [Dirección a una celda de la misma hoja]
Ultima = ActiveSheet.Range("C5").Value [Dirección a una celda de la misma hoja]
Range(Suma).Select
ActiveCell.Formula = "=SUM(" & Comptador & ":" & Ultima & ")"
Como podéis ver, la fórmula es la misma por lo que hace a definir los rangos.
Agradezco la ayuda de antemano. Muchas gracias! ;)

1 Respuesta

Respuesta
1
Prueba
=CONTAR.SI('Munt. Acc'!O2:'Munt. Acc'!O3000;B9)
Tenias mal puestas las '
Sí, pero la fórmula me la escribe la macro mal al definir los rangos de la fórmula: =COUNTIF(" & Inici & ":" & Final & ",RC[-2])
El problema está en cómo evitar que traduzca la fórmula anterior a =CONTAR.SI('Munt. Acc'!O2:'Munt. Acc'!O3000;B9) [sin las comillas] y no a =CONTAR.SI('Munt. Acc'!'O2':'Munt. Acc'!'O3000';B9).
Gracias.
Debajo de:
Range(Direccio).Formula = "=IF(RC[-1]=""Quantitat"",""Restant"",IF(RC[-1]="""","""",RC[-1]-COUNTIF(" & Inici & ":" & Final & ",RC[-2])))"
pon esto:
ActiveWindow.DisplayFormulas = True
Range(Direccio).EntireColumn.Select
Selection.Replace What:="'", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
ActiveWindow.DisplayFormulas = False
No se me ocurre otra cosa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas