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

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.

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.
- Compartir respuesta
