Excel - cómo se mezclan 2 códigos de 2 hojas en una sola

 
Vista:
Imágen de perfil de celia
Val: 651
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo se mezclan 2 códigos de 2 hojas en una sola

Publicado por celia (275 intervenciones) el 13/12/2018 12:18:18
Hola de nuevo. Llevo horas intentando entender la lógica para unir el código de 2 archivos de excel en 1 solo y he intentado copiar el código VBA de 1 en el otro y no me funciona. Lo copié delante, detrás, le borré trozos que parecen repetidos por probar y solo consigo errores como este: Nombre ambiguo Worksheet.SelectionChange.

Copio aquí los 2 códigos por si alguien sabe qué falla o cómo unirlos porque este no es mi campo. Muchas gracias

Código 1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Lin As Integer, Col As Integer
    Col = Target.Column
    Fil = Target.Row
 
    If Col >= 65 And Col <= 77 And Fil >= 3 And Fil <= 15 Then
        Cells(6, 13) = Target.Value
    End If
        If Col >= 65 And Col <= 77 And Fil >= 3 And Fil <= 15 Then
        Cells(12, 13) = Target.Value
    End If
    If Col >= 18 And Col <= 30 And Fil >= 3 And Fil <= 15 Then
        Cells(4, 13) = Target.Value
    End If
      If Col >= 18 And Col <= 30 And Fil >= 3 And Fil <= 15 Then
        Cells(12, 13) = Target.Value
    End If
End Sub


Código 2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Fila_Destin As Long, f As Long, Texto As String, _
        Colu_Destin As Long, c As Long
 
    Dim Lin As Integer, Col As Integer
 
    Col = Target.Column
    Fil = Target.Row
 
    If Col >= 65 And Col <= 77 And Fil >= 3 And Fil <= 15 Then Cells(6, 13) = Target.Value
    If Col >= 65 And Col <= 77 And Fil >= 3 And Fil <= 15 Then Cells(12, 13) = Target.Value
    If Col >= 18 And Col <= 30 And Fil >= 3 And Fil <= 15 Then Cells(6, 13) = Target.Value
    If Col >= 18 And Col <= 30 And Fil >= 3 And Fil <= 15 Then Cells(12, 13) = Target.Value
 
    ' ---&---
 
    If Col = 13 And Fil = 7 Then
        Texto = Cells(7, "M")
 
        Fila_Destin = 42
        Colu_Destin = 4
 
        For Fil = 42 To 580 Step 15
            For Col = 37 To 134 Step 14
                If Texto = Cells(Fil, Col) Then
                  For f = 0 To 12
                       For c = 0 To 12
                           Cells(f + Fila_Destin, c + Colu_Destin) = Cells(f + Fil, c + Col)
                       Next
                   Next
                   Exit Sub
                End If
            Next
        Next
    End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.146
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo se mezclan 2 códigos de 2 hojas en una sola

Publicado por Antoni Masana (1456 intervenciones) el 13/12/2018 12:36:33
Buenos días Celia,

Menudo lío tienes montado con el libro. No te desesperes todos hemos empezado sin saber y dándonos de cabezazos contra el ordenadores.

Esto son las DOS macros en uno solo. Revisa los dos grupos de 4 IF porque estan repetidos y hay un pequeño cambio y no se cual es el bueno.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Lin As Integer, Col As Integer
 
    Dim Fila_Destin As Long, f As Long, Texto As String, _
        Colu_Destin As Long, c As Long
 
    Col = Target.Column: application.EnableEvents = False
    Fil = Target.Row
 
    If Col >= 65 And Col <= 77 And Fil >= 3 And Fil <= 15 Then  Cells( 6, 13) = Target.Value
    If Col >= 65 And Col <= 77 And Fil >= 3 And Fil <= 15 Then  Cells(12, 13) = Target.Value
    If Col >= 18 And Col <= 30 And Fil >= 3 And Fil <= 15 Then  Cells( 4, 13) = Target.Value
    If Col >= 18 And Col <= 30 And Fil >= 3 And Fil <= 15 Then  Cells(12, 13) = Target.Value
 
    If Col >= 65 And Col <= 77 And Fil >= 3 And Fil <= 15 Then Cells( 6, 13) = Target.Value    ' -- Repetido
    If Col >= 65 And Col <= 77 And Fil >= 3 And Fil <= 15 Then Cells(12, 13) = Target.Value    ' -- Repetido
    If Col >= 18 And Col <= 30 And Fil >= 3 And Fil <= 15 Then Cells( 6, 13) = Target.Value    ' -OJO- Es diferente
    If Col >= 18 And Col <= 30 And Fil >= 3 And Fil <= 15 Then Cells(12, 13) = Target.Value    ' -- Repetido
 
    ' ---&---
 
    If Col = 13 And Fil = 7 Then
        Fila_Destin = 42
        Colu_Destin = 4: Texto = Cells(7, "M")
 
        For Fil = 42 To 580 Step 15
            For Col = 37 To 134 Step 14
                If Texto = Cells(Fil, Col) Then
                    For f = 0 To 12
                        For c = 0 To 12
                            Cells(f + Fila_Destin, c + Colu_Destin) = Cells(f + Fil, c + Col)
                        Next
                    Next
                    application.EnableEvents = True
                    Exit Sub
                End If
            Next
        Next
    End If
    application.EnableEvents = False
End Sub

Saludos y animo.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de celia
Val: 651
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo se mezclan 2 códigos de 2 hojas en una sola

Publicado por celia (275 intervenciones) el 13/12/2018 14:38:22
Gracias de nuevo Antoni. Copie tu código a la nueva hoja final y no soy capaz de adaptarlo al pequeño cambio que hice y eso que parece fácil después de ordenarlo tú.
Anjunto la hoja seguro que abusando ya de vuestra amabilidad. Gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.146
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo se mezclan 2 códigos de 2 hojas en una sola

Publicado por Antoni Masana (1456 intervenciones) el 14/12/2018 10:01:02
Arreglada la macro.

Adjunto archivo.

Cada vez me cuesta más entender que estas haciendo y que utilidad tiene.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de celia
Val: 651
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo se mezclan 2 códigos de 2 hojas en una sola

Publicado por celia (275 intervenciones) el 14/12/2018 13:15:49
Pefecto Antoni. Mil gracias de nuevo. Ya te explicaré para que sirve cuando lo termine.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de celia
Val: 651
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo se mezclan 2 códigos de 2 hojas en una sola

Publicado por celia (275 intervenciones) el 14/12/2018 13:37:57
En la que me has pasado la tabla verde toma el dato de la tabla azul y copia la tabla que no es y no consigo redirigirla a la celda correcta. Probé a cambiar la línea 3 del código de la tabla verde para que lo tomara de la celda M11 pero no sé si hay más código en otro sitio del excel o que hago mal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de celia
Val: 651
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo se mezclan 2 códigos de 2 hojas en una sola

Publicado por celia (275 intervenciones) el 14/12/2018 15:45:38
Lo arreglé a base de probar. Me despistaba porque la barra de arriba aparecían también números en vez de las letras de siempre.
Al final aprendo aunque despacio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar