Copiar datos de una hoja a otra de acuerdo a celda

Hola chicos,
Ojala alguien me pueda ayudar, les comento que soy algo novata con excel, conozco Visual Basic, pero años tiene que no lo manejo xDDD de antemano muchas gracias,
Resulta que tengo un libro, con varias hojas, una de ellas contiene los hombres de mis alumnos, junto con sus calificaciones y turno
Lo que necesito es dividir a los alumnos en otras dos hojas de acuerdo a su turno, es decir copiarlos a la hoja que les corresponde con todo y calificaciones.
Tengo una hoja con todos los datos ordenados se llama Alumnos, en la columna B, tengo el turno numerado por uno o dos, y a partir de la columna C y hasta la QUE, los nombres junto con las calificaciones de primer semestre, de la QUE en adelante, tengo más calificaciones pero por ahora no necesito copiarlas.
Intente hacer algo, con una macro, y si me copia el primer valor, pero me he trabado con la parte de hacer el ciclo para que siga copiando los valores de acuerdo al turno, y me lie más porque no es la fila completa la que quiero copiar sino celdas especificas de acuerdo al alumno.
Sub copia_primer_sem()
Application.ScreenUpdating = False
Dim val, cel As String
Sheets("ALUMNOS").Select
Range("B15").Select
Do While ActiveCell.Value <> ""
    If ActiveCell.Value = "1" Then
        Range("C15").Select
        Selection.Copy
        Sheets("1ER SEM(MAT) -").Select
        Range("B17").Select
        ActiveCell.PasteSpecial
    End If
    If ActiveCell.Value = "2" Then
        'Copio el curp
        Range("C15").Select
        Selection.Copy
        Sheets("1ER SEM(VES) -").Select
        Range("B17").Select
        ActiveCell.PasteSpecial
    End If
    Sheets("ALUMNOS").Select
    ActiveCell.Offset(1, 0).Select
Loop
End Sub
Espero haberme explicado, de verdad muchas gracias! =)

1 respuesta

Respuesta
1
Me parece que sabes más que yo jajaja pero aquí tienes un opción variable a lo que buscas
Sub Macro1()
'
' Macro1 Macro
'
' Acceso directo: CTRL+s
'
Dim a As Integer
Dim Insertar As Integer
Insertar = 0
For a = 1 To 200
If (Range("b" + CStr(a)).Value = 1) Then
Insertar = Insertar + 1
Range(CStr(a) + ":" + CStr(a)).Select
Range(CStr(a) + ":" + CStr(a)).Copy
Sheets("hoja2").Select
Range("a" + CStr(Insertar)).PasteSpecial Paste:=xlPasteValues, operation:=xlNone, Skipblanks:=False, Transpose:=False
Sheets("hoja1").Select
End If
If (Range("b" + CStr(a)).Value = 2) Then
Insertar = Insertar + 1
Range(CStr(a) + ":" + CStr(a)).Select
Range(CStr(a) + ":" + CStr(a)).Copy
Sheets("hoja3").Select
Range("a" + CStr(Insertar)).PasteSpecial Paste:=xlPasteValues, operation:=xlNone, Skipblanks:=False, Transpose:=False
Sheets("hoja1").Select
End If
Next a
End Sub
Fíjate que la letra b que esta en negrita te es donde están los turnos de tus alumnos
Esotos te copiara solo los que tiene turno 1 en la hoja 2, es decir que los otros te los dejara en la otra hoja 3
Quería saber si te sirvió la respuesta que te di ya que la pregunta sigue abierta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas