En este codigo la celda presentaba dato numerio cambiar a alfanume

13/08/2008 - 21:08 por Age | Informe spam
esta es parte de un codigo que tengo:

numero = Range("a1").Value
codigo = Range("e4").Text
medida = Range("e6").Value
cantidad = Range("e7").Value
tipo = Range("e8").Value

originalmente en codigo se manejaba numero solamente, pero ahora quiero que
sea un codigo alfanumerico y en otro caso solo alfabetico.

que cambio debo hacerle, probe cambiar value por text y no funciono!!

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
13/08/2008 - 22:49 | Informe spam
hola, (...) ???

la fraccion de codigo que expones (solamente) asigna a cada "variable" el contenido de una celda
dependiendo del tipo de datos con el que hayas "declarado" cada variable... es probable que (p.e.)
si al declarar la variable (codigo) le asignaste un tipo de datos Byte, Integer, Long, Single o Double
y tratas de "cambiarla" a un tipo de datos String (cuestion que sucede al usar la propiedad Text de un rango)
(obviamente) la asignacion del "valor" no cumple con el tipo de datos asignado/declarado/esperado

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
esta es parte de un codigo que tengo:

numero = Range("a1").Value
codigo = Range("e4").Text
medida = Range("e6").Value
cantidad = Range("e7").Value
tipo = Range("e8").Value

originalmente en codigo se manejaba numero solamente
pero ahora quiero que sea un codigo alfanumerico y en otro caso solo alfabetico.
que cambio debo hacerle, probe cambiar value por text y no funciono!!
Respuesta Responder a este mensaje
#2 Age
14/08/2008 - 00:40 | Informe spam
Una disculpa H.M. ligue este comentario a otro nmensje que tenia, aqui es
donde va en realidad lo siguiente:

Este es el codigo completo y original:

'Aqui se declaran las variables a usarse
Dim codigo As Integer, cantidad As Integer, stockantiguo As Integer
Dim numero As Integer
Dim tipo As String, producto As String, medida As String

'Revisamos que los campos esten llenos, sino se envia un msj y finaliza la
macro
If Range("e4").value = Empty Or Range("e7").Value = Empty Or
Range("e8").Value = Empty Then
MsgBox prompt:="Ud. esta dejando campos vacios", Buttons:=vbOKOnly,
Title:="Llene todos los campos"
Exit Sub
End If

'Le damos valores a las variables
numero = Range("a1").Value
codigo = Range("e4").Value
medida = Range("e6").Value
cantidad = Range("e7").Value
tipo = Range("e8").Value

'Comienza la accion. Vamos a la otra hoja
'Revisamos las celdas con un bucle (do while-loop) para compararlas con
'las variables, para encontrar coincidencias
Sheets("Datos").Select
Range("a3").Select
Do While ActiveCell.Value <> Empty

'Si coinciden en codigo y tipo (entrada) aumenta el stock (+)
If ActiveCell.Value = codigo And tipo = "Entrada" Then
ActiveCell.Offset(0, 1).Select
producto = ActiveCell.Value
ActiveCell.Offset(0, 2).Select
stockantiguo = ActiveCell.Value
ActiveCell.Value = ActiveCell.Value + cantidad
MsgBox prompt:="Su stock de " & producto & " a sido actualizado" & Chr(13) &
"de " & stockantiguo & " a " & ActiveCell.Value, Buttons:=vbOKOnly,
Title:="Stock actualizado"

' aqui comienza la rutina de control
Sheets("control").Select
Range("a1").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = numero
ActiveCell.Offset(0, 1).Value = codigo
ActiveCell.Offset(0, 2).Value = producto
ActiveCell.Offset(0, 3).Value = medida
ActiveCell.Offset(0, 4).Value = cantidad
ActiveCell.Offset(0, 5).Value = tipo

' Limpieza de celdas
Sheets("partes").Select
Range("e4,e7,e8").ClearContents
Range("a1").Value = Range("a1").Value + 1
Range("e4").Select
Exit Sub
End If

'Si coinciden en codigo y tipo (salida) decrece el stock (-)
If ActiveCell.Value = codigo And tipo = "Salida" Then
ActiveCell.Offset(0, 1).Select
producto = ActiveCell.Value
ActiveCell.Offset(0, 2).Select
stockantiguo = ActiveCell.Value
ActiveCell.Value = ActiveCell.Value - cantidad

'si al decrecer el stock, es menor a 0 (cero), nos avisa y deja el stock
como estaba
If ActiveCell.Value < 0 Then
ActiveCell.Value = ActiveCell.Value + cantidad
MsgBox prompt:="Hay menos productos de los que solicita", Buttons:=vbOKOnly,
Title:="Stock menor"
MsgBox prompt:="Le recordamos que su stock de " & producto & Chr(13) & "es
de " & ActiveCell.Value, Buttons:=vbOKOnly, Title:="Stock actual"
Sheets("partes").Select
Range("e4,e7,e8").ClearContents
Range("e4").Select
Exit Sub
End If

MsgBox prompt:="Su stock de " & producto & " a sido actualizado" & Chr(13) &
"de " & stockantiguo & " a " & ActiveCell.Value, Buttons:=vbOKOnly,
Title:="Stock actualizado"

' aqui comienza la rutina de control
Sheets("control").Select
Range("a1").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = numero
ActiveCell.Offset(0, 1).Value = codigo
ActiveCell.Offset(0, 2).Value = producto
ActiveCell.Offset(0, 3).Value = medida
ActiveCell.Offset(0, 4).Value = cantidad
ActiveCell.Offset(0, 5).Value = tipo

' Limpieza de celdas
Sheets("partes").Select
Range("e4,e7,e8").ClearContents
Range("a1").Value = Range("a1").Value + 1
Range("e4").Select

End If

ActiveCell.Offset(1, 0).Select

Loop

'volvemos a la hoja de los partes y limpiamos las celdas
Sheets("partes").Select
Range("e4,e7,e8").ClearContents
Range("e4").Select
End Sub



Como te decia, en e4 inicialmente solo acepta datos numericos, ahoria
quisiera que me haceptara alfanumerico, numerico o alfabetico indistintamente.

en la celda e4 de la hoja "partes" se despliega una lista de un rango que se
encuntra en la hoja "Datos",

"Héctor Miguel" escribió:

hola, (...) ???

la fraccion de codigo que expones (solamente) asigna a cada "variable" el contenido de una celda
dependiendo del tipo de datos con el que hayas "declarado" cada variable... es probable que (p.e.)
si al declarar la variable (codigo) le asignaste un tipo de datos Byte, Integer, Long, Single o Double
y tratas de "cambiarla" a un tipo de datos String (cuestion que sucede al usar la propiedad Text de un rango)
(obviamente) la asignacion del "valor" no cumple con el tipo de datos asignado/declarado/esperado

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
> esta es parte de un codigo que tengo:
>
> numero = Range("a1").Value
> codigo = Range("e4").Text
> medida = Range("e6").Value
> cantidad = Range("e7").Value
> tipo = Range("e8").Value
>
> originalmente en codigo se manejaba numero solamente
> pero ahora quiero que sea un codigo alfanumerico y en otro caso solo alfabetico.
> que cambio debo hacerle, probe cambiar value por text y no funciono!!



Respuesta Responder a este mensaje
#3 Héctor Miguel
14/08/2008 - 01:16 | Informe spam
hola, (...) ???

(en resumen)... "ando perdido"...

a) no se que tipo de datos contiene la lista que usas para validar la celda E4

b) si no deseas un tipo de datos (exclusivamente) numerico en la variable (codigo)
declara la variable con el tipo esperado (tu lo sabes mejor)

revisa los puntos siguientes y... si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

1) de acuerdo con tu consulta original...
esta es parte de un codigo que tengo:

numero = Range("a1").Value
codigo = Range("e4").Text
medida = Range("e6").Value
cantidad = Range("e7").Value
tipo = Range("e8").Value

originalmente en codigo se manejaba numero solamente
pero ahora quiero que sea un codigo alfanumerico y en otro caso solo alfabetico.
que cambio debo hacerle, probe cambiar value por text y no funciono!!







2) y con las "observaciones" del mensaje anterior...
dependiendo del tipo de datos con el que hayas "declarado" cada variable... es probable que (p.e.)
si al declarar la variable (codigo) le asignaste un tipo de datos Byte, Integer, Long, Single o Double
y tratas de "cambiarla" a un tipo de datos String (cuestion que sucede al usar la propiedad Text de un rango)
(obviamente) la asignacion del "valor" no cumple con el tipo de datos asignado/declarado/esperado





3) la declaracion de variables (y su "tipo") que expones en este mensaje...
'Aqui se declaran las variables a usarse
Dim codigo As Integer, cantidad As Integer, stockantiguo As Integer


el tipo de datos asignado a la variable (codigo) es numerico: -> Integer
no es "compatible" con una instruccion que trate de asignarle un tipo de datos String: -> codigo = Range("e4").Text

4) por otro lado, al final de este mensaje comentas que "la celda" de donde se toma el "codigo" (E4) tiene lista de validacion -???-
Como te decia, en e4 inicialmente solo acepta datos numericos
ahoria quisiera que me haceptara alfanumerico, numerico o alfabetico indistintamente.
en la celda e4 de la hoja "partes" se despliega una lista de un rango que se encuntra en la hoja "Datos"



__ el codigo expuesto __
Este es el codigo completo y original: (...)

'Aqui se declaran las variables a usarse
Dim codigo As Integer, cantidad As Integer, stockantiguo As Integer
Dim numero As Integer
Dim tipo As String, producto As String, medida As String

