Busca, copiar y pegar..

Hola Luis… se impone otra pregunta… la misma fórmula que me facilitaste ahora quiero repetirla 7 veces en un mismo código, solo que cada una de ellas tiene que tener un If Then. He tratado de hacerlo funcionar con 3 pero me arroja un error y si funciona en forma independiente cada una, te pido me ayudes con ese algo que le falta. Muchísimas gracias por todo. Esta es una de las partes.
Sub ejemplo_luis()
Application.ScreenUpdating = False
If Range("Q3") = 1 Then
valor = Range("$BI$1016").value
Set busca = ActiveSheet.Range("b1000:b2000").Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ubica = busca.Address
Do
ubica2 = busca.Address
Range(ubica2, Range(ubica2).Offset(0, -1)).Copy
Sheets("pagada").Range("a65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
Range(ubica2, Range(ubica2).Offset(0, -1)).ClearContents
Set busca = ActiveSheet.Range("b1000:b2000").FindNext(busca)
Loop While Not busca Is Nothing 'And busca.Address <> ubica
End If
Range("Q3").SetFocus
If…then

End if
Application.ScreenUpdating = True
End sub

1 Respuesta

Respuesta
1

Perdona pero no recuerdo el archivo. ¿Me puedes decir el nombre para buscarlo?

Hola Luis... claro que si, el archivo que me reenviaste el día 27 de octubre pasado por correo con este código, en el modulo 6, el el foro se llama "Buscar, copiar y pegar"6. (Este archivo en el excel se llama "corporativo" )Te agradezco las atenciones.

Si te das cuenta en el código hay esta línea:

Set busca = ActiveSheet.Range("b1000:b2000").Find(valor, LookIn:=xlValues, lookat:=xlWhole)

donde pone el rango donde busca (b1000:b2000), puedes cambiar ese rango para ampliar la zona de búsqueda todo lo que quieras

Hola Luis... efectivamente, a cada parte o zona como le llamo le corresponde un rango o columna distinto y esta línea del código que me apuntas es diferente para cada zona por su rango, (Ejem. para la zona 1, su rango es B1000:B2000; para la zona 2 es F:F; para la 3, J:J; etc. (la longitud es igual para todas las zonas), incluso, a la línea del código... Sheets("pagada").Range("A65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues... le cambié el rango que le corresponde por cada zona (ejem. para la zona 2 el rango es F65000, etc) y aun así no realiza la ejecución como se espera. Agradezco tus atenciones, muchas gracias.

Intenta ejecutar la macro con esta línea así:

Set busca = ActiveSheet.Range("b1000:j2000").Find(valor, LookIn:=xlValues, lookat:=xlWhole)

De esta manera abarcas una zona grande de búsqueda.

Hola Luis… para decirte que ya encontré la solución para las 7 zonas al código que me enviaste, era una pequeñísima omisión de mi parte. Creo que en el aprendizaje se presentan muchas de estas .. no?. Muchísimas gracias por tus atenciones. Ahora estoy dando una repasada al programita.

Ok, ¿cómo va el asunto?

Hola Luis, Todo bien, concluí con la revisión y me queda un solo detalle, al introducir un folio en el combobox, que se encarga de buscarlo en la columna (A:A) y pegarle enseguida una palabra (pagada, por ejem.) y este folio no se encuentra en la columna me arroja un error #91; podrías apoyarme con esta pequeña línea que hace falta..?, el código es el siguiente: (El MsgBox que se encuentra en la tercera y cuarta linea pueden cambiarse por ese que necesito, pues no sirve de nada)…Graciasssss…
Private Sub ipnumber_afterupdate()
If Range("Q3") = 1 Then
If Len(Me.ipnumber) > 5 Then
MsgBox "Numero no encontrado"
Else
Sheets("portal").Range("A1001").Select
[A:B].Find(What:=ipnumber, After:=ActiveCell, LookIn:=xlFormulas, lookat:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 1) = Me.Computadora.value
'combo.entry.set_text (Text)
End If
Sheets("portal").Activate
Range("Q3").Select
End If
If Range("Q3") = 2 Then
If Len(Me.ipnumber) > 5 Then
MsgBox "Numero no encontrado"
Else
Sheets("portal").Range("E1001").Select
[E:F].Find(What:=ipnumber, After:=ActiveCell, LookIn:=xlFormulas, lookat:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 1) = Me.Computadora.value
End If
Sheets("portal").Activate
Range("Q3").Select
End If


End Sub

Deberías poner una vía de salida a la búsqueda tipo if.......else......

De todas formas este último código no es fabricación mia y es mi forma de programar

Muchas gracias por tu atención Luis, pero fijate que no me salió la solución con el If else ó if then... le seguiré buscando...y... no creo que se acaben las dudas.. muchas gracias y que pases un excelente domingo.

Ok, me alegro por tu investigación, pero como te indiqué en el anterior post, esa macro no es de mi propiedad y tampoco es mi forma de programar.

No olvides finalizar la consulta

Hola Luis… quiero decirte que he avanzado en mi tarea de conformar este programita, hasta ahora las preguntas formuladas han sido respondidas y solucionadas mis tareas, muchas gracias, seguiré en el aprendizaje, espero no enfadar, muchas gracias...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas