Menudo lio.

22/08/2006 - 15:19 por Masters | Informe spam
Me gustaria saber como se llama un proceso dentro de otro o algo asi.
O sea:

1º Ejecuto una macro que coge el texto o número de la celda B1.
2º Y busca por toda la fila A1 el valor que coincida con B1.
3º Una vez hecho este proceso vuelve al 1º y continua con B2.

Es para buscar los valores para hacer la macro.

Preguntas similare

Leer las respuestas

#6 Masters
22/08/2006 - 19:15 | Informe spam
Siento ser molesto.
Indagando ya he podido orientarme por tu secuencia, haciendo unos
retoques.
Puedo acabar la macro a mi gusto.
Voy a reajustarlo todo.
Muchas gracias por ayudarme.
Sé que con todo eso concluye mi base de datos.
Recibiras noticias mias.
Gracias por todo.
Respuesta Responder a este mensaje
#7 Juan M
22/08/2006 - 19:17 | Informe spam
hola

Pero los resultados no son optimos.




¿que es lo que esperas que haga del codigo para que sea optimo?
no se si es eso lo que quieres que quieres

Cuando ejecuto tu secuencia añade o suprime segun la base de origen.


el codigo solo pega encima de donde ha encontrado el valor, segun has
comentado
cuando el valor no esta solo añade al final el valor nuevo

Ahora estoy buscando que en vez de insertar toda una columna, inserte
de la B a la P.


lo que buscas esta en el resize de la columna B a la P

esta
celda.Resize(1, 255).Copy Destination:=c
por
celda.Resize(1, 15).Copy Destination:=c

si hay algo que no te haya quedado claro comentas?

un saludo
juan



"Masters" escribió en el mensaje
news:
He mirado y lo he ejecutado.
Y segun hemos estabo hablando funciona bien.
Pero los resultados no son optimos.

Durante la tarde he estado haciendolo, debe ser una secuencia muy
simple, y tu secuencia es nueva para mi y me he perdido.
Me refiero a los valores que has puesto.

Si en la hoja 1 pongo los valores del 1 al 200000.
Cuando ejecuto tu secuencia añade o suprime segun la base de origen.

Todo ok.

Ahora estoy buscando que en vez de insertar toda una columna, inserte
de la B a la P.
Respuesta Responder a este mensaje
#8 Masters
23/08/2006 - 09:27 | Informe spam
Saludos Juan.

Pensaba que hice un post que anulaba el mio anterior pero aún lo veo
ahí.

Tu secuencia si que es optima, hice un retoque y pegué de la B a la P,
poco despues me respondistes el modo de hacerlo.

Sub Captura()
Dim Origen As Range
Dim Destino As Range
Dim Celda As Range
Dim c As Range
With Worksheets("Descarga")
Set Origen = .Range(.Range("A1"), .Range("A" &
.Rows.Count).End(xlUp))
End With
With Worksheets("Lista")
Set Destino = .Range(.Range("A1"), .Range("A" & .Rows.Count).End(xlUp))
End With
For Each Celda In Origen
Set c = Destino.Find(Celda.Value, LookIn:=xlValues,
LookAt:=xlWhole)
If c Is Nothing Then
With Worksheets("Lista")
.Range("A" & .Rows.Count).End(xlUp).Offset(1, 0) Celda.Value
Set Destino = Destino.Resize(Destino.Rows.Count + 1, 1)
End With
Else
Celda.Resize(1, 10).Copy Destination:=c
End If
Set c = Nothing
Next Celda
Set Origen = Nothing
Set Destino = Nothing
End Sub

Asi quedo al final, eliminando los msgbox porque me salia 100000
ventanitas :D.

Cuando las variantes se encuentran en la lista, añade las variantes, y
cuando no solo añade el numero (habiendo borrado la linea).

Cuando hay un nuevo numero con variantes, sólo añade el número, y me
gustaria que además añada también las variaciones, para poder darme
cuenta.

Gracias.
Respuesta Responder a este mensaje
#9 Juan M
23/08/2006 - 11:56 | Informe spam
hola

Tu ultimo post lo lei despues de enviar el mio. :(

Para hacer lo que quieres debes combinar las dos opciones para que quede
algo asi

Celda.Resize(1, 10).Copy _
Destination:=.Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)

lo colocas en la condicion cuando no encuentra el valor en la lista debajo
del
With Worksheets("Lista")

espero que sea de utilidad

un saludo
juan

"Masters" escribió en el mensaje
news:
Saludos Juan.

Pensaba que hice un post que anulaba el mio anterior pero aún lo veo
ahí.

Tu secuencia si que es optima, hice un retoque y pegué de la B a la P,
poco despues me respondistes el modo de hacerlo.

Sub Captura()
Dim Origen As Range
Dim Destino As Range
Dim Celda As Range
Dim c As Range
With Worksheets("Descarga")
Set Origen = .Range(.Range("A1"), .Range("A" &
.Rows.Count).End(xlUp))
End With
With Worksheets("Lista")
Set Destino = .Range(.Range("A1"), .Range("A" & .Rows.Count).End(xlUp))
End With
For Each Celda In Origen
Set c = Destino.Find(Celda.Value, LookIn:=xlValues,
LookAt:=xlWhole)
If c Is Nothing Then
With Worksheets("Lista")
.Range("A" & .Rows.Count).End(xlUp).Offset(1, 0) Celda.Value
Set Destino = Destino.Resize(Destino.Rows.Count + 1, 1)
End With
Else
Celda.Resize(1, 10).Copy Destination:=c
End If
Set c = Nothing
Next Celda
Set Origen = Nothing
Set Destino = Nothing
End Sub

Asi quedo al final, eliminando los msgbox porque me salia 100000
ventanitas :D.

Cuando las variantes se encuentran en la lista, añade las variantes, y
cuando no solo añade el numero (habiendo borrado la linea).

Cuando hay un nuevo numero con variantes, sólo añade el número, y me
gustaria que además añada también las variaciones, para poder darme
cuenta.

Gracias.
Respuesta Responder a este mensaje
#10 Masters
23/08/2006 - 12:34 | Informe spam
Si la coloco debajo del With Worksheets("Lista") me salta bloque sin
with.
Si la coloco debajo de
With Worksheets("Lista")
Set Destino = .Range(.Range("G1"), .Range("G" & .Rows.Count).End(xlUp))
End With
Me salta referencia no válida o sin calificar, sombreando el .Rows
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida