Pregunta sobre For.....Next

06/09/2006 - 18:52 por Josema | Informe spam
Hola grupo, como veréis sigo con preguntas sobre código, en esta ocasión
estoy tratando de hacer una macro que al ejecutarse nos diga en función de
los valores que he introducido las notas.
Es decir en A1, A2, ...etc.. pongo el número ejemplo 4, 6, 9, 2, etc (sería
la nota que ha sacado) y en B1, B2, etc... tendría que devolverme
"Aprobado", "Bien", "Notable", "Sobresaliente" o "Matricula", según sea la
nota de 5, 6, 7, etc...o suspenso cuando es menor de 5.
He conseguido esto que veréis, y funciona, pero soy incapaz de hacer más.
Tambien quería que las celdas de la columna B se pusieran en color, pero se
ponen todas las de A y las de B.
¿Podéis ayudarme con esto por favor?
Un saludo
Josema

Sub Notas()
For I = 1 To 11
If Cells(I, 1).Value >= 5 Then
Cells(I, 2).Value = "Aprobado"
Cells(I, 1).Resize(1, 2).Font.ColorIndex = 5
End If
Next I
End Sub
 

Leer las respuestas

#1 Gabriel Raigosa
30/09/2006 - 18:44 | Informe spam
Carpeta
Descripción
Dirección

1
** Microsoft Excel *
http://esnips.com/web/GabrielRaigosa

2
Archivos para usar en clase
http://esnips.com/web/RaigosaClase

3
Fechas y Horas
http://esnips.com/web/RaigosaFechasHoras

4
Formato y Formato Condicional
http://esnips.com/web/RaigosaFormatos

5
Foro Excel
http://esnips.com/web/ForoExcel

6
Funciones de Busqueda
http://esnips.com/web/RaigosaBusqueda

7
Funciones de Texto
http://esnips.com/web/RaigosaTexto

8
Funciones Financieras
http://esnips.com/web/RaigosaFinancieras

9
Funciones Logicas
http://esnips.com/web/RaigosaLogicas

10
Graficos con Excel
http://esnips.com/web/RaigosaGraficos

11
Grupo (Sabados)
Privado

12
Grupo (Viernes)
Privado

13
Grupo Excel Septiembre
Privado

14
Juegos con Excel
http://esnips.com/web/RaigosaJuegosExcel

15
Macros con Excel
http://esnips.com/web/Macros-con-Excel

16
Manuales Excel
http://esnips.com/web/RaigosaManuales

17
Paginas WEB
http://esnips.com/web/RaigosaPaginasExcel

18
Practicas - XLS
http://esnips.com/web/RaigosaPracticasXLS

19
Tablas Dinámicas
http://esnips.com/web/RaigosaTablasDinamicas

20
TEST
http://esnips.com/web/GabrielRaigosa-test

21
Validación
http://esnips.com/web/RaigosaValidacion

22
Varios
http://esnips.com/web/RaigosaVarios

23
VBA - Visual Basic para Aplicaciones
http://esnips.com/web/RaigosaVBA



Gabriel Raigosa
http://esnips.com/web/Raigosa
http://esnips.com/web/ForoExcel
"zipizape" escribió en el mensaje
news:

Hola Josema
Lo que has hecho con macro se puede realizar con fórmulas y formato
condicional.

Si deseas seguir con la macro, esta es la modificación
Sub Notas()
For I = 1 To 11
If Cells(I, 1).Value < 5 Then
Cells(I, 2).Value = "Suspenso"
Cells(I, 1).Resize(1, 2).Font.ColorIndex = 5
End If
If Cells(I, 1).Value >= 5 AND Cells(I,1) < 6 Then
Cells(I, 2).Value = "Aprobado"
Cells(I, 1).Resize(1, 2).Font.ColorIndex = 5
End If
If Cells(I,1) >= 6 AND Cells(I,1) < 7 Then
Cells(I, 2).Value = "Bien"
Cells(I, 1).Resize(1, 2).Font.ColorIndex = 5
End If
'Pon aquí el resto
Next I
End Sub

Otra forma, la más adecuada seria mediante instrucciones CASE
Sub Notas()
For I = 1 To 21
Valor = Cells(I, 1).Value
Select Case Valor
Case Is < 5
Cells(I, 2).Value = "Suspenso"
Cells(I, 1).Resize(1, 2).Font.ColorIndex = 4
Case Is < 6
Cells(I, 2).Value = "Aprobado"
Cells(I, 1).Resize(1, 2).Font.ColorIndex = 5
Case Is < 7
Cells(I, 2).Value = "Bien"
Cells(I, 1).Resize(1, 2).Font.ColorIndex = 6
Case Is < 8
Cells(I, 2).Value = "Notable"
Cells(I, 1).Resize(1, 2).Font.ColorIndex = 6
Case Is < 9
Cells(I, 2).Value = "Notable Alto"
Cells(I, 1).Resize(1, 2).Font.ColorIndex = 6
Case Is < 10
Cells(I, 2).Value = "Sobresaliente"
Cells(I, 1).Resize(1, 2).Font.ColorIndex = 6
Case 10
Cells(I, 2).Value = "Matricula de Honor"
Cells(I, 1).Resize(1, 2).Font.ColorIndex = 6
Case Else
Cells(I, 2).Value = "Nota desconocida"
Cells(I, 1).Resize(1, 2).Font.ColorIndex = 6
End Select
Next I
End Sub

Saludos

Preguntas similares