Novata en Macros!!!

24/08/2006 - 22:53 por vayta | Informe spam
Hola:

Necesito ayuda por favor!!!!!!!!!! Alguno de ustedes sería tan amable
de decirme como puedo meter fórmulas de Excel en Visual Basic?????

Resulta que necesito las fórmulas de BUSCARV, SUMA.SI, SI. y
algunas otras . pero no se como ponerlas en Visual !!!!!

De antemano.. les agradezco su atención.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
26/08/2006 - 02:39 | Informe spam
hola, Valery !

1. ... grabadora de macros... resultado: ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],cliente,11)"
la duda... es porque pone RC(-1)?????? no se que significa eso.
2. ... Range("c6").Formula = "=vlookup(b6,cliente,11,0)" y funciono perfectamente...
3. ... Range("c5").FormulaLocal = "=buscarv(b5;cliente;11;0)"
y... marco un error: "Error definido por la aplicacion o el objeto"
asi es que esta macro no funciono o a la mejor meti mal un dato [...]
... en las opciones que marque como 1 y 2... a la hora de que cambio mi valor de la columna "c"...
pareciera.. como si la macro corriera automaticamente solo tengo que capturar otro numero y me da el resultado de inmediato...
Cosa que no sucede con la opción 4 y 5... aqui debo cambiar mi valor de la columna "c" e irme a VBA o bien con un fabuloso boton...
y es asi como me da el resultado o sea... en resumen no me da el resultado automaticamente.



1) la grabadora de macros, las referencias a rangos [por omision] las hace usando un estilo de notacion de R1C1/L1C1/F1C1/...
supongo que al ser el estilo que utilizan propiedades de referencia a rangos de algunos objetos 'especiales' [tablas dinamicas, graficos]
vba se 'prepara' para no tener que andar haciendo conversiones posteriores, y es la razon por la que utiliza .FormulaR1C1 -?-

2) la instruccion RC[-1] significa que la referencia es a la celda que se encuentra una columna MENOS en la misma fila que 'ActiveCell'
es parte del estilo de notacion y referencias R1C1/L1C1/F1C1/... [segun el idioma del excel] ;)

3) la falla que obtienes con la numero 3: -> Range("c5").FormulaLocal = "=buscarv(b5;cliente;11;0)"
probablemente es por el 'separador de argumentos LOCAL' [coma ?... punto y coma ?... otro ?] -???-
[revisa los comentarios en el inciso b del punto a en la propuesta anterior] :))

si cualquier duda... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 vayta
29/08/2006 - 00:17 | Informe spam
Hola Héctor ..

Muchas gracias por la explicación del RC(-1), como menciono en mi
primer mensaje soy una NOVATA en estas cosas de las macros... asi es
que... necesito investigar un poco mas para poder entender esos
términos...

En cuanto a la sugerencia que me haces con respecto al error que me
dió al introducir una de las fórmulas tenias toda la razón...
solo cambie las ";" por "," y funcionó perfectamente, muchas gracias.

Y aprovechandome de tu amabilidad.. quisiera preguntarte otra
cosita resulta que dentro de este mismo archivo... tengo una hoja
en excel en la cual.. en la primer columna (o sea "A"), tengo valores
en diferentes celdas... por ejemplo... en A1 engo un valor en A10
otro... en A15 otro y asi sucesivamenteno es un número de
renglones constante... hay alguna manera de que por medio de una
macro. me busque la primer celda de la columna A con un valor
copie ese valor, lo pegue en otra hoja... regrese a buscar el siguiente
valor que encuentre en la columna A lo copie de nuevo y asi
sucesivamente "n" número de veces????

Cualquier sugerencia que puedieras darme... te lo agradecería mucho.

Atte. Valery
Respuesta Responder a este mensaje
#3 Héctor Miguel
29/08/2006 - 05:34 | Informe spam
hola, Valery !

