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 :

non traitement de certaines actions


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
    Ingénieur développement de composants
    Inscrit en
    Mai 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2018
    Messages : 2
    Par défaut non traitement de certaines actions
    Bonjour à Tous,

    Je vous sollicite car je n'arrive pas à comprendre pourquoi une partie de mon code ne s'éxecute pas ou s'il s'execute pourquoi je ne vois pas de changement:
    Le code manipule les objets shapes (shp1,shp2 et shp3) suivants de ma feuille initialement de ces coloris:
    shp3 connecteur de contour violet
    shp2 losange de contour violet et d'intérieur orange
    shp3 fleche de contour vert.

    lorsque je lance la procédure plotshape()
    j'ai mis une msgbox en guise de point d'arret pour pouvoir vérifier le passage du contour des shp3 et shp2 en rouge.
    il me semble qu'avant la temporisation on devrait avoir:
    shp3 connecteur de contour rouge (il doit s'être retourné à 180°)
    shp2 losange de contour rouge et d'intérieur bleu roi (on ne peut pas voir le passage de couleur intérieur en rouge car ce n'est pas la dernière action)
    shp3 fleche de contour vert.

    mais ce n'est pas le cas, on a au stade de la msgbox la meme configuration que l'état initial
    ce n'est qu'après avoir validé et attendu 10 secondes que j'ai:
    > mon inversion à 180° de shp3 mais en vert (sans avoir vu de rouge)
    > mon losange shp2 qui devient orange de l'intérieur et rouge sur le contour

    Notez que la cellule G25 a pris la valeur 5880731 avant la msgbox conformément à l'ordre de mes instructions.

    Quelqu'un saurait il m'expliquer pourquoi mon connecteur shp3 ne s'inverse et passe en rouge qu’après la msgbox ?

    J'ai remarqué que depuis l'insertion de ma temporisation (attente de l'appli de 10s) les premières actions ne se réalisent plus.
    Je joins mon fichier excel en PJ dedans j'ai mis des capture d'écran des 3 temps:
    > initial
    > execution de la msgbox
    > fin de la macro

    Merci d'avance pour vos réponses
    Karim.

    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
    Sub plotshape()
    Dim shp1 As Shape
    Dim shp2 As Shape
    Dim shp3 As Shape
    Dim c1 As Range
    Dim Fin_Tempo As Variant
    Dim I As Integer
    
    Set c1 = Range("G25")
    Set shp3 = ActiveSheet.Shapes(1)
    Set shp2 = ActiveSheet.Shapes(2)
    shp3.Flip msoFlipHorizontal
    shp3.Line.ForeColor.RGB = RGB(255, 0, 0)
    With shp2
    .Fill.ForeColor.RGB = RGB(255, 0, 0)
    .Fill.ForeColor.SchemeColor = 15
    .Line.ForeColor.RGB = RGB(255, 0, 0)
    End With
    
    Set shp1 = ActiveSheet.Shapes(3)
    c1.Value = shp1.Line.ForeColor.RGB
    MsgBox ("vérif rouge")
    I = 10
    Fin_Tempo = Now + TimeSerial(0, 0, I)
    Application.Wait (Fin_Tempo)
    shp3.Line.ForeColor.RGB = shp1.Line.ForeColor.RGB
    
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Mai 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2018
    Messages : 2
    Par défaut problème persistant dans une autre feuille
    J'ai revu la façon de selectionner mes formes
    mais j'ai toujours un problème. je veux juste documenter un peu plus ma question qui peut paraitre flou sans les images du séquencement temporel.

    Par ailleurs, voici les nom et ID de chaque forme
    Rectangle 3, ID=4
    Organigramme*: Décision 4 2, ID=5
    Ellipse 5, ID=6
    Connecteur en angle 2, ID=3
    Connecteur droit avec flèche 7, ID=8
    CommandButton1, ID=2049
    CommandButton2, ID=2050

    Le respect de l'ordre d'execution temporel du remplissage de mes cellules a bien lieu
    en revanche je ne peut pas en dire autant du respect de l'ordre d'execution temporel de mes actions sur les shapes.
    Quelqu'un peut me dire pourquoi ?


    cette fois mon code est :

    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
    Sub plotshape2()
    Dim S As Shape
    Dim shp1 As Shape
    Dim shp2 As Shape
    Dim ishp1 As Long
    Dim ishp2 As Long
    Dim ishp3 As Long
    Dim c1 As Range
    Dim str As String
    Dim I As Integer
    Dim Fin_Tempo As Variant
     
    Set c1 = ActiveSheet.Range("B9")
    ishp1 = 3
    ishp2 = 4
    ishp3 = 8
    'saisir les shape shp1 connecteur en angle 2 et shp2 Rectangle 3 et shp3 connecteur droit avec flèche
    For Each S In ActiveSheet.Shapes
        If S.ID = ishp1 Then
        Set shp1 = S
        End If
        If S.ID = ishp2 Then
        Set shp2 = S
        End If
        If S.ID = ishp3 Then
        Set shp3 = S
        End If
    Next S
    shp1.Flip msoFlipHorizontal
    shp1.Line.ForeColor.RGB = RGB(255, 0, 0)
    With shp2
    .Fill.ForeColor.SchemeColor = 15
    .Line.ForeColor.RGB = RGB(255, 0, 0)
    End With
    c1.Value = shp1.Line.ForeColor.RGB
    str = MsgBox("vérif rouge", vbOKOnly, "un petit check")
    c1.Offset(1, 0).Value = str & "peut on être satisfait de l'ordonnacement des tâches ?"
    I = 10
    Fin_Tempo = Now + TimeSerial(0, 0, I)
    Application.Wait (Fin_Tempo)
    shp1.Line.ForeColor.RGB = shp3.Line.ForeColor.RGB
     
    End Sub
    Resultat dans l'ordre temporel de l'affichage:
    1/ initialement:

    Nom : initial.JPG
Affichages : 152
Taille : 84,9 Ko

    2/juste apres la msgbox et avant les 10 secondes de tempo:

    Nom : déclenchement msgbox.JPG
Affichages : 151
Taille : 86,4 Ko

    3/pendant les 10 secondes de tempo:

    Nom : apres msgbox et avant les 10 secondes.JPG
Affichages : 159
Taille : 88,4 Ko

    4/apres l'execution de la totalité du code:

    Nom : fin macro.JPG
Affichages : 167
Taille : 88,3 Ko

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    SAlut,

    tu n'as pas une histoire de screenupdating ou screenrefresh à false ?

    En fait ce que tu veux c'est une coloration progressibve ?

    Pourquoi tu ne passes pas par un Application.OnTime pour t'assurer que le code se termine et lance la suite ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. [Méthode] Non traitement de données
    Par GLDavid dans le forum Langage
    Réponses: 11
    Dernier message: 11/08/2006, 17h27
  2. Undo / Redo. Peut-on enregistrer que certaines actions ?
    Par Peewee dans le forum Général Java
    Réponses: 2
    Dernier message: 03/04/2006, 11h33
  3. Composants non visible dans certaines applications
    Par chtom dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 22/03/2006, 17h33
  4. non apparition de certains champs
    Par clov dans le forum Access
    Réponses: 2
    Dernier message: 05/11/2005, 21h30
  5. Annuler seulement certaines actions d'1 trigger for each row
    Par thebloodyman dans le forum Oracle
    Réponses: 8
    Dernier message: 28/02/2005, 14h17

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