Duda de aplicación

Hola querido experto quisiera realizarte la siguiente pregunta mira:
En una hoja de excel la tengo diseñada de la siguiente forma
Caja vtactdo pie financiado
1 1000 100 125000
2 5000 200 150000
3 5000 300 15000
Esta hoja es rígida en su estructura es decir siempre van las cajas en orden y los rótulos de columna como se muestran
En la hoja 2 traigo de un query (consulta de servidor sql) estos mismos datos de la misma forma lo que pasa es que habeces este query no me trae ejemplo las cajas en orde es decir
Caja vtacotdo pie financiado
2 1000 100 1000
3 1000 100 100
Si te das cuenta el query no me trajo la caja N° 1 lo que necesito es alguna macro o función que me copie a la hoja uno los datos de la hoja dos en orden de caja y si por ejemplo no me trae la caja n° 01 en la hoja 1 la caja n° 01 me indique cero hacia el lado no se si me logre explicar
gracias

1 respuesta

Respuesta
1
Hay algunos puntos de tu pregunta que no me han quedado claros:creo que se trata de que en la hoja 1 tienes unos datos que periódicamente vas actualizando con los datos de la hoja2, entiendo también que la hoja1 es exactamente igual que la hoja2, sólo que sin saltarse ninguna caja. Bien, si lo entendí todo bien, entonces, te propongo algo:se trataría de copiar la hoja2 en la hoja1, ordenarlas por cajas (en caso de que no lo estén), y luego hacer una macro que fuese recorriendo cada fila, asegurándose de que se empieza por la caja 1, y que sigue correlativamente, y cuando encontrase un salto (por ej. se pasa de la caja 3 a la 5), insertaría una fila donde pondría caja 4, y el resto de los datos los rellenaría con un cero. ¿Es ésto lo que quieres? Si es así, dímelo y te doy el código, sino, explícame lo que no entendí.
Si estimado experto es exactamente lo que necesito es eso lo que pasa es que la hoja dos se me llena de datos que provienen de un query y los necesito trasladarlos a la hoja 1 pero como tu bien lo entendiste que cuando en la hoja 2 se salte una caja eje de la 2 a la 5 en la hoja 1 donde esta la caja 4 me indiquen cero hacia el lado con un total de 3 columnas después de n° de caja es decir ejemplo
Caja vta contado pie financiado
1
2
3
4 0 0 0
5
Con Esto creo que queda un poco más claro
Gracias por tu tiempo y dedicación
Estimado experto disculpa el ser majadero pero no se si has podido leer mi consulta ya que me pediste que te aclarara algunos puntos te reenvío esta pregunta para ver si me la puedes responder ya que me dijiste que una vez más clara la pregunta me la podrías contestar
Gracias y disculpa el ser tan majadero
Has hecho muy bien en volver a escribir, porque yo no había visto tu respuesta, de hecho pensaba darte un toque para que me dijeras algo: bien, ahí va la macro:
Sub pegar()
'ordena los datos de la hoja1, si están ya ordenados, puedes no poner esta parte
Sheets("Hoja1").Range("A1").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Sheets("Hoja2").Cells.ClearContents
Sheets("Hoja1").Range("A1").CurrentRegion.Copy Sheets("Hoja2").Range("A1")
Sheets("Hoja2").Select
Range("A2").Select
While ActiveCell.Value <> ""
If ActiveCell.Value = Val(ActiveCell.Offset(-1, 0).Value) + 1 Then
ActiveCell.Offset(1, 0).Activate
Else
Rows(ActiveCell.Row).Select
Selection.Insert
With ActiveCell
.Value = Val(ActiveCell.Offset(-1, 0).Value) + 1
.Offset(1, 0).Activate
End With
End If
Wend
Range("A1").CurrentRegion.Select
Selection.Replace What:="", Replacement:="0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
End Sub
El ejemplo parte de la idea de que los datos están en la hoja1, empezando en la celda A1, si no es así, cambialo por lo que corresponda. Prueba la macro, y dime si era lo que querías, siento el retraso que se ha producido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas