programar rango o columna

14/12/2009 - 21:37 por Rony Lainez | Informe spam
Hola tengo un pequeño problema, estoy programando una columna que para al
momento de ingresar un nombre en una celda de esa columna auntomaticamente
me de otra informacion en la celda de la culmna siguiente y asi
susesivamente, la verad que lo logre pero un codigo para cada celda y en lo
que quiero que me ayuden es a programar la columna de una vez y no celda por
celda, aqui esta el codigo que yo tengo:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("E4").Value = "RIO" Then
Range("F4").Value = "RIRIHN"
ElseIf Range("E4").Value = "INA" Then
Range("F4").Value = "RIINHN"
End If

If Range("e4").Value <> "RIO" Then
Range("F4").Value = "INFORMACION INVALIDA"
End If

If Range("e4").Value <> "INA" Then
Range("F4").Value = "INFORMACION INVALIDA"
End If


If Range("E4").Value = "" Then
Range("F4").Value = ""
End If

End Sub


este codigo me funciona pero lo tengo que hacer para cada celdA.

TAMBIEN LO TENGO ASI PERO EN UNA CELDA

=IF(A5="RIO";"RIRIHN";IF(A5="INA";"RIINHN";IF(A5 = ""; "";IF(A5<>
"INA";"Informacion Incorrecta";IF(A5<> "RIO";"Informacion incorrecta")))))

Y SI FUNCIONA SOLO LO COPIO EN LA CELDA QUE LO QUIERO Y YA PERO LO QUIERO
HACER CON VISUAL BASIC.

ESPERO ME PUEDAN AYUDAR Y DE ANTEMANO MUCHAS GRACIAS.

Preguntas similare

Leer las respuestas

#1 Rony Lainez
15/12/2009 - 22:36 | Informe spam
Gracias por el aporte y disculpame la molestia pero en esa codificacion me
gustaria saber a que columnas te estas especificando o cuales son las que
estas programando, espero tu respuesta y muchas gracias.


Merino" wrote:

On 14 dic, 21:37, Rony Lainez <Rony
wrote:
> Hola tengo un pequeño problema, estoy programando una columna que para al
> momento de ingresar un nombre en una celda de esa columna auntomaticamente
> me de otra informacion en la celda de la culmna siguiente y asi
> susesivamente, la verad que lo logre pero un codigo para cada celda y en lo
> que quiero que me ayuden es a programar la columna de una vez y no celda por
> celda, aqui esta el codigo que yo tengo:
>
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>
> If Range("E4").Value = "RIO" Then
> Range("F4").Value = "RIRIHN"
> ElseIf Range("E4").Value = "INA" Then
> Range("F4").Value = "RIINHN"
> End If
>
> If Range("e4").Value <> "RIO" Then
> Range("F4").Value = "INFORMACION INVALIDA"
> End If
>
> If Range("e4").Value <> "INA" Then
> Range("F4").Value = "INFORMACION INVALIDA"
> End If
>
> If Range("E4").Value = "" Then
> Range("F4").Value = ""
> End If
>
> End Sub
>
> este codigo me funciona pero lo tengo que hacer para cada celdA.
>
> TAMBIEN LO TENGO ASI PERO EN UNA CELDA
>
> =IF(A5="RIO";"RIRIHN";IF(A5="INA";"RIINHN";IF(A5 = ""; "";IF(A5<>
> "INA";"Informacion Incorrecta";IF(A5<> "RIO";"Informacion incorrecta")))))
>
> Y SI FUNCIONA SOLO LO COPIO EN LA CELDA QUE LO QUIERO Y YA PERO LO QUIERO
> HACER CON VISUAL BASIC.
>
> ESPERO ME PUEDAN AYUDAR Y DE ANTEMANO MUCHAS GRACIAS.

Hola Rony.

Prueba lo siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 5 Then
Application.EnableEvents = False
If Target.Value = "RIO" Then
Target.Offset(0, 1).Value = "RIHRIN"
ElseIf Target.Value = "INA" Then
Target.Offset(0, 1).Value = "RIINHN"
ElseIf Target.Value = "" Then
Target.Offset(0, 1).Value = ""
Else
Target.Offset(0, 1).Value = "INFORMACION INVALIDA"
End If
End If
Application.EnableEvents = True
End Sub


Saludos,

Benito
Barcelona
.

