Macro para buscar nombre en rango de datos

Hola ! Tengo una hoja con dos columnas:
Madrid
Piso #1 10000
Piso #7 10500
Piso #12 11300
Piso #14 11400
Piso #15 11500
Piso #16 11400
Piso #21 11500
Piso #31 11400
Barcelona
Piso #17-1 12600
Piso #18-1 13000
Piso #20-1 14500
Piso #23-1 11000
Piso #25-1 11100
Piso #28-1 12100
Piso #30-1 12000
Granada
Piso #001-4 12600
Piso #005-4 13000
Piso #090-3 14500
Piso #080-4 11000
Piso #091-1 11100
Piso #210-3 12100
Piso #121-1 12000
Necesito una macro que me indique en qué columna comienzan los datos de Madrid y en donde terminan. Y que el resultado (de la celda donde comienza y termina) me lo guarde en dos celdas, una que diga dónde comienzan los datos y la otra en dónde finalizan. Esto también para Barcelona y Granada. Ademas, otra macro para copiar esos datos basado en las direcciones anteriores.
Respuesta
1
No me queda muy clara la búsqueda que necesitas, no se si conoces la ubicación, por ejemplo de Madrid o se debe buscar la palabra ingresando el dato.
En todo caso este código te sirve para saber el primer y ultimo rango se quedar seleccionado para lo que tu estimes conveniente.
Sub establecer_Rango()
Dim primera, ultima As String
Range("C2").Select
primera = ActiveCell.Address
Selection.End(xlDown).Select
ultima = ActiveCell.Address
Worksheets("Hoja1").Range(primera + ":" + ultima).Select
End Sub
Cuéntame como te va.
Muchas gracias por la respuesta, pero debo aclarar lo siguiente:
La posición de Madrid siempre estará en la celda A1, la posición de Barcelona y Granada no son fijas porque el largo o cantidad de filas que tiene Madrid no es fija, pero siempre hay al menos una. Esto mismo es igual para Barcelona y Granada. Los ciudades siempre son las mismas, aunque si se pudieran definir en un lista y buscarlos respecto a esa lista sería de gran ayuda. Por otro lado, se debe extraer desde el inicio de Madrid y hasta el final de esta y copiar los registros en una hoja que se llame Madrid, así con Barcelona y Granada y otra más ( a lo sumo 2 ciudades más). Espero haberos explicado mejor.
Estaba viendo la mejor idea es crear un userform con una lista con las 3 ciudades, lo ideal es tener creadas las 3 hojas de las ciudades y aplicar el siguiente código en el userform. Lo probé y funciona perfecto.
Private Sub CommandButton1_Click()
Dim primera, ultima As String
Dim Ciudad As String
Cells.Find(What:=ComboBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
        .Activate
primera = ActiveCell.Address
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
ultima = ActiveCell.Address
Worksheets("Hoja1").Range(primera + ":" + ultima).Select
Selection.Copy
Ciudad = ComboBox1
Worksheets(Ciudad).Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
Application.CutCopyMode = False
Worksheets("Hoja1").Activate
Range("A1").Select
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
ComboBox1.AddItem "Madrid"
ComboBox1.AddItem "Barcelona"
ComboBox1.AddItem "Granada"
End Sub
Todo esto va dentro del Userform, solo debes crear las hojas con los nombres de las 3 ciudades y crear la macro para que ejectute el userform, algo así como esto
Sub cargaformu()
UserForm1.Show
End Sub
Cuéntame como te va

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas