Tengo dos hojas de calculo he confeccionado una macro que me copia los datos de la columna C Rango C3:C230 y me los pega en la segunda hoja en la columna A en el rango A3:A230 , mi problema es como hago para que la proxima vez que ejecute la macro en vez de pegar los datos en la columna A lo haga en la columna B y la siguiente en la C y asi sucesivamente.
1 respuesta
Respuesta
1
1
Anónimo
Podrias poner el codigo que estas usando en tu macro
Disculpa la tardanza te propongo este script que te ayudara en lo que necesitas. En los comentarios esta la explicacion. Sub copiar() 'Estas dos primeras lineas simplemente mejoran la velocidad de ejecucion del script 'y hacen que la ejecucion sea invisible para el usuario Application.ScreenUpdating = False Application.Calculation = xlCalculationManual 'con estas dos lineas seleccionamos la hoja y el rango a copiar 'en tu caso solo cambia en donde dice ("Hoja1") por el nombre de tu hoja origen Sheets("Hoja1").Select Range("C3:C230").Select 'con esta linea indicamos que copie la seleccion Selection.Copy 'con estas dos lineas seleccionamos la hoja y el rango en donde se va a pegar 'en tu caso solo cambia en donde dice ("Hoja2") por el nombre de tu hoja destino Sheets("Hoja2").Select Range("A3").Select 'Ahora hacemos un if en el cual evaluamos si la celda A3 esta vacia If ActiveCell.Text = "" Then 'si se cumple la condicion entonces pega la informacion en dicha celda (A3) ActiveSheet.Paste 'sino Else 'preguntamos si la celda que le sigue, en este caso B3 esta vacia If ActiveCell.Offset(0, 1).Value = "" Then 'si se cumple la condicion entonces pega la informacion en dicha celda (B3) ActiveCell.Offset(0, 1).Activate ActiveSheet.Paste Else 'sino entonces se corre hasta la ultima celda con datos + 1 Selection.End(xlToRight).Select ActiveCell.Offset(0, 1).Activate 'y pega la informacion ActiveSheet.Paste End If End If Application.CutCopyMode = False 'activamos nuevamente la hoja 1 Sheets("Hoja1").Activate 'en la celda C3 Range("C3").Select Application.Calculate Application.ScreenUpdating = True End Sub Si esto resuelve el problema por favor comenta y cierra la pregunta, en caso contrario no dudes en preguntarme nuevamente.