... dentro de este mismo archivo... tengo una hoja.. en la primer columna... tengo valores en diferentes celdas
... por ejemplo... en A1 engo un valor en A10 otro... en A15 otro y asi sucesivamente...no es un numero de renglones constante
... manera de que... una macro me busque la primer celda de la columna A con un valor... copie ese valor
lo pegue en otra hoja... regrese a buscar el siguiente valor que encuentre en la columna A lo copie de nuevo y asi sucesivamente ...



suponiendo que necesitas copiar -solo- de la columna A de la hoja1 a la siguiente fila 'disponible' en la columna A de la hoja2...

Worksheets("hoja1").Range("a:a").SpecialCells(xlCellTypeConstants).Copy _
Worksheets("hoja2").Range("a" & Rows.Count).End(xlUp).Offset(1)

si necesitas que los 'valores' que se copian a la hoja2 sea solo numericos... o solo valores de texto... o ???
complementa la parte del 'specialcells(...)' +/- como sigue:
- solo valores numericos... -> SpecialCells(xlCellTypeConstants, xlNumbers)
- solo valores de texto... -> SpecialCells(xlCellTypeConstants, xlTextValues)

podria haber mas variantes y alternativas :)) [si comentas algun detalle adicional] ;)

saludos,
hector.
Respuesta Responder a este mensaje
#4 vayta
29/08/2006 - 22:39 | Informe spam
Héctor!!!!!. seguro ya me sueñas con tantas preguntas que te
hago.

Creo que no te di muchos detalles. pero aqui van

Tengo... Hoja1
No. de Fila Columna A
1 10
2
3 1
4 6
5
6
7
8 200
9
10 5

Entonces. como podrás ver, los números de la columna "A", pueden
estar separados desde una, dos, tres o mas filas. Ahora lo que yo
quiero es:

En... Hoja2
No. de Fila Columna A
1
2
3 10
4 1
5 6
6 200
7 5
8
9
10


Si por medio de una macro puedo hacer que busque el primer valor de
la columna A de la hoja 1 y lo copie en la hoja 2, despues regrese a la
hoja 1, busque el siguiente número de la columna A, ignorando
obviamente las celdas en blanco, copie el siguiente número y lo ponga
en la hoja 2 debajo del número anterior y asi sucesivamente

Espero haberme dado a entender.

Con respecto a la respuesta que me das la puse en VBA y me dice:
"No se encontraron celdas"..

Te agradecería mucho tu ayuda otra vez .

Atte. Valery
Respuesta Responder a este mensaje
#5 Héctor Miguel
30/08/2006 - 03:00 | Informe spam
hola, Valery !

necesito preguntarte una o dos cosas mas :))

-> por que el salto en hoja 2 de dos filas facias antes de depositar los valores que encuentre la macro ?
-> los valores de la hoja 1... son 'resultado' de formulas ?... son valores de entrada directa en las celdas ?... ambos casos ?
-> las filas que 'se ven' como vacias en la hoja 1... estan 'realmente' vacias ? [o hay alguna formula del tipo =si("",) ?

algun otro detalle 'en el tintero' ?

saludos,
hector.

__ la consulta original __
Creo que no te di muchos detalles... pero aqui van... Tengo... Hoja1
No. de Fila Columna A
1 10
2
3 1
4 6
5
6
7
8 200
9
10 5
... los numeros de la columna "A", pueden estar separados desde una, dos, tres o mas filas.
Ahora lo que yo quiero es: En... Hoja2
No. de Fila Columna A
1
2
3 10
4 1
5 6
6 200
7 5
8
9
10
Si por medio de una macro... puedo hacer que busque el primer valor de la columna A de la hoja 1 y lo copie en la hoja 2
despues regrese a la hoja 1, busque el siguiente numero de la columna A, ignorando obviamente las celdas en blanco
copie el siguiente numero y lo ponga en la hoja 2 debajo del número anterior y asi sucesivamente...
Con respecto a la respuesta que me das la puse en VBA y me dice: "No se encontraron celdas"...
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida