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 :

Exécution macro ok en pas à pas, nok sinon


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2021
    Messages : 2
    Par défaut Exécution macro ok en pas à pas, nok sinon
    Bonjour à tous,
    J'ai une macro "Capture_comment()" destinée à insérer une image dans un commentaire sous Excel 2016. Celle ci fonctionnait très bien sous Excel 2010, mais depuis le passage en 2016, elle ne fonctionne qu'en exécution en pas à pas...
    Avez vous une solution?
    Merci d'avance!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _
    ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
     
    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
     
    Function Lien_rep_Valide(MonUrl As String) As Boolean
        Lien_rep_Valide = Dir(MonUrl, vbDirectory) <> ""
    End Function
     
    Sub Capture_comment()
    Dim FL As Worksheet, Limage As String, Shp As Shape
    Dim chem_copie As String
     
    On Error Resume Next
     
        Set FL = Worksheets.Add
        DoEvents
        Range("A1").Select
        ActiveSheet.Paste
        DoEvents
        Set Shp = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
     
        chem_copie = "C:\temp"
     
        If Lien_rep_Valide(chem_copie) = False Then
                MkDir (chem_copie)
        End If
     
     
        Limage = chem_copie & "\Limage.jpg"
        Application.ScreenUpdating = False
     
     
           With ActiveSheet.ChartObjects.Add(0, 0, Shp.Width, Shp.Height).Chart
                .Paste
                .Export Limage, "JPG"
     
            End With
            Application.DisplayAlerts = False
                FL.Delete
            Application.DisplayAlerts = False
        Application.ScreenUpdating = True
     
           With ActiveCell
         .ClearComments
         .AddComment
         .Comment.Shape.Fill.UserPicture Limage
        End With
    End Sub

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2013
    Messages : 122
    Par défaut
    Bonjour

    Merci de préciser votre version d'Office

    Si 64 bits prévoir les déclarations (avec PtrSafe, ..) qui vont bien pour ShellExecute et Kbd_Event qui au demeurant ne sont pas utilisées dans cette partie de code, Merci de prévoir de fournir votre fichier Excel en l'anonymisant si possible

    Il est possible d'utiliser la balise de code qui le rend plus lisible.
    Il aurait été intéressant de savoir sur quelle ligne il y a un problème avec quel contexte de données.

    Cdlt

  3. #3
    Membre émérite
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Par défaut
    Bonjour,

    Je puis qu'abonder dans le sens de fraflt69 concernant les balises CODE et l'identification de la ligne en erreur

    Concernant votre fonction Capture_comment, je vois en début de fonction la ligne suivante :
    Mais vous n'avez rien copié avant...

    De façon générale, veillez à éviter d'utiliser les sélections et les objets actifs (ActiveSheet, ActiveCell).
    C'est une source d'erreurs sans fin et une catastrophe pour les performances de votre code.
    Sans parler du débogage

    Cdt

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2021
    Messages : 2
    Par défaut Précision
    Merci pour ces réponses, je vous joint le fichier qui est un complément (.xlam). La macro concernée est "Capture_comment".
    Version d'office utilisée: 2016.

    Le but de cette macro est d'encapsuler une copie d'écran dans le commentaire d'une cellule. Le .paste initial est là pour importer cette image dans la nouvelle feuille créée.
    J'ai mis en commentaire la gestion d'erreur qui doit gérer le cas de figure pour lequel il n'y a rien à coller...

    Cordialement,
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/02/2015, 13h54
  2. [AC-2000] Macro exécuter code ne fonctionne pas
    Par papyxy dans le forum Macros Access
    Réponses: 4
    Dernier message: 13/04/2013, 15h30
  3. Worksheets_change ne se lance pas après exécution macro
    Par d0n32 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/03/2013, 17h18
  4. Réponses: 2
    Dernier message: 01/04/2008, 13h22
  5. Réponses: 4
    Dernier message: 01/03/2007, 15h36

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