Obtener los valores de una columna de Excel
Resuelto
roberto93
Mensajes publicados
14
Estado
Miembro
-
azitech Mensajes publicados 1 Estado Miembro -
azitech Mensajes publicados 1 Estado Miembro -
Hola,
Quiero recuperar los valores de una columna de la hoja 1 y enviarlos a la hoja 2.
Tengo 12 hojas, quiero automatizar el proceso para ir más rápido porque tengo que hacer lo mismo en docenas de libros.
La hoja 1 agrupa los datos durante todo el año, cada mes está en una columna
columna A Columna B Columna C Columna D y así sucesivamente....
Mes Actividad Duración de la actividad Mes
Quiero recuperar los datos de los meses (columnas) solamente de la hoja 1 y copiarlos/pegarlos en la hoja 2, 3, 4...12
en la celda N23 en todas las hojas.
Aquí está por ahora la macro que tengo
Sub Macro2()
Selection.Copy
Sheets(ActiveSheet.Name).Select
Range("N23").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
End Sub
Concluyo que hay que añadir una variable de incremento para leer las columnas deseadas y recuperar los valores.
Para una columna no es lo mismo que para las filas; no se puede hacer i = i + 1, hay que usar el código ASCII y hacer un doble bucle para las columnas con dos letras. ¿Cómo debería hacerlo?
En el código ASCII A = 65
Necesito su ayuda para resolver mi problema
Gracias de antemano
Quiero recuperar los valores de una columna de la hoja 1 y enviarlos a la hoja 2.
Tengo 12 hojas, quiero automatizar el proceso para ir más rápido porque tengo que hacer lo mismo en docenas de libros.
La hoja 1 agrupa los datos durante todo el año, cada mes está en una columna
columna A Columna B Columna C Columna D y así sucesivamente....
Mes Actividad Duración de la actividad Mes
Quiero recuperar los datos de los meses (columnas) solamente de la hoja 1 y copiarlos/pegarlos en la hoja 2, 3, 4...12
en la celda N23 en todas las hojas.
Aquí está por ahora la macro que tengo
Sub Macro2()
Selection.Copy
Sheets(ActiveSheet.Name).Select
Range("N23").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
End Sub
Concluyo que hay que añadir una variable de incremento para leer las columnas deseadas y recuperar los valores.
Para una columna no es lo mismo que para las filas; no se puede hacer i = i + 1, hay que usar el código ASCII y hacer un doble bucle para las columnas con dos letras. ¿Cómo debería hacerlo?
En el código ASCII A = 65
Necesito su ayuda para resolver mi problema
Gracias de antemano
Configuración: Windows 2000 Internet Explorer 6.0
Enlaces relacionados:
- [Excel] ¿Suma de celdas pares en una columna?
- Deshacer la ordenación de una columna de Excel
- invertir los datos de una columna en Excel
- Ocultar una columna mediante macro según el valor de una celda.
- Buscarvalor de textbox en una columna (Excel)
- Fijar los valores de una columna de una tabla dinámica.
4 respuestas
-
Hola,
puedes usar un código sencillo y fácil de escribir y seguir
Sub Macro1()
'
Sheets("Feuil1").Select
Columns("A:A").Copy
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Columns("B:B").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil3").Select
Range("A1").Select
ActiveSheet.Paste
' agrega aquí el código para las doce hojas
Sheets("Feuil1").Select
Range("A1").Select
Application.CutCopyMode = False
End Sub
A+ -
Hola
yo había hecho esta macro para buscar una celda que contenía cierta cadena de caracteres aquí ------Application----- y eliminaba todas las celdas después si puede ayudarte .
Sub appli()
Dim i As Long
Dim j As Long
Dim k As String
Dim kk As String
i = 1
jj = 65
j = 65
k = Chr(j)
kk = Chr(jj)
For jj = 65 To 72 Step 1
kk = Chr(jj)
For j = 65 To 90 Step 1
k = Chr(j)
'Do While ActiveSheet.Range(kk & k & i).Value <> ""
'For jj = 65 To 73 Step 1
'For j = 65 To 90 Step 1
Do While i <> 1000
If ActiveSheet.Range(kk & k & i).Value = " ------------Applications (WMI)---------" Then
ActiveSheet.Range(kk & k & i & ":IV" & i).Delete Shift:=xlToLeft
End If
i = i + 1
Loop
i = 1
Next
'Loop
Next
End Sub
Voila
++ -
-
En la misma hoja es posible escribir el código de manera diferente, pero en tu caso hay que tomar una columna distinta de la hoja1 para pegarla en una hoja separada cada vez. por otro lado es posible nombrar cada columna de la hoja 1 y en lugar de escribir en la macro
Columns("A:A").Copy
se podría escribir el nombre que se le ha dado a esa columna por ejemplo una.copy o Pierre.copy etc ...
Sheets("Feuil1").Select ("Feuil1") es el nombre de la hoja principal
Columns("A:A").Copy esta línea hace referencia a la columna A
Sheets("Feuil2").Select ("Feuil2") es el nombre de una hoja receptora
Range("A1").Select A1 es la posición de inicio para pegar la información
ActiveSheet.Paste y pega
a partir de este código puedes escribir esta función para cada columna que debes copiar en la hoja de tu elección
A+
__________________________________________________________________
Necesitas ayuda. En el foro, voluntarios se toman el tiempo para descifrar tus explicaciones a veces confusas, y proponen su conocimiento.
Solución encontrada, ten la cortesía de marcar tu estado como resuelto. Para que tu problema quede clasificado, y sirva de referencia para otros casos similares.