Respuesta Responder a este mensaje
#2 Rony Lainez
15/12/2009 - 22:52 | Informe spam
te dire que estoy probando el codigo pero la verdad que no me hace ninguna
funcion y si pusiste 5 me imagino que te estas refiriendo a la columna "E"
pero nada talvez me puedes ayudar.



"Benito Merino" wrote:

On 14 dic, 21:37, Rony Lainez <Rony
wrote:
> Hola tengo un pequeño problema, estoy programando una columna que para al
> momento de ingresar un nombre en una celda de esa columna auntomaticamente
> me de otra informacion en la celda de la culmna siguiente y asi
> susesivamente, la verad que lo logre pero un codigo para cada celda y en lo
> que quiero que me ayuden es a programar la columna de una vez y no celda por
> celda, aqui esta el codigo que yo tengo:
>
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>
> If Range("E4").Value = "RIO" Then
> Range("F4").Value = "RIRIHN"
> ElseIf Range("E4").Value = "INA" Then
> Range("F4").Value = "RIINHN"
> End If
>
> If Range("e4").Value <> "RIO" Then
> Range("F4").Value = "INFORMACION INVALIDA"
> End If
>
> If Range("e4").Value <> "INA" Then
> Range("F4").Value = "INFORMACION INVALIDA"
> End If
>
> If Range("E4").Value = "" Then
> Range("F4").Value = ""
> End If
>
> End Sub
>
> este codigo me funciona pero lo tengo que hacer para cada celdA.
>
> TAMBIEN LO TENGO ASI PERO EN UNA CELDA
>
> =IF(A5="RIO";"RIRIHN";IF(A5="INA";"RIINHN";IF(A5 = ""; "";IF(A5<>
> "INA";"Informacion Incorrecta";IF(A5<> "RIO";"Informacion incorrecta")))))
>
> Y SI FUNCIONA SOLO LO COPIO EN LA CELDA QUE LO QUIERO Y YA PERO LO QUIERO
> HACER CON VISUAL BASIC.
>
> ESPERO ME PUEDAN AYUDAR Y DE ANTEMANO MUCHAS GRACIAS.

Hola Rony.

Prueba lo siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 5 Then
Application.EnableEvents = False
If Target.Value = "RIO" Then
Target.Offset(0, 1).Value = "RIHRIN"
ElseIf Target.Value = "INA" Then
Target.Offset(0, 1).Value = "RIINHN"
ElseIf Target.Value = "" Then
Target.Offset(0, 1).Value = ""
Else
Target.Offset(0, 1).Value = "INFORMACION INVALIDA"
End If
End If
Application.EnableEvents = True
End Sub


Saludos,

Benito
Barcelona
.

Respuesta Responder a este mensaje
#3 Benito Merino
15/12/2009 - 22:52 | Informe spam
On 15 dic, 22:36, Rony Lainez
wrote:
Gracias por el aporte y disculpame la molestia pero en esa codificacion me
gustaria saber a que columnas te estas especificando o cuales son las que
estas programando, espero tu respuesta y muchas gracias.

 Merino" wrote:
> On 14 dic, 21:37, Rony Lainez <Rony
> wrote:
> > Hola tengo un pequeño problema, estoy programando una columna que para al
> > momento de ingresar un nombre en una celda de esa columna auntomaticamente
> > me de otra informacion en la celda de la culmna siguiente y asi
> > susesivamente, la verad que lo logre pero un codigo para cada celda y en lo
> > que quiero que me ayuden es a programar la columna de una vez y no celda por
> > celda,  aqui esta el codigo que yo tengo:

> > Private Sub Worksheet_SelectionChange(ByVal Target As Range)

> > If Range("E4").Value = "RIO" Then
> >    Range("F4").Value = "RIRIHN"
> >                     ElseIf Range("E4").Value = "INA" Then
> >                            Range("F4").Value = "RIINHN"
> > End If

> > If Range("e4").Value <> "RIO" Then
> >    Range("F4").Value = "INFORMACION INVALIDA"
> > End If

> > If Range("e4").Value <> "INA" Then
> >    Range("F4").Value = "INFORMACION INVALIDA"
> > End If

> > If Range("E4").Value = "" Then
> >    Range("F4").Value = ""
> > End If

> > End Sub

> > este codigo me funciona pero lo tengo que hacer para cada celdA.

> > TAMBIEN LO TENGO ASI PERO EN UNA CELDA

