Comment attribuer plusieurs valeurs (dans le dur) à une variable [Résolu]

Messages postés
9
Date d'inscription
mardi 8 avril 2014
Dernière intervention
11 novembre 2014
- 11 juin 2014 à 16:40 - Dernière réponse :
Messages postés
9
Date d'inscription
mardi 8 avril 2014
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 !!
Afficher la suite 

Votre réponse

6 réponses

Messages postés
23300
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2018
- 11 juin 2014 à 18:16
0
Merci
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
Commenter la réponse de jordane45
Messages postés
23300
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2018
- Modifié par jordane45 le 11/06/2014 à 18:19
0
Merci
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
Messages postés
9
Date d'inscription
mardi 8 avril 2014
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 !!
Commenter la réponse de jordane45
Messages postés
22165
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 novembre 2018
- 13 juin 2014 à 10:45
0
Merci
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
Messages postés
23300
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2018
- 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...>>
Messages postés
22165
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 novembre 2018
- 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
Commenter la réponse de eriiic

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.