Asythom
Messages postés9Date d'inscriptionmardi 8 avril 2014StatutMembreDernière intervention11 novembre 2014
-
Modifié par jordane45 le 11/06/2014 à 18:15
Asythom
Messages postés9Date d'inscriptionmardi 8 avril 2014StatutMembreDernière intervention11 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.
jordane45
Messages postés37725Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention26 septembre 2023342 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
Asythom
Messages postés9Date d'inscriptionmardi 8 avril 2014StatutMembreDernière intervention11 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 !!
eriiic
Messages postés24520Date d'inscriptionmardi 11 septembre 2007StatutContributeurDernière intervention25 septembre 2023 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
jordane45
Messages postés37725Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention26 septembre 2023342 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...>>
eriiic
Messages postés24520Date d'inscriptionmardi 11 septembre 2007StatutContributeurDernière intervention25 septembre 2023 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