Saltar al contenido

Que hacer para que la macro escriba en la siguiente linea vacia


Recommended Posts

publicado

Soy nuevo en esto de las macros, me he puesto con el grabador y aquí estoy haciendo lo que puedo. La cuestión es que he hecho unas macros, que más o menos me funcionan, pero siempre viene una parte que desconoces. Quisiera escribir en la siguiente linea vacia, ¿como se lo tengo que decir a la macro? Tengo en una hoja el problema que siempre que voy allí me manda al principio de la hoja. Que se puede hacer para corregir éste problema, para que me envié donde está el último dato. Como no puedo subir el archivo porque es muy grande, os pongo la macro para que me digais.

Gracias y un saludo a todos. Pablo

Sub MacroIberdrola()

'

' MacroIberdrola Macro

'

'

Sheets("Hoja3").Select

Range("E23").Select

Selection.Copy

ActiveWindow.ScrollWorkbookTabs Sheets:=-25

Sheets("Iberdrola").Select

Range("D4945").Select

ActiveSheet.Paste

Range("E4944").Select

Application.CutCopyMode = False

Selection.Copy

Range("E4945").Select

ActiveSheet.Paste

ActiveWindow.ScrollWorkbookTabs Position:=xlLast

Sheets("Hoja3").Select

Range("F23").Select

Application.CutCopyMode = False

Selection.Copy

ActiveWindow.ScrollWorkbookTabs Sheets:=-23

Sheets("Iberdrola").Select

Range("F4945").Select

ActiveSheet.Paste

ActiveWindow.ScrollWorkbookTabs Position:=xlLast

Sheets("Hoja3").Select

Range("B23").Select

Application.CutCopyMode = False

Selection.Copy

ActiveWindow.ScrollWorkbookTabs Sheets:=-27

Sheets("Iberdrola").Select

Range("G4945").Select

ActiveSheet.Paste

Selection.Font.Bold = True

Range("H4944:L4944").Select

Selection.Copy

Range("H4945").Select

ActiveSheet.Paste

ActiveWindow.ScrollWorkbookTabs Position:=xlLast

Sheets("Hoja3").Select

Range("G23").Select

Application.CutCopyMode = False

Selection.Copy

ActiveWindow.ScrollWorkbookTabs Position:=xlFirst

ActiveWindow.ScrollWorkbookTabs Sheets:=1

ActiveWindow.ScrollWorkbookTabs Sheets:=1

ActiveWindow.ScrollWorkbookTabs Sheets:=1

Sheets("Iberdrola").Select

Range("M4945").Select

ActiveSheet.Paste

Range("N4944").Select

Application.CutCopyMode = False

Selection.Copy

Range("N4945").Select

ActiveSheet.Paste

ActiveWindow.ScrollWorkbookTabs Position:=xlLast

Sheets("Hoja3").Select

Range("H23").Select

Application.CutCopyMode = False

Selection.Copy

ActiveWindow.ScrollWorkbookTabs Sheets:=-28

Sheets("Iberdrola").Select

Range("B4945").Select

ActiveSheet.Paste

Columns("B:B").EntireColumn.AutoFit

Columns("B:B").Select

Range("B2").Activate

ActiveWindow.ScrollWorkbookTabs Position:=xlLast

Range("C4948").Select

ActiveWindow.ScrollWorkbookTabs Position:=xlLast

Sheets("Hoja3").Select

End Sub

publicado

Hola picapajaros.

Saludos joshua.

Para escribir un dato en la fila inferior, debajo del último dato escrito se emplea.

Por ejemplo:

Range("D60:K60").Select ' seleccionar rango D60:K60

Selection.Copy 'copiar el rango de los datos

Sheets("BD").Select ' seleccionar la hoja BD donde se pegaran los datos

Range("B3000").Select ' ir a la celda B3000 o la última celda donde estes seguro de que no escribiras datos

Selection.End(xlUp).Select 'subir hasta la ultima celda con datos en la columna B

ActiveCell.Offset(1, 0).Select ' bajar una celda

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False ' pegar los datos con formato especial

Application.CutCopyMode = False ' borrar los datos del portapapeles

Saludos.

publicado

perdon la intromision amigos, yo tambien he buscado este tema de escribir en la ultima celda vacia y la verdad si he encontrado soluciones, pero mi pregunta va para ti torquemada, si sabes hacer ese proceso donde empieze a escribir en la ultima fila vacia que no sea mediante codigo nativo de excel si no con codigo simple de visual basic?, es decir, algo asi como utilizar una variable "fila" y una variable "ultimafilavacia". Mi intension es que se pueda crear una funcion que solo sea llamada para ello cuando se necesite algo asi como:

Public Function BuscarCeldaGrabar(filaInicial As Integer, columnaInicial As Integer) As Integer
Dim fila As Integer
Dim columna As Integer

fila = filaInicial
columna = columnaInicial

'MsgBox Cells(fila, columna)

While Not IsEmpty(Cells(fila, columna))
fila = fila + 1

Wend

'MsgBox fila

BuscarCeldaGrabar = fila

End Function[/PHP]

algo como eso, la verdad no se como funciona eso o como se puede aplicar, me gustaria me pudieras contestar mi pregunta, tambien es con la intension de poder aportar algo mejor al tema. saludos

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.