Problemas con Range

11/05/2004 - 04:18 por joaquin del campo | Informe spam
En el siguiente procedimiento. . .

Public Sub CopiarCeldas()

If Range("A1") = "a" Then
Worksheets("Hoja1").Range("A2:D9").Copy _
Destination:=Worksheets("Hoja2").Range("A1")

ElseIf Range("A1") = "b" Then
Worksheets("Hoja1").Range("A2:D9").Copy _
Destination:=Worksheets("Hoja3").Range("A1")

End If

End Sub


. . . que me permite copiar el contenido de un rango de la hoja 1, en
la Hoja 2 si A1 = a, y en la Hoja 3 si A1 = b; necesitaría ampliar el
rango "A2:D9" a la totalidad de la columna A. He utilizado para eso
Range("A:A") pero me arroja error.

Desde ya muchas gracias.

Joaquín
Buenos Aires. Argentina

Joancho
Buenos Aires. Argentina
jdcbairesSPAM@yahoo.com.arSPAM

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
11/05/2004 - 11:02 | Informe spam
Prueba con Columns("A:A") o con Columns(1)
Un saludo.


Fernando Arroyo
MS MVP - Excel


"joaquin del campo" escribió en el mensaje news:
En el siguiente procedimiento. . .

Public Sub CopiarCeldas()

If Range("A1") = "a" Then
Worksheets("Hoja1").Range("A2:D9").Copy _
Destination:=Worksheets("Hoja2").Range("A1")

ElseIf Range("A1") = "b" Then
Worksheets("Hoja1").Range("A2:D9").Copy _
Destination:=Worksheets("Hoja3").Range("A1")

End If

End Sub


. . . que me permite copiar el contenido de un rango de la hoja 1, en
la Hoja 2 si A1 = a, y en la Hoja 3 si A1 = b; necesitaría ampliar el
rango "A2:D9" a la totalidad de la columna A. He utilizado para eso
Range("A:A") pero me arroja error.

Desde ya muchas gracias.

Joaquín
Buenos Aires. Argentina

Joancho
Buenos Aires. Argentina

Respuesta Responder a este mensaje
#2 joaquin del campo
11/05/2004 - 14:57 | Informe spam
Funciono perfectamente, pero cuando quise aplicar Columns(1) en la
condicion me el siguiente error: "Error de compilacion: El argumento
no es opcional).

Probe con If Columns (1) y con If Range.Columns(1)

Public Sub CopiarCeldas()

Worksheets("Hoja1").Activate

If Range.Columns(1) = "a" Then
Worksheets("Hoja1").Columns(1).Copy _
Destination:=Worksheets("Hoja2").Range("A1")

ElseIf Columns(1) = "b" Then
Worksheets("Hoja1").Columns(1).Copy _
Destination:=Worksheets("Hoja3").Range("A1")

End If

End Sub
On Tue, 11 May 2004 11:02:52 +0200, "Fernando Arroyo"
wrote:

Prueba con Columns("A:A") o con Columns(1)
Un saludo.


Fernando Arroyo
MS MVP - Excel


"joaquin del campo" escribió en el mensaje news:
En el siguiente procedimiento. . .

Public Sub CopiarCeldas()

If Range("A1") = "a" Then
Worksheets("Hoja1").Range("A2:D9").Copy _
Destination:=Worksheets("Hoja2").Range("A1")

ElseIf Range("A1") = "b" Then
Worksheets("Hoja1").Range("A2:D9").Copy _
Destination:=Worksheets("Hoja3").Range("A1")

End If

End Sub


. . . que me permite copiar el contenido de un rango de la hoja 1, en
la Hoja 2 si A1 = a, y en la Hoja 3 si A1 = b; necesitaría ampliar el
rango "A2:D9" a la totalidad de la columna A. He utilizado para eso
Range("A:A") pero me arroja error.

Desde ya muchas gracias.

Joaquín
Buenos Aires. Argentina

Joancho
Buenos Aires. Argentina






Joancho
Buenos Aires. Argentina

Respuesta Responder a este mensaje
#3 Fernando Arroyo
11/05/2004 - 15:50 | Informe spam
Ni

If Range.Columns(1) = "a" Then

ni

ElseIf Columns(1) = "b" Then

pueden funcionar, porque estás intentando comparar un objeto Range con un literal. Además, la primera instrucción no tiene sentido porque Columns(1) es en sí misma un rango.

En tu primer mensaje, decías: "necesitaría ampliar el rango "A2:D9" a la totalidad de la columna A", y eso es lo que deberías poder conseguir usando Columns("A:A") o Columns(1). Me temo que no entiendo qué es lo que quieres conseguir modificado ambos IFs...
Un saludo.


Fernando Arroyo
MS MVP - Excel


"joaquin del campo" escribió en el mensaje news:
Funciono perfectamente, pero cuando quise aplicar Columns(1) en la
condicion me el siguiente error: "Error de compilacion: El argumento
no es opcional).

Probe con If Columns (1) y con If Range.Columns(1)

Public Sub CopiarCeldas()

Worksheets("Hoja1").Activate

If Range.Columns(1) = "a" Then
Worksheets("Hoja1").Columns(1).Copy _
Destination:=Worksheets("Hoja2").Range("A1")

ElseIf Columns(1) = "b" Then
Worksheets("Hoja1").Columns(1).Copy _
Destination:=Worksheets("Hoja3").Range("A1")

End If

End Sub
On Tue, 11 May 2004 11:02:52 +0200, "Fernando Arroyo"
wrote:

