Bloquear una fila de celdas como si fueran una sola

Buenas Dam

después de comparar dos facturas, en algunos casos, para que me coincidan tengo que mover ls datos de una para ponerlos en frente de la otra.

me facilitaría mucho el trabajo si pudiera hacer como si todos estos datos fueran un bloque, d tal manera que las pudiera cortar o mover señalando solo a una.

o sea que en un fichero de cien filas, pudiera decirle que las 7 primeras celdas son un bloque y se mueven o cortan todas juntas sin tener que señalarlas a todas. Y las seis siguientes igual. ¿se puede hacer?

Muchas gracias.

1 Respuesta

Respuesta
1

Cada registro de esas 7 celdas deben tener un identificar que los hagan diferentes a los otros 100.

Si me dices cuál es ese identificador y me dices a dónde hay que pasarlas o enfrentarlas se puede hacer.

Si no te molesta, y perdona que te haga trabajar, pero voy a necesitar que me hagas varios ejemplos con colores y toda la cosa.

Saludos. Dam

hola Dam:

después de realizar una comparación entre facturas,y una vez expuestas la primera factura en frente de la otra y ordenadas alfabeticamente las dos entre si, en algunos casos lo que necesito es mover algunos de los datos de una factura para que coincidan con la otra.

Por tanto,en una fila de

celda a b c d e f g h

fecha-tipo-cliente-referencia-acto- fecha acto.-precio hacerlas un bloque y cliente-

i j k l m

fererencia-fecha acto-precio- diferencia-fecha factura hacer otro bloque.

y que estos bloques tengan propiedades de una celda, es decir, si yo pincho en una celda para cortar, me corte todo el bloque.

no se si con esta explicacion te valdrá....

muchas gracias por tu atencion.

Faltaron los ejemplos, con datos reales.

Ya entendí, se deben hacer un solo bloque varios registros.

Pero necesito que pongas ejemplos, ¿de los 100 registros como identificas que 7 pertenecen a un bloque?

Saludos. Dam

aquí vuelvo Dam:

ejemplos:

celda a1 b1 c1 d1 e1 f1 g1 serán un bloque

20/10/0112 tipo A antonio ruiz código a pintura 20/01/12 300€

celda h1 i1 j1 k1 l1 m1 seria otro bloque

antonio ruiz pintura 20/01/12 200€ 100 30/11/2012.

celda a2 b2 c2 d2 e2 f2 g2 serán otro bloque

20/10/2012 tipo A jose perez código A coche 22/01/2012 500

celda h2 i2 j2 k2 l2 m2 estará en blanco

celda h3 i3 j3 k3 l3 m3 otro bloque

jose a. perez coche 22/01/2012 400€ 100 30112012

según el programa que desarrollaste, este asegurado al tener una "a" detrás del nombre, no lo pone en frente pero lo deja debajo. muy bien, pero ahora quiero evitar tener qe señalar las seis casillas para moverlo. si todas fueran un bloque, picaría solo por ejemplo en la celda "m3" y subiría las seis celdas a la fila 2 y asi en las 100000 filas que tengo.

espero que esto sirva, no se me ocurre mas ejemplos.

un saludo Dam.

Perdona que te haga trabajar, pero sigo sin entender, ¿dónde están los 7 registros que pertenecen a un bloque?

En un excel podrías ponerlos en colores y de alguna forma explicarme cómo los identificas esos 7 registros para hacerlos un bloque y luego en otra hoja, decirme cómo los quieres mover y enfrentar contra qué.

Necesito saber qué haces manualmente paso a paso, para poder interpretarlo y así poder generar la macro.

Envíame tu archivo Mi correo [email protected]
Nol olvides poner En el asunto escribe tu clave de usuario y el título de esta pregunta.

ya te lo mandé, como siempre muchas gracias.

Te envié la respuesta a tu correo.

Saludos. Dam

te lo envío, un saludo.

Por fin entendí, disculpa que sea tan lento de aprendizaje
En el archivo que me enviaste tienes en factura a:
Gutierrez teran nicolas
Y en abono tienes a:
Gutierrez teran nicolas luis
Es la misma persona, pero los nombres están diferentes en uno de los archivos.

Te hice esta macro para ver si es lo que necesitas.

Instrucciones para worksheet
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(Hoja3)
4. Del lado derecho copia la macro

Private Sub Worksheet_Selectionchange(ByVal Target As Range)
'selecciona celdas y corta
'Por.Dam
If Not Intersect(Target, Range("H:H")) Is Nothing Then
    lin = Target.Row
    Range("H" & lin & ":M" & lin).Select
    Selection.Cut
Else
    Application.CutCopyMode = False
End If
End Sub

Cada vez que presiones click en cualquier celda de la columna H, la macro selecciona las celdas de la H a la M y las pone en modo de cortar, es decir, cuando le des enter a la celda donde las quieres pasar, en automático las mueve a la nueva celda.
Si no las quieres mover, presiona click en cualquier otra celda.

Saludos. Dam
Si es lo que necesitas.

te cuento Dam:

si que veo que me coge toda la fila de h a m pero a la hora de pegarla no me deja, me coge para pegar la fila donde voy a pegar.

me interesaría poder coger varias filas a la vez, pues en los ficheros grandes hay veces que tengo que mover hasta veinte registros a la vez.

por favor, si te doy mucha guerra dímelo.

un millón de gracias.

Sigue las mismas instrucciones anteriores y cambia la macro por esta

Private Sub Worksheet_Selectionchange(ByVal Target As Range)
'selecciona celdas y corta
'Por.Dam
If Not Intersect(Target, Range("H:H")) Is Nothing Then
    lin = Target.Row
    linfin = lin
    nombre = Target.Value
    Application.EnableEvents = False
    ufila = Range("H" & Rows.Count).End(xlUp).Row
    For i = Target.Row + 1 To ufila
        If Cells(i, Target.Column) = nombre Then
            linfin = i
        Else
            Exit For
        End If
    Next
    Range(Cells(lin, Target.Column), Cells(linfin, Target.Column + 6)).Select
    Selection.Cut
    fila = InputBox("Fila destino. Ej: 50", "Módulo de cortar")
    If fila <> "" Then
        Range("H" & fila).Select
        ActiveSheet.Paste
    End If
    Application.CutCopyMode = False
    Application.EnableEvents = True
Else
    Application.CutCopyMode = False
    Application.EnableEvents = True
End If
    Application.EnableEvents = True
End Sub

Cuando presiones click en el nombre que quieres mover, tienes que saber a qué número de fila lo vas a enviar.

Prueba y me dices

Saludos. Dam

Si es lo que necesitas.

hola Dam:error en tiempo de ejecución:

en la macro sale en amarillo "nombre=tarjet.value "

saludos.

¿Qué le hiciste a la macro?

¿Qué le cambiaste?

Si revisas bien la macro que te envié, en ninguna parte dice tarjet.

Cambia la palabra tarjet por Target, debe quedar así

nombre = Target.Value

Prueba y me dices

Saludos. Dam

muchas gracias Dam. no me ha salido pero no quiero robarte mas tiempo. que sepas que gracias a la macro que me hiciste de comparar dos facturas he triplicado mis resultados.

te estoy muy agradeido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas