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 :

[VBA-E]Erreur sur suppression d'images dans excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Points : 64
    Points
    64
    Par défaut [VBA-E]Erreur sur suppression d'images dans excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      ActiveSheet.Shapes().SelectAll
        Selection.Delete
    Pourquoi ce code plante au dela d'un certain nombre de lignes dans un fichier excel ?
    (Erreur automation)

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Je te conseille une boucle For Each sur ta collection Shapes.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Membre du Club Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Points : 64
    Points
    64
    Par défaut erreur automation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Dim compteur As Integer
        nbr_lignes = ActiveSheet.UsedRange.Rows.Count
          For compteur = nbr_lignes To 1 Step -1
          ActiveSheet.Shapes().Select
          Selection.Delete
        Next compteur
    Erreur d'execution '-2147319765 (8002802b)':

    erreur automation
    element introuvable
    C'est pas mieux !

    Pas mieux !

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim sr As ShapeRange
    ActiveSheet.Shapes.SelectAll
    Set sr = Selection.ShapeRange
    sr.Delete

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut Re: erreur automation
    Citation Envoyé par bernard38
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Dim compteur As Integer
        nbr_lignes = ActiveSheet.UsedRange.Rows.Count
          For compteur = nbr_lignes To 1 Step -1
          ActiveSheet.Shapes().Select
          Selection.Delete
        Next compteur
    Ce n'est pas du tout une boucle For Each dans une collection, ça!

    Enfin, si la solution de bidou fonctionne, utilise-la. Elle est nettement plus simple.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Membre du Club Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Points : 64
    Points
    64
    Par défaut erreur automation
    Il plante quand même a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveSheet.Shapes.SelectAll
    Ca marche bien au dessous d mille lignes.
    Là j'ai 1533 lignes et 7 col.
    Et ça plante !

  7. #7
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Mais si le but est de supprimer le contenu d'un onglet dans Excel, pourquoi ne fais-tu pas tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Cells.Clear
    Heum... Je viens de lire le titre du post... Désolé...

  8. #8
    Membre du Club Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Points : 64
    Points
    64
    Par défaut erreur automation
    Le but est de supprimer de petites images (genre petites enveloppes) après un copier coller de pages html dans ma feuilles

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Et si tu fais deux passages avec gestion d'erreur sur le premier ?
    Juste pour essyer de comprendre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim sr As ShapeRange 
    Dim ok as boolean
    Do while not ok
         ActiveSheet.Shapes.SelectAll 
         Set sr = Selection.ShapeRange 
         sr.Delete
         ok = err = 0
         err.clear
         Set sr = Nothing
    loop
    Tu dis

    A+

    NB - Possible que ça plante le system

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    tu peux tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Obj As Shape 
    For Each Obj In ActiveSheet.Shapes 
    Obj.Delete 
    Next Obj

    bonne soiree
    michel

  11. #11
    Membre du Club Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Points : 64
    Points
    64
    Par défaut Erreur automation
    Bonjour à tous,

    Ma réponse est valable pour toutes les solutions proposées:
    Je plante toujours au dela d'un certain nombre de lignes avec toujours le même message.
    Je suis en train d'affiner pour voir exactement le nombre de lignes acceptées (entre 500 et 800)

  12. #12
    Membre du Club Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Points : 64
    Points
    64
    Par défaut erreur automation
    Bon,apparemment il ne s'agit pas d'une erreur sur la fonction shape.
    J'ai essayé ça:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Range("A1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Copy
    Sheets.Add
    Range("A1").Select
    ActiveSheet.Paste
    Sheets("Feuil1").Select
    Il me fait la même erreur à l'execution de la dernière ligne.
    On dirait qu'il ne connaît plus ma feuille1 ??

Discussions similaires

  1. Erreur sur suppression Record dans SS form
    Par Maxsen dans le forum VBA Access
    Réponses: 4
    Dernier message: 29/02/2008, 21h45
  2. erreur sur la requete present dans vba
    Par laurent.w dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 11/01/2007, 09h26
  3. [VBA-PP] macro pour insérer des images dans PowerPoint
    Par mashpro dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 01/08/2006, 22h56
  4. [VBA-E] Erreur sur le SaveAs
    Par truman dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/04/2006, 18h09
  5. [VBA-E]Erreur sur méthode de classeur
    Par vanima dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 20/02/2006, 12h32

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