Cómo hacer que la macro busque hacia la derecha hasta que encuentre una celda vacía
La siguiente macro nos permite dividir un rango e.g. 0002-0015 en sus valores únicos copiando éstos, junto con los datos asociados (presentes en la columna "A"), en una Hoja2. También nos permite ingresar un valor máximo de los resultados a mostrar.
Sub DividirValorConLimiteyColumna() 'Por.Dante Amor Application.ScreenUpdating = False Application.DisplayAlerts = False Set h1 = Sheets("Hoja1") 'Set h2 = Sheets.Add(after:=Sheets(Sheets.Count)) Set h2 = Sheets("Hoja2") h2.Cells.Clear ' num = InputBox("Límite máximo del valor, o escribe 0 para todas", "INGRESA UN NÚMERO") If num = "" Then Exit Sub If Not IsNumeric(num) Then Exit Sub num = Val(num) For c = 1 To h1.Cells(1, Columns.Count).End(xlToLeft).Column Step 2 k = 1 For i = 1 To h1.Cells(Rows.Count, c).End(xlUp).Row valor = Split(h1.Cells(i, c + 1), "-") n = Val(valor(0)) If LBound(valor) = UBound(valor) Then m = n Else m = Val(valor(1)) End If If num > 0 And num < m Then m = num End If If k + m > h1.Rows.Count Then MsgBox "Se alcanzó el límite de la hoja" Exit Sub End If For j = n To m h2.Cells(k, c) = h1.Cells(i, c) h2.Cells(k, c + 1) = j k = k + 1 Next Next Next Application.ScreenUpdating = True h2.Select MsgBox "División de valores terminada", vbInformation End Sub
Actualmente la macro busca los rangos a dividir en la columna "B" de la Hoja1 pero me gustaría saber qué código debo introducir y dónde para que busque también en las siguientes columnas (hacia la derecha) hasta que encuentre una celda vacía.
Nota: el número de celdas con rangos varía según la línea pero siempre empiezan en la columna "B".
2 respuestas
Respuesta de Dante Amor
1
Respuesta de Programar Excel