>Prueba con Columns("A:A") o con Columns(1)
>Un saludo.
>
>
>Fernando Arroyo
>MS MVP - Excel
>
>
>"joaquin del campo" escribió en el mensaje news:
>> En el siguiente procedimiento. . .
>>
>> Public Sub CopiarCeldas()
>>
>> If Range("A1") = "a" Then
>> Worksheets("Hoja1").Range("A2:D9").Copy _
>> Destination:=Worksheets("Hoja2").Range("A1")
>>
>> ElseIf Range("A1") = "b" Then
>> Worksheets("Hoja1").Range("A2:D9").Copy _
>> Destination:=Worksheets("Hoja3").Range("A1")
>>
>> End If
>>
>> End Sub
>>
>>
>> . . . que me permite copiar el contenido de un rango de la hoja 1, en
>> la Hoja 2 si A1 = a, y en la Hoja 3 si A1 = b; necesitaría ampliar el
>> rango "A2:D9" a la totalidad de la columna A. He utilizado para eso
>> Range("A:A") pero me arroja error.
>>
>> Desde ya muchas gracias.
>>
>> Joaquín
>> Buenos Aires. Argentina
>>
>> Joancho
>> Buenos Aires. Argentina
>>

Joancho
Buenos Aires. Argentina

Respuesta Responder a este mensaje
#4 joaquin del campo
11/05/2004 - 16:19 | Informe spam
Estoy intentando esto:
Columna A Columna B Columna C
Código Cantidad Importe
a 10 500
b 5 100
b 8 80
a 6 60
etc.
. . . entonces cada vez que escribo "a" los datos que tengo en la
columna B y C correspondientes a "a" se copien en la Hoja 1 y cuando
escribo "b" los datos de que le corresponden de dichas columnas se
copien en la Hoja 2y así sucesivamente si inserto otras letras.

On Tue, 11 May 2004 15:50:17 +0200, "Fernando Arroyo"
wrote:

Ni

If Range.Columns(1) = "a" Then

ni

ElseIf Columns(1) = "b" Then

pueden funcionar, porque estás intentando comparar un objeto Range con un literal. Además, la primera instrucción no tiene sentido porque Columns(1) es en sí misma un rango.

En tu primer mensaje, decías: "necesitaría ampliar el rango "A2:D9" a la totalidad de la columna A", y eso es lo que deberías poder conseguir usando Columns("A:A") o Columns(1). Me temo que no entiendo qué es lo que quieres conseguir modificado ambos IFs...
Un saludo.


Fernando Arroyo
MS MVP - Excel


"joaquin del campo" escribió en el mensaje news:
Funciono perfectamente, pero cuando quise aplicar Columns(1) en la
condicion me el siguiente error: "Error de compilacion: El argumento
no es opcional).

Probe con If Columns (1) y con If Range.Columns(1)

Public Sub CopiarCeldas()

Worksheets("Hoja1").Activate

If Range.Columns(1) = "a" Then
Worksheets("Hoja1").Columns(1).Copy _
Destination:=Worksheets("Hoja2").Range("A1")

ElseIf Columns(1) = "b" Then
Worksheets("Hoja1").Columns(1).Copy _
Destination:=Worksheets("Hoja3").Range("A1")

End If

End Sub
On Tue, 11 May 2004 11:02:52 +0200, "Fernando Arroyo"
wrote:

>Prueba con Columns("A:A") o con Columns(1)
>Un saludo.
>
>
>Fernando Arroyo
>MS MVP - Excel
>
>
>"joaquin del campo" escribió en el mensaje news:
>> En el siguiente procedimiento. . .
>>
>> Public Sub CopiarCeldas()
>>
>> If Range("A1") = "a" Then
>> Worksheets("Hoja1").Range("A2:D9").Copy _
>> Destination:=Worksheets("Hoja2").Range("A1")
>>
>> ElseIf Range("A1") = "b" Then
>> Worksheets("Hoja1").Range("A2:D9").Copy _
>> Destination:=Worksheets("Hoja3").Range("A1")
>>
>> End If
>>
>> End Sub
>>
>>
>> . . . que me permite copiar el contenido de un rango de la hoja 1, en
>> la Hoja 2 si A1 = a, y en la Hoja 3 si A1 = b; necesitaría ampliar el
>> rango "A2:D9" a la totalidad de la columna A. He utilizado para eso
>> Range("A:A") pero me arroja error.
>>
>> Desde ya muchas gracias.
>>
>> Joaquín
>> Buenos Aires. Argentina
>>
>> Joancho
>> Buenos Aires. Argentina
>>

Joancho
Buenos Aires. Argentina






Joancho
Buenos Aires. Argentina

Respuesta Responder a este mensaje
#5 Fernando Arroyo
12/05/2004 - 13:18 | Informe spam
Prueba con el siguiente código, el cual va en el módulo de la hoja (click derecho sobre su etiqueta->Ver código):


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub

Application.ScreenUpdating = False

With [A1]
.AutoFilter
.AutoFilter field:=1, Criteria1:=Target
.Cells.SpecialCells(xlCellTypeVisible).Copy Destination:=Worksheets("Hoja" & Asc(Target) - 96).[A1]
.AutoFilter
End With

Application.ScreenUpdating = True
End Sub

Pero te aconsejo que lo pruebes en una copia del libro, no vaya a ser que no haga lo que necesitas y "la jeringuemos".
Un saludo.


Fernando Arroyo
MS MVP - Excel



"joaquin del campo" escribió en el mensaje news:
Estoy intentando esto:
Columna A Columna B Columna C
Código Cantidad Importe
a 10 500
b 5 100
b 8 80
a 6 60
etc.
. . . entonces cada vez que escribo "a" los datos que tengo en la
columna B y C correspondientes a "a" se copien en la Hoja 1 y cuando
escribo "b" los datos de que le corresponden de dichas columnas se
copien en la Hoja 2y así sucesivamente si inserto otras letras.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida