Buenos días:
Tengo una matriz dentro del código que copio mas abajo, B20:B35 para poner
la fecha que contiene la celda P1 (de la misma hoja) en la primera celda
libre, por ejemplo la B26 y por otro lado otra matriz C20:I35 para "pegar"
en la fila que corresponda por ser la primera fila libre, por ejemplo, la
C26:I26, (se trata de una sola celda de formato combinada)..., el contenido
de la celda P5 que contiene diversos textos concatenados que forman el todo
de un informe.
Como quiera que en las citadas matrices existen fórmulas del tipo BuscarV en
todas las celdas..., no sé como llegar a la primera celda libre donde no
haya un tinforme ya pasado, sino únicamente la fórmula citada. Este es el
primer problema.
Otro problema es que cuando copiaba la celda P5 para trasladarla a la celda
combinada C26:I26 me sale un mensaje de error de que no se puede pegar
porque las celdas de copiado y pegado no tienen el mismo formato como para
pegar "solo valores".
Sin embargo al copiar el contenido de P5 en P19 ya como texto, si copio esta
última celda y lo intento pegar en la celda combinada C26, el pegado normal
lo admite y como vereis en el codigo que grabé puedo a posteriori "pegar" el
formato de la celda anterior...
El código adjunto es el grabado por el sistema al crear la macro y no me
aclaro en la situación de las celdas ni en la forma de pegar necesito
ayuda, claro.
Espero haberme explicado suficientemente, aunque es un tema complicado de
entender...Haced lo que podáis y gracias.
José Rafael
Sub grabarresultadodelavisita()
'
' grabarresultadodelavisita Macro
' Macro grabada el 22/08/2009 por hes040
'
Dim fechainforme As Range
Dim textoinforme As Range
Sheets("Crear informes").Select
'ActiveCell.Address '(como alternativa a encontra la primera celda
libre, quería "situarme" primero en la celda libre y registrarla ... ???)
Range("B26").Select
'ActiveCell.FormulaR1C1 = fechainforme '(quería pasa el range de la
celda donde me habia situado.. no funciona)
Range("P1").Select
Selection.Copy
'Range("&fechainforme&").Select '(queria utilizar el range de la celda
donde me habia situado a través de la variable..??)
Range("B26").Select '(primera celda libre de la matriz de fecha B20:B35,
aunque contiene una formula tipo BuscarV)
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("P5").Select '(esta celda contiene una formula muy larga de
CONCATENAR, que recibe la información correspondiente)
Selection.Copy
Range("P19").Select (Aqui dejo el resultado de la celda P5, pero ya como
texto)
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Copy
Range("C26:I26").Select '(esta es la primera celda combinada libre de
texto, aunque con una fórmula BuscarV, destino del contenido de P19)
ActiveSheet.Paste (pega el texto de P19 de forma "normal")
Range("C25:I25").Select '(copio para pegar el formato en C26 y he
conseguido mi objetivo)
Application.CutCopyMode = False
Selection.Copy
Range("C26").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
Leer las respuestas