Copiar datos de otra hoja excel

Primeramente agradecerles por sus apoyos a los novatos como nosotros:

Quiero crear dos macros con las siguientes indicaciones:

Macro1. Que me permita crear una nueva, ponerle un nombre (textbox1) y cuando le doy al botón de crear, me cree la nueva hoja con el nombre propuesto, y me guarde el nombre de la hoja en una celda del rango E de la hoja "DATOS" y luego me copie el formato completo de la hoja "Modelo".

Macro2. A través de un combobox, levante los datos del rango E de la hoja DATOS y datos de esa hoja especificada. Tengo la macro de esta, pero me pone todos los nombres de las hojas del libro y solo quiero que levante del rango E. Aquí les envío esta segunda macro:

Private Sub UserForm_Initialize()
Dim Hoja As Worksheet
For Each Hoja In ActiveWorkbook.Sheets
ComboBox4.AddItem Hoja.Name
Next Hoja
Set Hoja = Nothing
End Sub

Private Sub ComboBox4_Change()
Sheets(ComboBox4.Text).Select
TextBox1 = Sheets(ComboBox4.Text).Range("C3")
TextBox2 = Date
TextBox3 = Sheets(ComboBox4.Text).Range("H3")
TextBox4 = Sheets(ComboBox4.Text).Range("J3")
TextBox5 = Sheets(ComboBox4.Text).Range("L3")
End Sub

Respuesta
1

Conseguí armar la macro, por si a alguien le interesa.

Private Sub CommandButton1_Click()
FALTA
Dim nombreHoja As String
nombreHoja = TextBox1
If nombreHoja = "" Then Exit Sub
Dim hoja As Worksheet
Set hoja = ActiveWorkbook.Sheets.Add
hoja.Name = nombreHoja
Formato
Unload Me
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub
Sub FALTA()
For i = 1 To 20
If Hoja5.Cells(i, 5) = "" Then
Final = i
Exit For
End If
Next
Hoja5.Cells(Final, 5) = TextBox1
End Sub

Sub Formato()
Worksheets("Modelo").Select
Cells.Select
Application.CutCopyMode = False
Selection.Copy
Sheets(TextBox1.Text).Select
Cells.Select
ActiveSheet.Paste
Range("C7").Select
Sheets("Modelo").Select
Range("B11").Select
Sheets("Hoja11").Select
Range("B7").Select
Sheets("INICIO").Select
Range("A1").Select
Application.CutCopyMode = False
End Sub

Y para jalar los datos de la hoja cree esta macro:

Private Sub UserForm_Initialize()
car
End Sub
Private Sub car()
Dim rango, celda As Range
Set rango = Worksheets("Datos").Range("E1:E10")
For Each celda In rango
ComboBox4.AddItem celda.Value
Next celda
End Sub
Private Sub ComboBox4_Change()
Sheets(ComboBox4.Text).Select
TextBox1 = Sheets(ComboBox4.Text).Range("C3")
TextBox2 = Date
TextBox3 = Sheets(ComboBox4.Text).Range("H3")
TextBox4 = Sheets(ComboBox4.Text).Range("J3")
TextBox5 = Sheets(ComboBox4.Text).Range("L3")
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas