Capturar datos en una solo hoja

Hola de nuevo, por aquí molestándote nuevamente, ahora tengo esta duda como hago para que los datos que me muestra esta macro me los coloque en una sola hoja ya que me hace una hoja nueva por cada selection activada.
La macro:
Sub Explotar()
Dim c As Range
For Each c In Selection
c.ShowDetail = True
Next c
End Sub
Atentamente.
Carlos Duarte
Saludos

1 respuesta

Respuesta
1
Ok, además de la hoja inicial; ¿Cuántas hojas más tienes? O solo tienes las generadas...
Te lo pregunto porque dependiendo de esto será el nuevo ciclo que recorra las hojas...
Bueno tiene 4 hojas por todas el libro
1 es la base de datos
2 una pivot
3 otra pivot
4 otra pivot más
Aun que podría tener en una sola hoja las 3 pivotales si fuese necesario, si así se te facilita más.
Atentamente.
Carlos Duarte
Saludos
Dale; si podes dejar solo una hoja sería ideal; armatelo así y la seguimos (decime el nombre de la hoja que queda)
Ok, la hoja se llama "pivotales" ahí coloque todas las tablas pivot.
Saludos
Cduarte
Ok, ya esta la nueva hoja se llama "pivotales".
Saludos
Cduarte
Te paso el código
Sub limpiarHojas()
Dim w As Worksheet, i As Long
Dim stActual As String, stResultado As String
stResultado = ""
i = 1
For Each w In ThisWorkbook.Worksheets
If w.Name <> "pivotales" Then
If stResultado = "" Then
stResultado = w.Name
i = Sheets(stResultado).Cells(65000, 1).End(xlUp).Row + 2
Cells(i, 1).Select
Else
stActual = w.Name
w.Rows("1:40").Copy
Sheets(stResultado).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats
i = Sheets(stResultado).Cells(65000, 1).End(xlUp).Row + 2
Cells(i, 1).Select
Application.CutCopyMode = False
Application.DisplayAlerts = False
Sheets(stActual).Delete
Application.DisplayAlerts = True
End If
End If
Next w
Set w = Nothing
End Sub
Ojo porque te va eliminando el resto de las hojas; por las dudas antes de ejecutarlo asegurate de grabar el archivo (por si después querés deshacer algo)
Esta es la última parte con un procedimiento por separado que llamás desde tu macro original... te debería quedar algo como
Sub Explotar()
Dim c As Range
For Each c In Selection
c.ShowDetail = True
Next c
limpiarHojas
End Sub
Hola, creo que obiaste algo no veo esta instrucción en ninguna parte del código.
c.ShowDetail = True
Y ademas stResultado es un hoja en nueva o no por que si la corro así como esta me da error por que se posiciona sobre la hoja activa que en este caso es pivotales, y lo que hace es copiar esto rango w.Rows("1:40").Copy no la información que necesito
De antemano gracias por tu tiempo
Saludos
No; eso estaría copiando desde la fila 1 hasta la 40 (completa); ejecutala paso a paso y fíjate si en la hoja destino se está moviendo por la columna A; porque no debería tener problemas... salvo que haya que ponerle el nombre de la hoja cada vez. Si podes probá enviarme el archivo a [email protected]
Tiene que "pesar" menos de 5 Mb

Añade tu respuesta

Haz clic para o