Aide programmation VBA/ Saisie d'une note

Résolu
Novikov Messages postés 3 Statut Membre -  
irongege Messages postés 43559 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

1)Je dois constituer une grille de notation, et les notes attribuées aux objets sont comprises entre 1 et 5. je souhaiterai que tant que la note rentrée ne soit pas comprise entre 1 et 5 on ne puisse pas passer à la cellule suivante.
2)Je dois répéter cette opération sur 10 cellules qui sont sur des lignes impaires.
Pour le 1 j'ai écrit un programme en Vba:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case "$A$1"
If Target.Value < 1 Or Target.Value > 5 Then MsgBox "Erreur. La note doit être comprise entre 1 et 5"
Target.Select
End Select
End Sub

je ne sais pas comment constituer une boucle est ce que je peux écrire "$a$k"?

Merci pour votre Aide.
A voir également:

6 réponses

Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Juste en passant, est-ce que la programmation VBA est imposé ?
0
Novikov Messages postés 3 Statut Membre
 
oui de préférence
0
irongege Messages postés 43559 Date d'inscription   Statut Modérateur Dernière intervention   5 082
 
"Un message, ne respectant pas en tous points la charte de CCM, a du être supprimé, cependant il contenait la solution suivante: ..............................."


Hello,

Juste parce que je fais parti des AMIS(*) :
Sélectionner les 10 cellules, menu Données, Validation, choisir "Nombre entier", compris entre 1 et 5, et définir un message d'alerte "Erreur. La note doit être comprise entre 1 et 5" dans l'onglet "Alerte d'erreur"

Pourquoi du macroter quand la fonctionnalité existe ? Je me pose toujours la question, j'espère une réponse un jour ;-)

(*) AMIS : Anti Macros Inutilement Superfétatoire
0
lermite222 Messages postés 9042 Statut Contributeur 1 191 > irongege Messages postés 43559 Date d'inscription   Statut Modérateur Dernière intervention  
 
bonjour irongege,
A mon avis ce n'est pas pour le contenu des postes de Jean-Louis qu'ils ont été supprimé mais à cause du lien qu'il y avait dans sa signature.
A+
0
irongege Messages postés 43559 Date d'inscription   Statut Modérateur Dernière intervention   5 082 > lermite222 Messages postés 9042 Statut Contributeur
 
Exactement et c'est pour cela que nous remettons certains de ces messages.
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Hello Jean-Louis,
D'accord avec toi dans les cas comme celui exposé ici, se servir des puissantes fonctions d'excel, mais certainement pas dans les cas de répètition de formules et encore moins quand elles sont longues comme un jour sans pain, cela surcharge inutilement le classeur.
J'ai déjà fait l'expérience sur 3000 lignes, formule à chaque ligne
Classeur = 1,6 Mo
Avec une formule VBA 67Ko. !
Evidement, faut bien connaître le VBA pour y arriver.
Cette réflexion pour faire comprendre que chacun procède de la façon qui est le plus dans ses cordes.
Et qu'importe le mode, du moment que le résultat est là.

Moi : Anti-Formule Surchageuratoire. :DD

Cordialement.
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

une chose que tu ne précises pas c'est si ta macro doit bloquer tout autre saisie tant que ces 10 cellules là sont vides...
Sinon pour ta boucle tu peux utiliser qcq chose comme :

for i = 1 to target.row-1 step 2 ' pour i = 1 à ligne-1 de la cellule saisie
if cells(i,1) >=0 and cells(i,1) <=5 ' si cellule ligne i, colonne 1 (A) .....
'alors faire ça
else
'sinon faire ça
endif
next

Si tu ne veux pas bloquer tout autre saisie il faudrait tester target auparavant pour sortir de la macro si besoin.

eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour à Vous Tous,
L'essentiel étant dit, je me retire.
Bonne journée.
0
Novikov Messages postés 3 Statut Membre
 
Merci pour vos interventions! Mon problème est résolu, Merci beaucoup.
0