Utilisation incorrecte de la propriété

Bonjour, j'ai ce code :
Sub Effacer_article()
'
' Effacer_article Macro
'

Supprimermsg = MsgBox("Supprimer cet article ?", vbOK, "Opération irréversible...")
If Supprimermsg = vbCancel Then
Exit Sub
Else

If Sheets("Liste articles").Range("G1") = 2 Then
Supprimermsg = MsgBox("Il doit rester au moins 2 articles !", vbOKOnly, "Opération irréversible...")
Exit Sub
End If
Application.ScreenUpdating = False
Sheets("Liste articles").
ActiveWindow.SelectedSheets.Delete

nbarticle = Sheets("Liste articles").Range("H1") + 1
Sheets("Liste articles").Range("A" & nbarticle).EntireRow.Delete
Sheets("Liste articles").Range("G1") = Sheets("Liste articles").Range("G1") - 1

Sheets("Liste articles").Range("H1") = 1
Call AfficheArticle

End If
End Sub

C'est un bouton afin de supprimer un article sur un classeur de gestion de stocks. J'aurais aimé savoir pourquoi vba affiche "l'utilisation de la propriété est incorrecte", alors que le code est "normalement" bon
Cordialement

10 réponses

Résumé de la discussion

Le fil porte sur une macro VBA pour supprimer un article dans une feuille 'Liste articles', mais l’utilisateur obtient l’erreur 'l’utilisation de la propriété est incorrecte' malgré un code standard. Des réponses évoquent les conditions du script, notamment la vérification 'Il doit rester au moins 2 articles' qui bloque la suppression lorsque G1 = 2, et l’identification de la feuille. Des pistes de débogage émergent: vérifier l’existence de la feuille 'Liste articles', s’assurer que les procédures sont définies et que les appels de suppression ciblent la bonne plage. En cas de partage du fichier, certains recommandent d’envoyer une copie anonymisée et de clarifier l’objectif afin de mieux localiser l’erreur.

Bobot (l’IA à votre service)
  1. Salut,

    Je rejoins benol3 dans son commentaire. (je salue et bravo pour ta patience ... j'ai laché au bout de 4 posts !!!)

    Il ne faut pas inverser les rôles. Celui qui a besoin d'aide c'est toi, pas ceux qui prennent la peine de vouloir aider. Prends la peine de lire les commentaires qui te sont faits et prends, au moins la peine d'y répondre.

    je suis stagiaire dans une boîte et j'ai pas super envie de me prendre la tête
    Il est vrai que c'est mieux quand c'est les autres qui doivent se prendre la tête pour toi ....

    Peu importe l'usage du fichier, je ne mérite pas moins d'aide qu'un autre. Vraiment une drôle façon de penser. Tu n'as sincèrement rien à faire ici.
    Il n'a jamais été question de mérite ou pas sur CCM. Il y a des bénévoles qui prennent sur leur temps pour apporter de l'aide à des personnes qui font un minimum d'effort pour résoudre leurs problèmes. Encore une fois, n'inverse pas les rôles. Si il y en un qui n'a rien à faire ici, ce n'est certainement pas Benol3 ...
    «Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
    Nicolas Boileau
    1. Merci de ton soutien Polux31 :)
  2. Ta procédure se nomme "Affiche_Article" et non "AfficheArticle".
    De plus, dans cette procédure, il y a une erreur a la ligne de code suivante :
    Sheets ("Liste articles")<


    Il faut rajouter ".qqc" ou alors supprimer cette ligne car je ne vois pas l'interêt de la garder.

    Tout dépends de ce que tu veux faire ...
    1. Si tu regardes sur la feuille d'origine, le bouton permet de supprimer l'entrée, c'est rétablir cette fonction que je voudrais.
      Ensuite j'aimerais savoir comment moduler l'entrée dans "liste articles", quand on clique sur "ajouter article" j'aimerais rajouter des entrées, comment pourrais-je m'y prendre ?
    2. Oui mais la fonction qui supprime une entrée appelle la procédure afficher_article....

      Tu veux rajouter des champs quand on ajoute un article c'est sa ?
    3. Bah je veux que ça ajoute une entrée, un article quoi. Comme c'est la mais en ajoutant les données "etagere" et "rangée".
      Et aussi rétablir la fonction supprimer l'article associé à la feuille actuelle. (Feuille actuelle = feuille crée avec le bouton "créer article"
  3. Si jamais ce que je dis n'est pas assez explicite, voici le fichier original :
    http://www.excel-downloads.com/remository/Download/Professionnels/Gestion-commerciale/StockJMB.html
    1. Le code du fichier original est protégé par un mot de passe... L'important serait d'avoir TON fichier pour savoir d'où provenir les erreurs que tu rencontres...
    2. Je fais comment pour anonymiser ?
    3. Ben t'enlève tous tes trucs "secrets" pi tu met des truc bidon à la place...
    4. http://cjoint.com/?3EtqjLib8Ih
  4. L'erreur provient toujours de la même ligne. Du moins quand j'entre dans le VB c'est la première ligne qui est surlignée en jaune
    1. Est ce que la procédure "AfficheArticle" existe ? Comme l'a dis Polux31, le code supprime la feuille "Liste articles" donc les instructions suivantes ne pourront pas être exécutées vu que la feuille n'existe plus...
    2. Les instructions ne suppriment pas la fiche "Liste articles" elle supprime la feuille crée sur la base "Liste Articles"
      Je ne sais pas si la procédure existe, normalement oui, comment vérifier ceci ?
    3. Dans ce code, il n'a pas de feuille qui est créée. Il faut chercher dans tes modules si il existe la procédure... Envois nous une copie de ton fichier anonymisé via cjoint.com et des explications claires sur ce que tu souhaites faire
    4. C'est normal c'est une partie du code intégral. Cette partie sert à supprimer la feuille qui a été crée par le bouton "Ajouter Article"
    5. Et j'ai déjà posté plus bas le xls original (le bouton supprimer article fonctionne dessus)
  5. ... vba affiche "l'utilisation de la propriété est incorrecte", alors que le code est "normalement" bon

    Ça m'étonnerait !!! il y a plusieurs incohérences ...

    Sheets("Liste articles").
    ? A quoi sert cette ligne ?

    ActiveWindow.SelectedSheets.Delete
    ??? Ça supprime la feuille active qui est ici Sheets("Liste articles") !!!
    Le code qui suit ne peut pas être exécuté et doit provoquer une erreur:
    nbarticle = Sheets("Liste articles").Range("H1") + 1 
     Sheets("Liste articles").Range("A" & nbarticle).EntireRow.Delete 
     Sheets("Liste articles").Range("G1") = Sheets("Liste articles").Range("G1") - 1 
     Sheets("Liste articles").Range("H1") = 1

    1. Tout d'abord le code ne vient pas de moi. Personnellement j'y connais pas grand chose en code, encore moins en VB...
      J'ai modifié certains éléments du classeur pour l'utilisation que j'en fait, le classeur de base était fonctionnel, alors que je n'ai rien modifié dans cette partie. Et oui effectivement, un bouton permet d'ajouter un élément en créant une feuille dédiée, ce bouton permet de supprimer la feuille crée avec l'élement ajouté dans le tableau.
  6. Bonjour,

    Tu as supprimé quoi et remis quoi ? Sur quelle ligne apparaissait le 1er message d'erreur ?
    1. ça apparaît sur la 1ère ligne, et j'ai supprimé cette première ligne et remise ensuite.
  7. je l'ai supprimée, et remise, maintenant j'ai "Erreur de compilation : Sub ou Function non définie" ..