> > =IF(A5="RIO";"RIRIHN";IF(A5="INA";"RIINHN";IF(A5 = ""; "";IF(A5<>
> > "INA";"Informacion Incorrecta";IF(A5<> "RIO";"Informacion incorrecta")))))

> > Y SI FUNCIONA SOLO LO COPIO EN LA CELDA QUE LO QUIERO Y YA PERO LO QUIERO
> > HACER CON VISUAL BASIC.

> > ESPERO ME PUEDAN AYUDAR Y DE ANTEMANO MUCHAS GRACIAS.

> Hola Rony.

> Prueba lo siguiente:

> Private Sub Worksheet_Change(ByVal Target As Range)

> If Target.Column = 5 Then
>      Application.EnableEvents = False
>      If Target.Value = "RIO" Then
>         Target.Offset(0, 1).Value = "RIHRIN"
>     ElseIf Target.Value = "INA" Then
>         Target.Offset(0, 1).Value = "RIINHN"
>     ElseIf Target.Value = "" Then
>         Target.Offset(0, 1).Value = ""
>     Else
>     Target.Offset(0, 1).Value = "INFORMACION INVALIDA"
> End If
> End If
> Application.EnableEvents = True
> End Sub

> Saludos,

> Benito
> Barcelona
> .



Hola.

Este evento se dispara en la columna E (target.column=5). Siendo un
evento, no se ejecuta como una macro (dentro de un módulo), sino que
deberás
pegarlo en el objeto Hoja donde quieras que se ejecute.

Te adjunto un link al ejemplo. Prueba a introducir en la columna E lo
que indicas en tu correo y verás las respuestas. En el mismo fichero
hay pegado un pantallazo con la imagen
del evento.

Saludos,

Benito
Barcelona
Respuesta Responder a este mensaje
#4 Benito Merino
16/12/2009 - 07:17 | Informe spam
On 15 dic, 22:52, Rony Lainez
wrote:
te dire que estoy probando el codigo pero la verdad que no me hace ninguna
funcion y si pusiste 5 me imagino que te estas refiriendo a la columna "E"
pero nada talvez me puedes ayudar.

"Benito Merino" wrote:
> On 14 dic, 21:37, Rony Lainez <Rony
> wrote:
> > Hola tengo un pequeño problema, estoy programando una columna que para al
> > momento de ingresar un nombre en una celda de esa columna auntomaticamente
> > me de otra informacion en la celda de la culmna siguiente y asi
> > susesivamente, la verad que lo logre pero un codigo para cada celda y en lo
> > que quiero que me ayuden es a programar la columna de una vez y no celda por
> > celda,  aqui esta el codigo que yo tengo:

> > Private Sub Worksheet_SelectionChange(ByVal Target As Range)

> > If Range("E4").Value = "RIO" Then
> >    Range("F4").Value = "RIRIHN"
> >                     ElseIf Range("E4").Value = "INA" Then
> >                            Range("F4").Value = "RIINHN"
> > End If

> > If Range("e4").Value <> "RIO" Then
> >    Range("F4").Value = "INFORMACION INVALIDA"
> > End If

> > If Range("e4").Value <> "INA" Then
> >    Range("F4").Value = "INFORMACION INVALIDA"
> > End If

> > If Range("E4").Value = "" Then
> >    Range("F4").Value = ""
> > End If

> > End Sub

> > este codigo me funciona pero lo tengo que hacer para cada celdA.

> > TAMBIEN LO TENGO ASI PERO EN UNA CELDA

> > =IF(A5="RIO";"RIRIHN";IF(A5="INA";"RIINHN";IF(A5 = ""; "";IF(A5<>
> > "INA";"Informacion Incorrecta";IF(A5<> "RIO";"Informacion incorrecta")))))

> > Y SI FUNCIONA SOLO LO COPIO EN LA CELDA QUE LO QUIERO Y YA PERO LO QUIERO
> > HACER CON VISUAL BASIC.

> > ESPERO ME PUEDAN AYUDAR Y DE ANTEMANO MUCHAS GRACIAS.

> Hola Rony.

> Prueba lo siguiente:

> Private Sub Worksheet_Change(ByVal Target As Range)