'Revisamos que los campos esten llenos, sino se envia un msj y finaliza la macro
If Range("e4").value = Empty Or Range("e7").Value = Empty Or
Range("e8").Value = Empty Then
MsgBox prompt:="Ud. esta dejando campos vacios", Buttons:=vbOKOnly,
Title:="Llene todos los campos"
Exit Sub
End If

'Le damos valores a las variables
numero = Range("a1").Value
codigo = Range("e4").Value
medida = Range("e6").Value
cantidad = Range("e7").Value
tipo = Range("e8").Value

'Comienza la accion. Vamos a la otra hoja
'Revisamos las celdas con un bucle (do while-loop) para compararlas con
'las variables, para encontrar coincidencias
Sheets("Datos").Select
Range("a3").Select
Do While ActiveCell.Value <> Empty

'Si coinciden en codigo y tipo (entrada) aumenta el stock (+)
If ActiveCell.Value = codigo And tipo = "Entrada" Then
ActiveCell.Offset(0, 1).Select
producto = ActiveCell.Value
ActiveCell.Offset(0, 2).Select
stockantiguo = ActiveCell.Value
ActiveCell.Value = ActiveCell.Value + cantidad
MsgBox prompt:="Su stock de " & producto & " a sido actualizado" & Chr(13) & "de " & stockantiguo & " a " & ActiveCell.Value, Buttons:=vbOKOnly, Title:="Stock actualizado"

' aqui comienza la rutina de control
Sheets("control").Select
Range("a1").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = numero
ActiveCell.Offset(0, 1).Value = codigo
ActiveCell.Offset(0, 2).Value = producto
ActiveCell.Offset(0, 3).Value = medida
ActiveCell.Offset(0, 4).Value = cantidad
ActiveCell.Offset(0, 5).Value = tipo

' Limpieza de celdas
Sheets("partes").Select
Range("e4,e7,e8").ClearContents
Range("a1").Value = Range("a1").Value + 1
Range("e4").Select
Exit Sub
End If

'Si coinciden en codigo y tipo (salida) decrece el stock (-)
If ActiveCell.Value = codigo And tipo = "Salida" Then
ActiveCell.Offset(0, 1).Select
producto = ActiveCell.Value
ActiveCell.Offset(0, 2).Select
stockantiguo = ActiveCell.Value
ActiveCell.Value = ActiveCell.Value - cantidad

'si al decrecer el stock, es menor a 0 (cero), nos avisa y deja el stock como estaba
If ActiveCell.Value < 0 Then
ActiveCell.Value = ActiveCell.Value + cantidad
MsgBox prompt:="Hay menos productos de los que solicita", Buttons:=vbOKOnly, Title:="Stock menor"
MsgBox prompt:="Le recordamos que su stock de " & producto & Chr(13) & "es de " & ActiveCell.Value, Buttons:=vbOKOnly, Title:="Stock actual"
Sheets("partes").Select
Range("e4,e7,e8").ClearContents
Range("e4").Select
Exit Sub
End If

MsgBox prompt:="Su stock de " & producto & " a sido actualizado" & Chr(13) & "de " & stockantiguo & " a " & ActiveCell.Value, Buttons:=vbOKOnly, Title:="Stock actualizado"

' aqui comienza la rutina de control
Sheets("control").Select
Range("a1").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = numero
ActiveCell.Offset(0, 1).Value = codigo
ActiveCell.Offset(0, 2).Value = producto
ActiveCell.Offset(0, 3).Value = medida
ActiveCell.Offset(0, 4).Value = cantidad
ActiveCell.Offset(0, 5).Value = tipo

' Limpieza de celdas
Sheets("partes").Select
Range("e4,e7,e8").ClearContents
Range("a1").Value = Range("a1").Value + 1
Range("e4").Select

End If

ActiveCell.Offset(1, 0).Select

Loop

'volvemos a la hoja de los partes y limpiamos las celdas
Sheets("partes").Select
Range("e4,e7,e8").ClearContents
Range("e4").Select
End Sub

Como te decia, en e4 inicialmente solo acepta datos numericos
ahoria quisiera que me haceptara alfanumerico, numerico o alfabetico indistintamente.
en la celda e4 de la hoja "partes" se despliega una lista de un rango que se encuntra en la hoja "Datos"
Respuesta Responder a este mensaje
#4 Age
15/08/2008 - 00:04 | Informe spam
Miguel, eres un genio de una eplicacion tan mala que hice mi problema, diste
una solucion clara y sobre todo acertada.

Gracias!!!
Respuesta Responder a este mensaje
#5 Héctor Miguel
15/08/2008 - 08:17 | Informe spam
hola, (...) ???

lo que le atribuyes al "genio"... no ha pasado de ser una mera y simple "observacion"
(pero se agradece el comentario) :D

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida