none
referencia de una hoja a otra RRS feed

  • Pregunta

  • como hacer referencia de un hoja a otra usando macro

    en la hoja 1 tengo la siguiente campos

    fecha hora nombre apellido

    en la hoja de 2 los datos

    quisiera que se pasaran a la hoja uno y verifique que si esta llena vaya a la otra

     

     

    sábado, 13 de agosto de 2011 22:56

Respuestas

  • Realmente resulta complejo hacer lo que pretendes, especialmente si como parece los bloques de datos no son identicos de tamaño, todos menos uno tienen 12 filas, el segundo tiene 13, ..

    Salvando ese problema, este código te puede ayudar

     

    Public Sub Prueba()
    Dim Celda As Range, _
        lngFila As Long, _
        lngCuenta As Long, _
        strRango As String

       
    Worksheets("Hoja1").Activate

    ' busco la ultima fila con datos en la hoja 1
    lngFila = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    strRango = ActiveSheet.Range("A1:A" & lngFila).Address

    ' busco la ultima fila con datos en la hoja 2
    lngFila = Worksheets("Hoja2").Cells(Rows.Count, 1).End(xlUp).Row + 1
    ' recorro los datos
    For Each Celda In ActiveSheet.Range(strRango)
       lngCuenta = lngCuenta + 1
       If Not IsEmpty(Trim(Celda)) Then
          Select Case lngCuenta
             Case 1
                Worksheets("Hoja2").Cells(lngFila, 3) = Celda
             Case 2
                Worksheets("Hoja2").Cells(lngFila, 1) = Celda
             Case 3
                Worksheets("Hoja2").Cells(lngFila, 2) = Celda
             Case 8
                Worksheets("Hoja2").Cells(lngFila, 5) = Celda
             Case 9
                Worksheets("Hoja2").Cells(lngFila, 6) = Celda
             Case 10
                Worksheets("Hoja2").Cells(lngFila, 7) = Celda
             Case 12
                Worksheets("Hoja2").Cells(lngFila, 4) = Celda
          End Select
          ' cuando encuentro End of Entry recomienzo la cuenta
          If Not InStr(Celda.Value, "End of Entry") = 0 Then
             lngCuenta = 0
             lngFila = lngFila + 1
          End If
       End If
    Next Celda
    End Sub


    Saludos a todos desde Huelva
    http://www.mvp-access.es/emilio/
    • Marcado como respuesta Ismael Borche viernes, 26 de agosto de 2011 20:38
    lunes, 15 de agosto de 2011 11:13

Todas las respuestas

  • Hola!

    lo siento, pero yo no he entendido nada, ¿puedes hacer un esfuerzo y explicarte mejor?, si pones un ejemplo de los datos que tienes y el resultado que quieres, mucho mejor.


    Saludos a todos desde Huelva
    http://www.mvp-access.es/emilio/
    domingo, 14 de agosto de 2011 10:27
  • 18528593	
    05/17/2010	
    11:31:37	
    	
    	
    	
    	
    -2.92%	
    -0.85%	
    -0.11%	
    	
    801076	
    	
    	
    	
    	
    	
    	
    	
    **** End of Entry ****	
    18532565	
    05/17/2010	
    11:59:41	
    	
    	
    
    
    
    -0.16%
    -1.05%
    -0.28%
    
    801076
    
    
    
    
    
    
    
    **** End of Entry ****
    18531309
    05/17/2010
    12:30:22
    
    
    
    
    -1.09%
    -0.66%
    -1.62%
    
    801076
    
    
    
    
    
    
    
    **** End of Entry ****
    18585458
    05/17/2010
    13:32:48
    
    
    
    
    -0.78%
    -1.79%
    -0.22%
    
    801076
    
    
    
    
    
    
    
    **** End of Entry ****
    97057130
    05/17/2010
    14:07:20
    
    
    
    
    -2.36%
    0.88%
    -1.06%
    
    801076
    
    
    
    
    
    
    
    **** End of Entry ****
    18584009
    05/17/2010
    14:33:43
    
    
    
    
    -0.82%
    -0.85%
    -1.46%
    
    801076
    
    
    
    
    
    
    
    **** End of Entry ****
    18528927
    05/17/2010
    14:59:35
    
    
    
    
    1.14%
    -1.15%
    -0.73%
    
    801076
    
    
    
    
    
    
    
    **** End of Entry ****
    96213313
    05/17/2010
    15:23:38
    
    
    
    
    -0.13%
    0.32%
    -0.30%
    
    801076
    
    
    
    
    
    
    
    **** End of Entry ****
    
    esto son lo datos en la hoja 2 quiero cuando apriete el boton salga de esta forma en la hoja 1
    
    fecha	hora	medidor	patron	Fl	Fp	ll
    05/17/2010	11:31:37	18528593	801076	-2.92%	-0.85%	-0.11%
    05/17/2010	11:59:41	18532565	801076	-0.16%	-1.05%	-0.28%
    en forma horizontal 


    domingo, 14 de agosto de 2011 22:38
  • Realmente resulta complejo hacer lo que pretendes, especialmente si como parece los bloques de datos no son identicos de tamaño, todos menos uno tienen 12 filas, el segundo tiene 13, ..

    Salvando ese problema, este código te puede ayudar

     

    Public Sub Prueba()
    Dim Celda As Range, _
        lngFila As Long, _
        lngCuenta As Long, _
        strRango As String

       
    Worksheets("Hoja1").Activate

    ' busco la ultima fila con datos en la hoja 1
    lngFila = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    strRango = ActiveSheet.Range("A1:A" & lngFila).Address

    ' busco la ultima fila con datos en la hoja 2
    lngFila = Worksheets("Hoja2").Cells(Rows.Count, 1).End(xlUp).Row + 1
    ' recorro los datos
    For Each Celda In ActiveSheet.Range(strRango)
       lngCuenta = lngCuenta + 1
       If Not IsEmpty(Trim(Celda)) Then
          Select Case lngCuenta
             Case 1
                Worksheets("Hoja2").Cells(lngFila, 3) = Celda
             Case 2
                Worksheets("Hoja2").Cells(lngFila, 1) = Celda
             Case 3
                Worksheets("Hoja2").Cells(lngFila, 2) = Celda
             Case 8
                Worksheets("Hoja2").Cells(lngFila, 5) = Celda
             Case 9
                Worksheets("Hoja2").Cells(lngFila, 6) = Celda
             Case 10
                Worksheets("Hoja2").Cells(lngFila, 7) = Celda
             Case 12
                Worksheets("Hoja2").Cells(lngFila, 4) = Celda
          End Select
          ' cuando encuentro End of Entry recomienzo la cuenta
          If Not InStr(Celda.Value, "End of Entry") = 0 Then
             lngCuenta = 0
             lngFila = lngFila + 1
          End If
       End If
    Next Celda
    End Sub


    Saludos a todos desde Huelva
    http://www.mvp-access.es/emilio/
    • Marcado como respuesta Ismael Borche viernes, 26 de agosto de 2011 20:38
    lunes, 15 de agosto de 2011 11:13