> If Target.Column = 5 Then
>      Application.EnableEvents = False
>      If Target.Value = "RIO" Then
>         Target.Offset(0, 1).Value = "RIHRIN"
>     ElseIf Target.Value = "INA" Then
>         Target.Offset(0, 1).Value = "RIINHN"
>     ElseIf Target.Value = "" Then
>         Target.Offset(0, 1).Value = ""
>     Else
>     Target.Offset(0, 1).Value = "INFORMACION INVALIDA"
> End If
> End If
> Application.EnableEvents = True
> End Sub

> Saludos,

> Benito
> Barcelona
> .



Hola.

Se me olvidó adjuntarte el link del ejemplo, que quizás te clarifique
algo más:

http://rapidshare.com/files/3214963...O.xls.html

Saludos,

Benito
Respuesta Responder a este mensaje
#5 Rony Lainez
16/12/2009 - 17:48 | Informe spam
Hola buen dia,

sabes el aporte esta excelente solo que me regresa un error cuando yo quiero
copiar por ejemplo el nombre de ina en varias celdas de la columna programada
o si quiero borrar tambien, no se cual sea el problema solo me deja copiar de
una en una o borrar, espero no sea mucha molestia y de verdad muchas gracias.

"Benito Merino" wrote:

On 15 dic, 22:52, Rony Lainez
wrote:
> te dire que estoy probando el codigo pero la verdad que no me hace ninguna
> funcion y si pusiste 5 me imagino que te estas refiriendo a la columna "E"
> pero nada talvez me puedes ayudar.
>
> "Benito Merino" wrote:
> > On 14 dic, 21:37, Rony Lainez <Rony
> > wrote:
> > > Hola tengo un pequeño problema, estoy programando una columna que para al
> > > momento de ingresar un nombre en una celda de esa columna auntomaticamente
> > > me de otra informacion en la celda de la culmna siguiente y asi
> > > susesivamente, la verad que lo logre pero un codigo para cada celda y en lo
> > > que quiero que me ayuden es a programar la columna de una vez y no celda por
> > > celda, aqui esta el codigo que yo tengo:
>
> > > Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>
> > > If Range("E4").Value = "RIO" Then
> > > Range("F4").Value = "RIRIHN"
> > > ElseIf Range("E4").Value = "INA" Then
> > > Range("F4").Value = "RIINHN"
> > > End If
>
> > > If Range("e4").Value <> "RIO" Then
> > > Range("F4").Value = "INFORMACION INVALIDA"
> > > End If
>
> > > If Range("e4").Value <> "INA" Then
> > > Range("F4").Value = "INFORMACION INVALIDA"
> > > End If
>
> > > If Range("E4").Value = "" Then
> > > Range("F4").Value = ""
> > > End If
>
> > > End Sub
>
> > > este codigo me funciona pero lo tengo que hacer para cada celdA.
>
> > > TAMBIEN LO TENGO ASI PERO EN UNA CELDA
>
> > > =IF(A5="RIO";"RIRIHN";IF(A5="INA";"RIINHN";IF(A5 = ""; "";IF(A5<>
> > > "INA";"Informacion Incorrecta";IF(A5<> "RIO";"Informacion incorrecta")))))
>
> > > Y SI FUNCIONA SOLO LO COPIO EN LA CELDA QUE LO QUIERO Y YA PERO LO QUIERO
> > > HACER CON VISUAL BASIC.
>
> > > ESPERO ME PUEDAN AYUDAR Y DE ANTEMANO MUCHAS GRACIAS.
>
> > Hola Rony.
>
> > Prueba lo siguiente:
>
> > Private Sub Worksheet_Change(ByVal Target As Range)
>
> > If Target.Column = 5 Then
> > Application.EnableEvents = False
> > If Target.Value = "RIO" Then
> > Target.Offset(0, 1).Value = "RIHRIN"
> > ElseIf Target.Value = "INA" Then
> > Target.Offset(0, 1).Value = "RIINHN"
> > ElseIf Target.Value = "" Then
> > Target.Offset(0, 1).Value = ""
> > Else
> > Target.Offset(0, 1).Value = "INFORMACION INVALIDA"
> > End If
> > End If
> > Application.EnableEvents = True
> > End Sub
>
> > Saludos,
>
> > Benito
> > Barcelona
> > .

Hola.

Se me olvidó adjuntarte el link del ejemplo, que quizás te clarifique
algo más:

http://rapidshare.com/files/3214963...O.xls.html

Saludos,

Benito
.

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