IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Séquence de Delete Shape KO [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 288
    Par défaut Séquence de Delete Shape KO
    Bonjour, j'ai une séquence de Delete Shape qui fonctionnait bien et qui ne marche plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sheets("Modele").Copy After:=Worksheets("Modele")
                With ActiveSheet
                .Name = "SIG"
                        If Param.Range("D2") = user Then    ' si User, autorisation restreinte
                        .Shapes("Parchemin*: horizontal 7").Delete
                        .Shapes("Parchemin*: horizontal 6").Delete
                        Else
                            If Param.Range("D2") = superuser Then    ' si SuperUser, autorisation moins restreinte
                                .Shapes("Parchemin*: horizontal 7").Delete
                            Else    ' Admin
                            End If
                        End If
                End With
    J'ai bien vérifié, les boutons ont toujours le même nom, l'erreur survient sur le premier Shapes avec le message :
    Erreur d'exécution (80070057)
    La valeur tapée est en dehors des limites
    Je n'ai aucune idéé

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bnjour,

    Peut-être 1 protection de feuille.
    Plutôt que desimbriqués, utiliser la méthode

  3. #3
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 288
    Par défaut
    Merci, oui c'est cela j'ai protégé récemment mes feuilles contre les mauvaises manips…
    En déprotégeant plus de pb...

    Comment désactiver la protection d'une feuille avec VBA puis la ré-activer le temps de faire ce que j'ai besoin ?
    quelque chose dans ce style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    On Error GoTo EndHandler
        Application.EnableEvents = False
        …. 
    EndHandler:
        Application.EnableEvents = True
    Je vais voir pour remplacer mes imbrications de IF par

    Select CaseCa dans une doc je vais trouver

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .Unprotect Password:="lemotdepasse"
    Idem en fin de procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Protect Password:="lemotdepasse"
    Pour ma part, je préfère identifier les paramètres, comme pour d'autres méthodes (Save...)
    J'évite donc
    .Unprotect("lemotdepasse")

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par retraite83 Voir le message
    Comment désactiver la protection d'une feuille avec VBA puis la ré-activer le temps de faire ce que j'ai besoin ?
    https://msdn.microsoft.com/fr-fr/lib.../ff840611.aspx
    https://msdn.microsoft.com/fr-fr/lib.../ff841143.aspx

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Il est vrai que le site de Microsoft présente toutes les Méthodes et Propriétés pour chaque objet.
    De façon claire.
    Personnellement, j'ai toujours un peu de mal à me retrouver dans l'explorateur d'objet du VBE.
    Plutôt que d'indiquer la méthode ou la propriété, indiquer le lien Microsoft.
    OK Menhir.

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Perso, dans les favoris de mon explorateur Internet, j'ai la page des membres de Application, Workbook, Worksheet et Range.
    Ca permet très rapidement de trouver quelle propriété ou quelle méthode peut faire ce que je souhaite, avec syntaxe, paramètres et explications.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Delete on cascade avec SQL server
    Par fadoua dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/01/2004, 11h02
  2. Passer une séquence en parametre
    Par djousss dans le forum CORBA
    Réponses: 2
    Dernier message: 02/12/2003, 22h39
  3. [requête] DELETE + SELECT
    Par doohan dans le forum Requêtes
    Réponses: 6
    Dernier message: 07/07/2003, 12h27
  4. [langage] delete de fichier
    Par lolive dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2003, 15h04
  5. Extraire une séquence d'un fichier MPEG
    Par enzosp dans le forum DirectX
    Réponses: 2
    Dernier message: 24/02/2003, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo