Retroceder   Foros del Web > Temas generales de computación > Ofimática

Respuesta
 
Herramientas Desplegado
Antiguo 25-jul-2008, 10:18   #1 (permalink)
baskjzz ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Triste Macros & VBA

Compañeros,

Tengo una cuestion con una macro de excel , les paso a explicar:

Necesito hacer un AutoFill automatico con variables. osea , tengo dos columnas, la primera con datos ( por ej de A1 a A10) y la otra con solo un dato en B1, kisiera hacer un AutoFill repitiendo el valor de B1 hasta B10, sin hacer Selection.AutoFill Destination:=Range("B1:B10") sino, poner dos variables, enves de poner B1 poner una variable que contenga el numero de celda q esta seleccionado. y otra variable de fin que me calcule cuantas celdas hay en la primera columna, ( en este caso 10 celdas, de A1 a A10).

Si me ayudarian en esto estaria eternamente agradecido.

Desde ya muchas gracias.

Basjzz

Última edición por baskjzz; 25-jul-2008 a las 10:34.
baskjzz está desconectado   Responder Citando
Antiguo 25-jul-2008, 12:11   #2 (permalink)
mrocf está en el buen camino
 
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 204
Enviar un mensaje por Yahoo  a mrocf
De acuerdo Respuesta: Macros & VBA

Intenta con
Código:
ActiveCell.Copy Range(ActiveCell, [A65536].End(xlUp).Offset(0, 1))
Como puedes ver, en este ejemplo ni tan siquiera se requiere utilizar variables: sólo la celda activa.

Saludos.
mrocf está desconectado   Responder Citando
Antiguo 27-jul-2008, 18:20   #3 (permalink)
baskjzz ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Respuesta: Macros & VBA

Cita:
Iniciado por mrocf Ver Mensaje
Intenta con
Código:
ActiveCell.Copy Range(ActiveCell, [A65536].End(xlUp).Offset(0, 1))
Como puedes ver, en este ejemplo ni tan siquiera se requiere utilizar variables: sólo la celda activa.

Saludos.

ese codigo lo k me hace es copiarme lo de la columna de arladoo, y no kiero eso, osea el valor k tngo en b1 es diferente del k tengo en A1:A10 , y lo k hace ese codigo como te decia es copiarme la columna A1:A10 y me sobreescribe el dato k tenia en B1 :S

lo k kiero es k el dato B1 se copie hacia abajo teniendo como referencia las celdas A1:A10 .

Igualmente estoy muy agradecido x tu pronta respuesta.

si tienes otra idea k me puedas ayudar, me alegrarias el dia jaja .


Gracias nuevamente

Saludos

Baskjzz
baskjzz está desconectado   Responder Citando
Antiguo 27-jul-2008, 20:22   #4 (permalink)
mrocf está en el buen camino
 
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 204
Enviar un mensaje por Yahoo  a mrocf
Respuesta: Macros & VBA

¿ Sabes a quien refiere el "ActiveCell" de
Range(ActiveCell, [A65536].End(xlUp).Offset(0, 1)) ... ?

Pues a B1.

De modo que si dices lo que dices, es que has ejecutado la línea de código que te mencioné seleccionando otra celda que no B1.

Prueba hacerlo bien... y me cuentas, ¿ok?.

Saludos.
mrocf está desconectado   Responder Citando
Antiguo 28-jul-2008, 05:25   #5 (permalink)
baskjzz ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Triste Respuesta: Macros & VBA

Cita:
Iniciado por mrocf Ver Mensaje
¿ Sabes a quien refiere el "ActiveCell" de
Range(ActiveCell, [A65536].End(xlUp).Offset(0, 1)) ... ?

Pues a B1.

De modo que si dices lo que dices, es que has ejecutado la línea de código que te mencioné seleccionando otra celda que no B1.

Prueba hacerlo bien... y me cuentas, ¿ok?.

Saludos.

Tenias razon, es que habia puesto el ejemplo de A1:A10 y de B1, solo para poder explicarlo, pro exactamente no eran esas columnas. Eran D1:D10 y E1, pero ya modifique el codigo para k se ajustara.


Igualmente ocurre un problema. lo que hace el codigo que me proporcionastes, es copiar todo, osea mi hoja de calculo tiene datos de D1:D10, un espacio y despues D12:D22 , me entendes? y el codigo me copia el dato E1 por todas las columnas de desde D1:D22 y el dato k hay en E1 y en E12 son diferentes.


lo que necesito es k el dato E1 se copie con referencia a D1:D10 y el dato E12 se copie en referencia a E12:E22 . y otra cosa no necesaria mente es de 10 en 10 a veses puede variar.


Gracias nuevamente x tu rapida respuesta.

Has sido muy amable. si tienes otra idea, estoy ansioso x escucharla hahâ ^^


Saludos.
baskjzz está desconectado   Responder Citando
Antiguo 28-jul-2008, 07:38   #6 (permalink)
mrocf está en el buen camino
 
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 204
Enviar un mensaje por Yahoo  a mrocf
De acuerdo Respuesta: Macros & VBA

¡ No te imaginas lo sencillo que sería todo... si explicaras las cosas completa y correctamente desde un principio. !!!

En fin: prueba con este código:

Código:
Application.ScreenUpdating = False
Do
  ActiveCell.Copy
  If ActiveCell.Offset(1, -1) <> "" Then
    ActiveSheet.Paste _
      Range(ActiveCell, ActiveCell.Offset(0, -1).End(xlDown).Offset(0, 1))
    ActiveCell.End(xlDown).Select
  End If
  ActiveCell.End(xlDown).Select
Loop Until ActiveCell.Row > 65000
Cells(1, ActiveCell.Column).Select
Application.ScreenUpdating = True
Recuerda que previo a ejecutar la macro tienes que seleccionar la primer celda de la segunda columna... como en cualquier "autofill", según tus especificaciones.

Te mando un saludo y espero que te sea útil...
mrocf está desconectado   Responder Citando
Antiguo 28-jul-2008, 07:49   #7 (permalink)
baskjzz ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Respuesta: Macros & VBA

Cita:
Iniciado por mrocf Ver Mensaje
¡ No te imaginas lo sencillo que sería todo... si explicaras las cosas completa y correctamente desde un principio. !!!

En fin: prueba con este código:

Código:
Application.ScreenUpdating = False
Do
  ActiveCell.Copy
  If ActiveCell.Offset(1, -1) <> "" Then
    ActiveSheet.Paste _
      Range(ActiveCell, ActiveCell.Offset(0, -1).End(xlDown).Offset(0, 1))
    ActiveCell.End(xlDown).Select
  End If
  ActiveCell.End(xlDown).Select
Loop Until ActiveCell.Row > 65000
Cells(1, ActiveCell.Column).Select
Application.ScreenUpdating = True
Recuerda que previo a ejecutar la macro tienes que seleccionar la primer celda de la segunda columna... como en cualquier "autofill", según tus especificaciones.

Te mando un saludo y espero que te sea útil...


SOS UN GROSO


Gracias che!

y mil disculpas x mal expresarme, es que aveses trato de hacer mas chica mi pregunta, para que no sea tan aburrida de leerla, y al final termino mal expresandome. :S..

en fin, tu codigo anda de marabilla, se te ocurrio asi tan rapido? faah

ahora tendria que hacer lo mismo con cada dato correspondiente de E"x" , con referencia a los datos de la columna D"x". pero eso lo tendre que investigar yo, ya me distes una mano tremenda.

Muchisimas gracias!.

Saludos
baskjzz está desconectado   Responder Citando
Antiguo 28-jul-2008, 08:20   #8 (permalink)
baskjzz ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Pregunta Respuesta: Macros & VBA

Cita:
Iniciado por mrocf Ver Mensaje
¡ No te imaginas lo sencillo que sería todo... si explicaras las cosas completa y correctamente desde un principio. !!!

En fin: prueba con este código:

Código:
Application.ScreenUpdating = False
Do
  ActiveCell.Copy
  If ActiveCell.Offset(1, -1) <> "" Then
    ActiveSheet.Paste _
      Range(ActiveCell, ActiveCell.Offset(0, -1).End(xlDown).Offset(0, 1))
    ActiveCell.End(xlDown).Select
  End If
  ActiveCell.End(xlDown).Select
Loop Until ActiveCell.Row > 65000
Cells(1, ActiveCell.Column).Select
Application.ScreenUpdating = True
Recuerda que previo a ejecutar la macro tienes que seleccionar la primer celda de la segunda columna... como en cualquier "autofill", según tus especificaciones.

Te mando un saludo y espero que te sea útil...

Disculpame que te moleste nuevamente ,

es que el codigo k me pasastes funciono correctamente, pero me queda seleccionando la celda E1 , y necesitaria que seleccionaze la celda que fue copiada hacia abajo. osea si el dato E22 fue el k hicimos autofall hacia abajo, que por ultimo del if me quede seleccionada la celda E22, me entendes?


disculpame si te molesto , no es mi intencion.


Gracias
baskjzz está desconectado   Responder Citando
Antiguo 28-jul-2008, 11:26   #9 (permalink)
baskjzz ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Respuesta: Macros & VBA

Cita:
Iniciado por baskjzz Ver Mensaje
Disculpame que te moleste nuevamente ,

es que el codigo k me pasastes funciono correctamente, pero me queda seleccionando la celda E1 , y necesitaria que seleccionaze la celda que fue copiada hacia abajo. osea si el dato E22 fue el k hicimos autofall hacia abajo, que por ultimo del if me quede seleccionada la celda E22, me entendes?


disculpame si te molesto , no es mi intencion.


Gracias
Ya solucione yo mismo el problema. Muchas Gracias x todo me ayudastes enormemente :)


saludos.
baskjzz está desconectado   Responder Citando
Antiguo 28-jul-2008, 11:52   #10 (permalink)
mrocf está en el buen camino
 
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 204
Enviar un mensaje por Yahoo  a mrocf
Alegría Respuesta: Macros & VBA

Ja ja ja... !!!

Ha quedado demostrado que tienes un buen diálogo "contigo mismo", puesto que te preguntaste y te respondiste a tí mismo.

Te mando un gran saludo.
Cacho.
mrocf está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 19:48.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93