Esta es una posible solución para poder crear muuuuchas macros en muy poco tiempo.

25/06/2005 - 10:54 por jose | Informe spam
Madre mia que orgulloso me siento, lo he conseguido, he creado 800 macros en
mas o menos 40 minutos, que pasada no??
Bueno pues os cuento a ver si me explico bien.
He crado una macro a mano (ya sabeis grabando todos los pasos) una vez
creada he ido copiando el código en una hoja nueva por partes, me explico si
la macro era:

Sub pegarA1()
'
' pegar
' Macro grabada el 24/06/2005 por Jose
'

'
Range("D8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=True
Range("D5:D12").Select
Range("D12").Activate
Application.CutCopyMode = False
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

Range("D5").Select

Selection.Copy
Range("A1").Select
Sheets("almacén").Select
Range("B2").Select
End Sub



Pues he puesto en la celda A1 (sin los corchetes, claro) [Sub pegar]
en la celda B1 pondre [A1]
en la celda C1 [()
'
' pegar
' Macro grabada el 24/06/2005 por Jose
'

'
Range("]
en la celda D1 [E8]
en la celda E1 [").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=True
Range("]
en la celda F1 [D5]
en la celda G1 [:]
en la celda H1 [D12]
en la celda I1 [").Select
Range("]

y asi hasta completar el código. Al final de la fila hariamos una unión de
todas las celdas, (ya se que algunos preferis hacela con el signo "&" pero
yo he utilizado la función CONCATENAR). Ahora lo que tengo que hacer es
copiar toda la fila hacia abajo (en mi caso 400 filas porque las otras 400
macros eran diferentes, con otro texto, lo haria en otra hoja con los mismos
pasos) y solo nos queda modificar las columa B, D, F, H, ... en mi caso la
diferencia de una macro a otra se conseguia sumandole 8 al numero que hace
referencia la celda, me explico, si en la celda D1 tenemos [E8] en la celda
D2 pondriamos [E16] otro ejemplo seria en la celda H1 [D12] pondriamos en la
celda H2 [D20] y asi sucesivamente. Una vez creado el codigo solo queda
copiarlo y pegarlo en el módulo de la hoja que queramos dejar las macros,
como ya hemos creado una macro le damos a modificar macro y se abre el
editor, ahi es donde pegaremos toda la columa que hemos CONCATENADO. Hay un
pequeño problema, bueno pequeño no, pequeñisimo, nos ha pegado las celdas
con unas comillas de mas, pone al principio y al final de cada macro unas
comillas ["] y donde nos refereimos a celdas tambien, se quitan
perfectamente con la función de reemplazar, ponemos datos a buscar ["Sub] y
a reemplazar con [Sub], asi de facil y con las comillas igual, ponemos a
buscar [(""] y a reemplazar [("] y en el otro lado seria buscar ["")] y
reemplazar con [")].
Claro, este es mi caso, ahora vosotros lo podeis aplicar a vuestras
necesidades, pero oye! ahi está la idea no?
Pues eso es todo chicos, joe, me ha costado mas escribir este mensaje que
crear 800 macros, jejeje

Venga un abrazo.

Preguntas similare

Leer las respuestas

#1 KL
25/06/2005 - 13:06 | Informe spam
Hola Jose,

Me alegra que hayas podido solucionar tu problema. Sin embargo, si todavia
te interesa te digo que tus macros seguramente se podrian mejorar y
probablemente reducir su numero a 1 (!). Solo un ejemplo - el primer macro
que expones se puede representar de la siguiente manera (y eso sin tener muy
claro que es lo que intentas hacer a nivel global):

Sub pegarA1()
With ActiveSheet
.Range("D8").PasteSpecial Paste:=xlPasteValues, _
Transpose:=True
.Range("D5:D12").Interior.ColorIndex = 15
.Protect
.Range("D5").Copy
End With
With Sheets("almacEn")
.Activate
End If
End Sub

Si me envias el fichero igual te doy una solucion mas eficaz.

Saludos,
KL



"jose" wrote in message
news:BZ8ve.1626076$
Madre mia que orgulloso me siento, lo he conseguido, he creado 800 macros
en
mas o menos 40 minutos, que pasada no??
Bueno pues os cuento a ver si me explico bien.
He crado una macro a mano (ya sabeis grabando todos los pasos) una vez
creada he ido copiando el código en una hoja nueva por partes, me explico
si
la macro era:

Sub pegarA1()
'
' pegar
' Macro grabada el 24/06/2005 por Jose
'

'
Range("D8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=True
Range("D5:D12").Select
Range("D12").Activate
Application.CutCopyMode = False
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

Range("D5").Select

Selection.Copy
Range("A1").Select
Sheets("almacén").Select
Range("B2").Select
End Sub



Pues he puesto en la celda A1 (sin los corchetes, claro) [Sub pegar]
en la celda B1 pondre [A1]
en la celda C1 [()
'
' pegar
' Macro grabada el 24/06/2005 por Jose
'

'
Range("]
en la celda D1 [E8]
en la celda E1 [").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=True
Range("]
en la celda F1 [D5]
en la celda G1 [:]
en la celda H1 [D12]
en la celda I1 [").Select
Range("]

y asi hasta completar el código. Al final de la fila hariamos una unión de
todas las celdas, (ya se que algunos preferis hacela con el signo "&" pero
yo he utilizado la función CONCATENAR). Ahora lo que tengo que hacer es
copiar toda la fila hacia abajo (en mi caso 400 filas porque las otras 400
macros eran diferentes, con otro texto, lo haria en otra hoja con los
mismos
pasos) y solo nos queda modificar las columa B, D, F, H, ... en mi caso la
diferencia de una macro a otra se conseguia sumandole 8 al numero que hace
referencia la celda, me explico, si en la celda D1 tenemos [E8] en la
celda
D2 pondriamos [E16] otro ejemplo seria en la celda H1 [D12] pondriamos en
la
celda H2 [D20] y asi sucesivamente. Una vez creado el codigo solo queda
copiarlo y pegarlo en el módulo de la hoja que queramos dejar las macros,
como ya hemos creado una macro le damos a modificar macro y se abre el
editor, ahi es donde pegaremos toda la columa que hemos CONCATENADO. Hay
un
pequeño problema, bueno pequeño no, pequeñisimo, nos ha pegado las celdas
con unas comillas de mas, pone al principio y al final de cada macro unas
comillas ["] y donde nos refereimos a celdas tambien, se quitan
perfectamente con la función de reemplazar, ponemos datos a buscar ["Sub]
y
a reemplazar con [Sub], asi de facil y con las comillas igual, ponemos a
buscar [(""] y a reemplazar [("] y en el otro lado seria buscar ["")] y
reemplazar con [")].
Claro, este es mi caso, ahora vosotros lo podeis aplicar a vuestras
necesidades, pero oye! ahi está la idea no?
Pues eso es todo chicos, joe, me ha costado mas escribir este mensaje que
crear 800 macros, jejeje

Venga un abrazo.



Respuesta Responder a este mensaje
#2 jose
03/07/2005 - 16:46 | Informe spam
Hola KL, que, como llevas lo del archivo que te mandé, chungo no?
Venga un saludo.
PD: no te mates, como sabes ya saque la solucion, esto solo es un ¡¡reto!!

"KL" escribió en el mensaje
news:Os8%
Hola Jose,

Me alegra que hayas podido solucionar tu problema. Sin embargo, si todavia
te interesa te digo que tus macros seguramente se podrian mejorar y
probablemente reducir su numero a 1 (!). Solo un ejemplo - el primer macro
que expones se puede representar de la siguiente manera (y eso sin tener
muy claro que es lo que intentas hacer a nivel global):

Sub pegarA1()
With ActiveSheet
.Range("D8").PasteSpecial Paste:=xlPasteValues, _
Transpose:=True
.Range("D5:D12").Interior.ColorIndex = 15
.Protect
.Range("D5").Copy
End With
With Sheets("almacEn")
.Activate
End If
End Sub

Si me envias el fichero igual te doy una solucion mas eficaz.

Saludos,
KL



"jose" wrote in message
news:BZ8ve.1626076$
Madre mia que orgulloso me siento, lo he conseguido, he creado 800 macros
en
mas o menos 40 minutos, que pasada no??
Bueno pues os cuento a ver si me explico bien.
He crado una macro a mano (ya sabeis grabando todos los pasos) una vez
creada he ido copiando el código en una hoja nueva por partes, me explico
si
la macro era:

Sub pegarA1()
'
' pegar
' Macro grabada el 24/06/2005 por Jose
'

'
Range("D8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=True
Range("D5:D12").Select
Range("D12").Activate
Application.CutCopyMode = False
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

Range("D5").Select

Selection.Copy
Range("A1").Select
Sheets("almacén").Select
Range("B2").Select
End Sub



Pues he puesto en la celda A1 (sin los corchetes, claro) [Sub pegar]
en la celda B1 pondre [A1]
en la celda C1 [()
'
' pegar
' Macro grabada el 24/06/2005 por Jose
'

'
Range("]
en la celda D1 [E8]
en la celda E1 [").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=True
Range("]
en la celda F1 [D5]
en la celda G1 [:]
en la celda H1 [D12]
en la celda I1 [").Select
Range("]

y asi hasta completar el código. Al final de la fila hariamos una unión
de
todas las celdas, (ya se que algunos preferis hacela con el signo "&"
pero
yo he utilizado la función CONCATENAR). Ahora lo que tengo que hacer es
copiar toda la fila hacia abajo (en mi caso 400 filas porque las otras
400
macros eran diferentes, con otro texto, lo haria en otra hoja con los
mismos
pasos) y solo nos queda modificar las columa B, D, F, H, ... en mi caso
la
diferencia de una macro a otra se conseguia sumandole 8 al numero que
hace
referencia la celda, me explico, si en la celda D1 tenemos [E8] en la
celda
D2 pondriamos [E16] otro ejemplo seria en la celda H1 [D12] pondriamos en
la
celda H2 [D20] y asi sucesivamente. Una vez creado el codigo solo queda
copiarlo y pegarlo en el módulo de la hoja que queramos dejar las macros,
como ya hemos creado una macro le damos a modificar macro y se abre el
editor, ahi es donde pegaremos toda la columa que hemos CONCATENADO. Hay
un
pequeño problema, bueno pequeño no, pequeñisimo, nos ha pegado las celdas
con unas comillas de mas, pone al principio y al final de cada macro unas
comillas ["] y donde nos refereimos a celdas tambien, se quitan
perfectamente con la función de reemplazar, ponemos datos a buscar ["Sub]
y
a reemplazar con [Sub], asi de facil y con las comillas igual, ponemos a
buscar [(""] y a reemplazar [("] y en el otro lado seria buscar ["")] y
reemplazar con [")].
Claro, este es mi caso, ahora vosotros lo podeis aplicar a vuestras
necesidades, pero oye! ahi está la idea no?
Pues eso es todo chicos, joe, me ha costado mas escribir este mensaje que
crear 800 macros, jejeje

Venga un abrazo.







Respuesta Responder a este mensaje
#3 KL
04/07/2005 - 00:35 | Informe spam
Hola jose,

No he tenido mucho tiempo para revisar tu fichero. Asi a bote pronto se
podria hacer con un solo macro y un solo boton :-o

Lo mirare cuando tenga un momento. Si quieres me envias el no. de tu movil a
mi correo privado y te llamo si tengo preguntas. De todas formas podemos
seguir esta conversacion por el e-mail para no llenar el foro de mensajes
que solo interesan a nosotros dos.

Una saludo,
KL


"jose" <carpinjose @ gmail.com> wrote in message
news:yTSxe.1831150$
Hola KL, que, como llevas lo del archivo que te mandé, chungo no?
Venga un saludo.
PD: no te mates, como sabes ya saque la solucion, esto solo es un ¡¡reto!!

"KL" escribió en el mensaje
news:Os8%
Hola Jose,

Me alegra que hayas podido solucionar tu problema. Sin embargo, si
todavia te interesa te digo que tus macros seguramente se podrian mejorar
y probablemente reducir su numero a 1 (!). Solo un ejemplo - el primer
macro que expones se puede representar de la siguiente manera (y eso sin
tener muy claro que es lo que intentas hacer a nivel global):

Sub pegarA1()
With ActiveSheet
.Range("D8").PasteSpecial Paste:=xlPasteValues, _
Transpose:=True
.Range("D5:D12").Interior.ColorIndex = 15
.Protect
.Range("D5").Copy
End With
With Sheets("almacEn")
.Activate
End If
End Sub

Si me envias el fichero igual te doy una solucion mas eficaz.

Saludos,
KL



"jose" wrote in message
news:BZ8ve.1626076$
Madre mia que orgulloso me siento, lo he conseguido, he creado 800
macros en
mas o menos 40 minutos, que pasada no??
Bueno pues os cuento a ver si me explico bien.
He crado una macro a mano (ya sabeis grabando todos los pasos) una vez
creada he ido copiando el código en una hoja nueva por partes, me
explico si
la macro era:

Sub pegarA1()
'
' pegar
' Macro grabada el 24/06/2005 por Jose
'

'
Range("D8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=True
Range("D5:D12").Select
Range("D12").Activate
Application.CutCopyMode = False
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

Range("D5").Select

Selection.Copy
Range("A1").Select
Sheets("almacén").Select
Range("B2").Select
End Sub



Pues he puesto en la celda A1 (sin los corchetes, claro) [Sub pegar]
en la celda B1 pondre [A1]
en la celda C1 [()
'
' pegar
' Macro grabada el 24/06/2005 por Jose
'

'
Range("]
en la celda D1 [E8]
en la celda E1 [").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=True
Range("]
en la celda F1 [D5]
en la celda G1 [:]
en la celda H1 [D12]
en la celda I1 [").Select
Range("]

y asi hasta completar el código. Al final de la fila hariamos una unión
de
todas las celdas, (ya se que algunos preferis hacela con el signo "&"
pero
yo he utilizado la función CONCATENAR). Ahora lo que tengo que hacer es
copiar toda la fila hacia abajo (en mi caso 400 filas porque las otras
400
macros eran diferentes, con otro texto, lo haria en otra hoja con los
mismos
pasos) y solo nos queda modificar las columa B, D, F, H, ... en mi caso
la
diferencia de una macro a otra se conseguia sumandole 8 al numero que
hace
referencia la celda, me explico, si en la celda D1 tenemos [E8] en la
celda
D2 pondriamos [E16] otro ejemplo seria en la celda H1 [D12] pondriamos
en la
celda H2 [D20] y asi sucesivamente. Una vez creado el codigo solo queda
copiarlo y pegarlo en el módulo de la hoja que queramos dejar las
macros,
como ya hemos creado una macro le damos a modificar macro y se abre el
editor, ahi es donde pegaremos toda la columa que hemos CONCATENADO. Hay
un
pequeño problema, bueno pequeño no, pequeñisimo, nos ha pegado las
celdas
con unas comillas de mas, pone al principio y al final de cada macro
unas
comillas ["] y donde nos refereimos a celdas tambien, se quitan
perfectamente con la función de reemplazar, ponemos datos a buscar
["Sub] y
a reemplazar con [Sub], asi de facil y con las comillas igual, ponemos a
buscar [(""] y a reemplazar [("] y en el otro lado seria buscar ["")] y
reemplazar con [")].
Claro, este es mi caso, ahora vosotros lo podeis aplicar a vuestras
necesidades, pero oye! ahi está la idea no?
Pues eso es todo chicos, joe, me ha costado mas escribir este mensaje
que
crear 800 macros, jejeje

Venga un abrazo.











email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida