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

Excel Discussion :

Problème VBA erreur d'exécution '13'


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème VBA erreur d'exécution '13'
    Bonjour,

    J'ai suivi un tuto pour créer un catalogue de produit sur Excel (en VBA)
    , sauf que j'arrive à avoir une erreur d'exécution 13 alors que j'ai parfaitement recopié son programme. J'ai trouvé l'erreur, cela est dû à la commande Application.Caller. J'ai voulu contacté la personne qui a fait se cour, mais vue comment il répondait dans les commentaires, je pense pas que c'est une bonne idée... J'ai également fait plusieurs recherche sur Internet (pendant 2 jours), mais aucune solution proposé m'a aidé. Alors je viens à vous, mon dernier espoir de réussir à résoudre le problème.
    Voici mon code dans "ThisWorkbook" (qui fonctionne très bien) :
    Private Sub Workbook_Open()

    Sheets(2).Range("A2:D100").ClearContents
    Sheets(2).Range("A2:D100").Interior.ColorIndex = 2
    Sheets(2).Range("H10:O10").Value = ""
    Sheets(2).Range("G2").Value = ""
    Sheets(2).Range("A1:D1").Interior.ColorIndex = 15
    Sheets(2).Range("L1:O1").Interior.ColorIndex = 15

    For Each Shape In ActiveSheet.Shapes
    Shape.Delete
    Next


    With Range("A1:D100")
    .HorizontalAlignment = xlHAlignCenter
    .VerticalAlignment = xlVAlignCenter
    End With

    rep = ThisWorkbook.Path & "\img\"
    fichier = Dir(rep & "produit*.jpg")

    i = 2
    Do While fichier <> ""
    If Left(fichier, 7) = "produit" Then
    Sheets(2).Cells(i, "A").Value = Left(fichier, 11)
    Sheets(2).Cells(i, "A").Interior.ColorIndex = 36
    Sheets(2).Cells(i, "B").Select

    Set Image = ActiveSheet.Pictures.Insert(rep & fichier)
    Image.Name = fichier
    ActiveSheet.Shapes(fichier).Height = 60
    ActiveSheet.Shapes(fichier).Width = 60
    Rows(i & ":" & i).RowHeight = 60
    Image.OnAction = "image_cliquer"
    ActiveSheet.Cells(i, 4).NumberFormat = "### ##0.00€"
    ActiveSheet.Cells(i, 4).Value = Sheets(1).Cells(i, 7).Value
    ActiveSheet.Cells(i, 3).Value = Sheets(1).Cells(i, 4).Value
    End If
    i = i + 1
    fichier = Dir
    Loop

    Range("P1").Value = (i - 2) & " produits"
    Range("F1").Select

    End Sub



    Et voici mon code dans le module (là où l'erreur apparaît) :
    Sub image_cliquer()

    Sheets(2).Range("A2:D100").Interior.ColorIndex = 2
    Sheets(2).Range("A2:A100").Interior.ColorIndex = 36


    zoom = Application.Caller
    rep = ThisWorkbook.Path & "\img\"
    Range("I2").Select


    For Each s In ActiveSheet.Shapes
    s.Delete
    Next s

    Set Image = ActiveSheet.Pictures.Insert(rep & zoom)

    Image.Name = "MonImage"
    ActiveSheet.Shapes("MonImage").Height = 450
    Range("G1").Select
    Range("G2").Value = Left(zoom, 11) 'sheets(1).cells(ligne,2).value
    ligne = 2

    Do While Sheets(2).Cells(ligne, 1).Value <> Left(zoom, 11)

    ligne = ligne + 1
    Loop

    ActiveSheet.Range("A" & ligne & "E" & ligne).Interior.ColorIndex = 44
    ActiveSheet.Cells(10, 8).Value = "Nom:" & Sheets(1).Cells(ligne, 2).Value
    ActiveSheet.Cells(10, 9).Value = Sheets(1).Cells(ligne, 9).Value
    ActiveSheet.Cells(10, 13).Value = Sheets(1).Cells(ligne, 3).Value
    ActiveSheet.Cells(10, 14).Value = Sheets(1).Cells(ligne, 4).Value
    ActiveSheet.Cells(10, 15).Value = Sheets(1).Cells(ligne, 6).Value

    End Sub


    Je vous souhaite une bonne journée

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour.

    Je ne me farcirai pas 2 heures et quart de vidéo pour savoir d'où vient l'horreur et avoir son code.

    À première vue, il suffirait que lui ait mis :

    et toi

    pour causer ce genre de problème.


    D'autant plus qu'il existe des outils plus appropriés (PowerPoint, Publisher et même Word) qu'un bricolage dans Excel.

    Et puis quand on essaie de transformer Excel en une version du pauvre d'un autre programme cela m'enrage.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    J'ai voulu contacté la personne qui a fait se cour, mais vue comment il répondait dans les commentaires, je pense pas que c'est une bonne idée..
    Ben ma foi ... si tu l'a sollicité en lui montrant cette ineptie monstrueuse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zoom = Application.Caller
    il a vite compris que tu ne travaillais qu'au "pif" et t'a alors envoyé sur les roses, car tu ne t'es manifestement pas intéressé (lecture de ton aide interne VBA) à la signification de ce que tu écrivais ainsi !
    Zoom est une propriété qui "représente la taille d'affichage de la fenêtre, en pourcentage"
    Application.Caller est une propriété qui "renvoie des informations relatives à la manière dont Visual Basic a été appelé"
    écrire ce que tu as écrit serait du même "goût" que d'écrire : "le prix de ce choux-fleur est le contrôleur qui m'a ouvert la porte de l'autobus".
    Tu m'étonnes, tiens ...
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

Discussions similaires

  1. [XL-2007] VBA : Erreur d'exécution
    Par pascal4782 dans le forum Excel
    Réponses: 4
    Dernier message: 10/04/2011, 10h07
  2. [XL-2007] VBA : Erreur d'exécution
    Par pascal4782 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/04/2011, 21h27
  3. VBA Erreur d'exécution '459' sur un userform
    Par micom59 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 28/02/2009, 20h12
  4. Problème avec erreur d'exécution
    Par bruce207 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 20/08/2008, 11h32

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