Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

VB - resultado incoherente en for

Estas en el tema de VB - resultado incoherente en for en el foro de Visual Basic clásico en Foros del Web. Hola, a ver si alguien me ayuda porque no entiendo qué es lo que me pasa. Os paso la tabla inicial: http://imageshack.us/photo/my-images/109/dibuixb.png/ Lo que quiero ...
  #1 (permalink)  
Antiguo 30/12/2012, 19:18
 
Fecha de Ingreso: noviembre-2008
Mensajes: 37
Antigüedad: 15 años, 5 meses
Puntos: 0
VB - resultado incoherente en for

Hola,

a ver si alguien me ayuda porque no entiendo qué es lo que me pasa.

Os paso la tabla inicial: http://imageshack.us/photo/my-images/109/dibuixb.png/

Lo que quiero es mediante una macro, contar el número de veces que aparece el 0, 1, 2, .... Sé que se puede hacer con contar.si pero necesito hacerlo con la macro.

El codigo es el siguiente:

Sheets("Full1").Select
repeticions = 0
i = 0
j = 0
mec = 0

-For mec = 0 To 77 'número de repeticions

---For i = 1 To 10 'recorrem totes les files
------For j = 1 To 10 'recorrem totes les columnes
---------If Cells(i, j).Value = mec Then
------------repeticions = repeticions + 1
---------End If
------Next j
---Next i

---Sheets("Full2").Select
---Cells(mec + 2, 2).Value = repeticions
---Sheets("Full1").Select
---repeticions = 0
-Next mec

El tema es que la primera vez, busco las veces que el '0' aparece en la imagen del link para cuando tenga las repeticiones, guardarlas en una celda de otra hoja.

El problema es que cuando busco el '0', los valores que me toman i y j en cada iteracion son:

i:1 j:9
i:1 j:10
i:2 j:1 ok
i:2 j:2 ok
i:2 j:4 ok
i:2 j:5 ok
i:2 j:7 ok

lo que no entiendo es por que por lo valores i:1 j:9 y para i:1 j:10 entra en el if, lo que me descuadra el recuento.
Para mi, lo raro, es que cuando busco las veces que aparece el '1' en la imagen del link, funciona, y para el 2 tambien, y el 3....pero para el 0 no lo cuenta bien.

Alguien me puede dar un poco de luz sobre el tema? tiene que ser una tonteria :_

Feliz año! y Muchas gracias!
  #2 (permalink)  
Antiguo 31/12/2012, 03:08
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: VB - resultado incoherente en for

Seguramente el .value de una celda vacia es 0 y te marca como ceros todas las celdas vacias.
No entiendo mucho pero supongo que tendrias que declarar las celdas como cadenas de texto en lugar de valores numericos, y hacer la comparacion asi:

If Cells(i, j).Value = cStr(mec) Then
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:53.