Comment attribuer plusieurs valeurs (dans le dur) à une variable

Résolu
Asythom Messages postés 9 Date d'inscription mardi 8 avril 2014 Statut Membre Dernière intervention 11 novembre 2014 - Modifié par jordane45 le 11/06/2014 à 18:15
Asythom Messages postés 9 Date d'inscription mardi 8 avril 2014 Statut Membre Dernière intervention 11 novembre 2014 - 13 juin 2014 à 12:32
Bonjour,

Je cherche à créer une macro toute simple qui permettrait à l'utilisateur du fichier de supprimer les lignes qu'il a préalablement sélectionnées. Là dessus, pas de soucis. En revanche, je souhaite empêcher l'utilisateur de supprimer les 3 premières lignes de l'onglet, qui constituent l'entête du tableau (sait-on jamais). J'ai donc utilisé la fonction if de la façon suivante :

    If NumLigne = 1 Then
        MsgBox "Il est impossible de supprimer les lignes d'entete de cet onglet", vbCritical, "Suppression impossible"
    ElseIf NumLigne = 2 Then
        MsgBox "Il est impossible de supprimer les lignes d'entete de cet onglet", vbCritical, "Suppression impossible"
    ElseIf NumLigne = 3 Then
        MsgBox "Il est impossible de supprimer les lignes d'entete de cet onglet", vbCritical, "Suppression impossible"
    Else
        ...reste du code pour la suppression de la ligne
    End If

J'imagine qu'il est possible de ne faire qu'une seule ligne au lieu des 3 lignes ci-dessus mais je n'y parviens pas... la fonction "Or", par exemple, ne marche pas (ou alors je l'utilise mal).

Par extension, je me demande comment on fait pour attribuer plusieurs valeurs (dans le dur) à une variable. Par exemple une variable "X" qui ne peut prendre que les valeurs 1, 2 & 5.

Merci d'avance pour votre aide !!

3 réponses

jordane45 Messages postés 38208 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 juin 2024 344
11 juin 2014 à 18:16
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
jordane45 Messages postés 38208 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 juin 2024 344
Modifié par jordane45 le 11/06/2014 à 18:19
Bonjour,


Tu peux en effet utiliser des OR ou des AND dans tes IF..

Exemple :
If NumLigne = 1 or NumLigne = 2 or NumLigne =  3 Then
'.....
End if


Tu peux aussi utiliser du SELECT CASE

SELECT CASE NumLigne
   Case 1,2,3
      msgbox "error !"
   case else
     msgbox "toto"
End Select


Tu peux aussi... avec un seul IF le faire :
If NumLigne < 4 then
    MsgBox "Il est impossible de supprimer les lignes d'entete de cet onglet", vbCritical, "Suppression impossible"
End if




Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
Asythom Messages postés 9 Date d'inscription mardi 8 avril 2014 Statut Membre Dernière intervention 11 novembre 2014
13 juin 2014 à 12:32
Merci pour ces réponses. Je ne suis pas mécontent de faire la connaissance du Select Case, qui permet d'affecter plusieurs valeurs fixes à une macro.
bon we !!
0
eriiic Messages postés 24584 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 18 juin 2024
13 juin 2014 à 10:45
Bonjour,

Pourquoi l'embêter avec des messages inutiles ?
Ne supprime que si
If NumLigne > 3 then ... 

Il le verra bien que les autres lignes restent.

eric
0
jordane45 Messages postés 38208 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 juin 2024 344
13 juin 2014 à 11:56
@Eriiic :
Pourquoi l'embêter avec des messages inutiles ?
Je ne vois pas en quoi c'est inutile....
Si une personne essaie de supprimer une ligne... et que rien ne se passe.... il ne va pas nécessairement se dire..."Ah ben c'est que je ne peux pas..." .. il risque plutot de penser.."Ah ben son code ne fonctionne pas !!"

Comme disaient les inconnus :
<<Ils ne faut pas prendre les gens pour des cons, mais il ne faut pas oublier qu'ils le sont...>>
0
eriiic Messages postés 24584 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 18 juin 2024
13 juin 2014 à 12:12
Je pense qu'aucun utilisateur ne sera surpris ni ne fera de scandale si on l'empêche de supprimer une ligne de titre sans lui dire explicitement.
Ceci n'engage que moi bien sûr, chacun est maitre de son ouvrage.
eric
0
Rejoignez-nous