** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Definir un rango segun un offset
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoDefinir un rango segun un offset

 Responder Responder
Autor
Mensaje
Guacharaca Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 20/Septiembre/2005
Estado: Sin conexión
Puntos: 1190
Enlace directo a este mensaje Tema: Definir un rango segun un offset
    Enviado: 17/Septiembre/2010 a las 01:34
Hola, estoy dandole vueltas a una formula que creo que la tengo ahi pero no puedo cerrarla a ver si pueden ayudarme, la formula es la siguiente

[b6].FormulaLocal = "=+CONTAR.SI(" & Range(ActiveCell.Address(False, False), ActiveCell.Offset(0, -8).Address(False, False)) & ";""P"" )/5"


la idea es asignar a la celda b6 la formula que cuente cuantas celdas tienen la letra P en un rango que iria desde la celda activa hacia 8 columnas anteriores.
Lo pense como escribi arriba, pero no me da, me da error.. y no se como definir ese rango.
Alguna sugerencia?
"Nadie es tan importante para hacerlo solo y nadie es tan insignificante para que su ayuda no sirva"
Arriba
Guacharaca Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 20/Septiembre/2005
Estado: Sin conexión
Puntos: 1190
Enlace directo a este mensaje Enviado: 17/Septiembre/2010 a las 01:35
pregunto, la funcion range () devuelve un rango, y la funcion "Contar.si" requiere un rango no?, porque no anda entonces?!
"Nadie es tan importante para hacerlo solo y nadie es tan insignificante para que su ayuda no sirva"
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5684
Enlace directo a este mensaje Enviado: 17/Septiembre/2010 a las 11:30
 

Considerando que...

 
1.- La celda activa (como mínimo) está en la columna 9 (En caso contrario contará  A:I).

2.- Las celdas que contienen la "P" sólo tienen la "P" (o no las cuenta).

3.- "La celda activa hacia 8 columnas anteriores" son: 9 celdas en total.

 
... debería funcionar con:

 
Sub prueba()

  Dim miRango$

  If ActiveCell.Column < 9 Then Cells(ActiveCell.Row, 9).Select

  miRango = Range(ActiveCell, ActiveCell.Offset(, -8)).Address

  [B6].Formula = "=COUNTIF(" & miRango & ",""P"")"

End Sub

 
 
Nota: He excluido a propósito dividir por cinco, ya que falsearía lo que solicitas: "... que cuente cuantas celdas tienen la letra P...".
 
 
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas, también será tu beneficio).

Mi sitio_web con ejemplos Excel.
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5684
Enlace directo a este mensaje Enviado: 17/Septiembre/2010 a las 11:56
 

Olvidé comentarte que no te funcionaba porque ponías (entre otras)  “=+CONTAR.SI(… cuando debe ser “=COUNTIF(…”.

 
Para otra ocasión:

1.- Escribe en  p.e. B6  =CONTAR.SI($A$9:$I$9;"P")

2.- Deja como activa la celda B6.

3.- Ve al editor de VBA (Alt+F11).

4.- Abre la ventana inmediato (Control + G)

5.- Escribe ? activecell.formula y pulsa INTRO.

 
 

Así habrás obtenido la fórmula =COUNTIF(A9:I9,"P") tal como la entiende el editor, es decir en ingles. Luego bastará con que completes la fórmula; convirtiendo comillas simples en dobles, encerando entre comillas el total, etc.

 
Nota: el signo + despues del signo = no es necesario.
 
 
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas, también será tu beneficio).

Mi sitio_web con ejemplos Excel.
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4317
Enlace directo a este mensaje Enviado: 20/Septiembre/2010 a las 21:07
Antonio...

Guachara indica que esta poniendo la FormulaLocal y no la Formula, por lo que CONTAR.SI es correcto en este caso
Arriba
Guacharaca Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 20/Septiembre/2005
Estado: Sin conexión
Puntos: 1190
Enlace directo a este mensaje Enviado: 20/Septiembre/2010 a las 21:21
ahh.. ok, gracias a los dos, y del ultimo comentario que hoz Jordi deduzco que todo lo que se refiera a local se esta refiriendo a la configuracion local que tenga la maquina, es decir si en este caso tengo configurado como en español tomara las formulas en español y si lo configuro en Turco, lo tomara en ese idioma, ahora, cuando uso una función o propiedad o formula que no tenga la palabra local al final sera en el idioma del compilador, que seria en ingles. Es mi deducción correcta?
Por lo demás es correcto toda su ayuda, me vino al pelo. Muchas gracias.
"Nadie es tan importante para hacerlo solo y nadie es tan insignificante para que su ayuda no sirva"
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4317
Enlace directo a este mensaje Enviado: 20/Septiembre/2010 a las 22:19
según entiendo, la FormulaLocal es para el idioma que se muestra al usuario, mientras que Formula (a secas) es el idioma propio utilizado por excel (que es, evidentemente, el inglés)

Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5684
Enlace directo a este mensaje Enviado: 21/Septiembre/2010 a las 01:42
Guacharaca:
Si, pero en la celda lo pondrá en español o en el idioma que tengas en la computadora.
 
El comentario de Jordi es correcto, en cuanto a FormulaLocal, pero (creo que) sólo es necesario cuando no sabes en que lenguaje trabajará la máquina que lo ejecutará. 
 
En mi caso prefiero Formula y ponerlo en inglés (nunca me ha dado problemas).
 
 
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas, también será tu beneficio).

Mi sitio_web con ejemplos Excel.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable