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 :

Code d'une macro !


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2019
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2019
    Messages : 50
    Points : 24
    Points
    24
    Par défaut Code d'une macro !
    Bonjour à tous !
    J'ai besoin de votre aide sur le code ci-dessous.
    Ce code fonctionnement plutôt bien, sauf au niveau de "CALL Tstructuré_Actual2" (mise en gras et en rouge) qui ne s'active pas lorsque je lance la macro.
    Je voudrais bien que tout ce code fonctionne. Si quelqu'un peut m'aider !
    Merci

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    Private Sub Imprimer_Archiver_Click()
    'Save_PDF
    Application.EnableEvents = False
    
    Dim wsA As Worksheet
    Dim wbA As Workbook
    Dim strName As String
    Dim strPath As String
    Dim strFile As String
    Dim strPathFile As String
    Dim myFile As Variant
    
      On Error GoTo EndHandler
      ActiveSheet.Unprotect "CIGBB71"
        If Application.Dialogs(xlDialogPrint).Show() Then
      Application.EnableEvents = False
        Set wbA = ActiveWorkbook
        Set wsA = ActiveSheet
     
        'get active workbook folder, if saved
        strPath = wbA.Path
        If strPath = "" Then
          strPath = Application.DefaultFilePath
        End If
        strPath = strPath & "\"
     
        strName = wsA.Range("A1").Value _
        & " ETB du " & wsA.Range("A2").Value _
     
        'create default name for savng file
        strFile = strName & Format(Now(), "dd-mm-yyyy hh.mm.ss")
        strPathFile = strPath & strFile
     
        'export to PDF in current folder
        Sheets(Array("P-1", "Pyt Det", "ETB-1", "ETB-2", "ETB-3", "ETB-4", "ETB-5", "ETB-6", "ETB-7", "ETB-8", "ETB-9", "ETB-10", "COMPTABILITE")).Select
        ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=strPathFile, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        ignoreprintareas:=False, _
        openafterpublish:=False
    
    ' Page select Macro
        Sheets("P-1").Select
        
    'confirmation message with file info
        MsgBox "Un archive a été créé au format PDF : " & vbCrLf & strPathFile
            
        Sheets("COMPTABILITE").Select
        Range("BQ9:BQ19").Select
        Selection.Copy
        Range("BP9:BP19").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
        Sheets("P-1").Select
        Range("C4:D4").Select
            
        Sheets("P-1").Range("G6").ClearContents
        Sheets("P-1").Range("C4:D4").ClearContents
        Sheets("P-1").Range("C6:D6").ClearContents
        Sheets("P-1").Range("C8:D8").ClearContents
        Sheets("Pyt Det").Range("PytDet_clear").ClearContents
        Sheets("ETB-1").Range("ETB1_clear").ClearContents
        Sheets("ETB-2").Range("ETB2_clear").ClearContents
        Sheets("ETB-3").Range("ETB3_clear").ClearContents
        Sheets("ETB-4").Range("ETB4_clear").ClearContents
        Sheets("ETB-5").Range("ETB5_clear").ClearContents
        Sheets("ETB-6").Range("ETB6_clear").ClearContents
        Sheets("ETB-7").Range("ETB7_clear").ClearContents
        Sheets("ETB-8").Range("ETB8_clear").ClearContents
        Sheets("ETB-9").Range("ETB9_clear").ClearContents
        Sheets("ETB-10").Range("ETB10_clear").ClearContents
        Call Tstructuré_Actual2
        Sheets("P-1").Range("G4").Value = Sheets("P-1").Range("G4").Value + 1
    
      End If
     
    EndHandler:
      If Err <> 0 Then MsgBox "Impossible de générer l'archive (fichier PDF)"
      ActiveSheet.Protect "CIGBB71", True, True, True
      
    Application.EnableEvents = True
    End Sub
    Ci dessous, le code lié à "CALL Tstructuré_Actual2" qui marche très bien lorsque je le lance seul.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Tstructuré_Actual2()
        ActiveSheet.Unprotect "CIGBB71"
        ActiveSheet.Unprotect
        ActiveWorkbook.RefreshAll
        ActiveSheet.Protect "CIGBB71", True, True, True
    End Sub

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour

    Enlève d'abord la ligne On Error et regarde ce qui se passe. A première vue


    recommandation subsidiaire, évite tous les Select et Activemachin
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    En plus des judicieuses recommandations de mercatog (), une question : les deux procédures sont-elle dans le même module ?

    Ce code fonctionnement plutôt bien
    Si c'était le cas, tu n'aurais pas besoin de On Error.
    Quand l'autruche mets la tête dans le sable, elle peut croire que le danger a disparu mais ce n'est pas le cas.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2019
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2019
    Messages : 50
    Points : 24
    Points
    24
    Par défaut Bonjour !
    Bonjour mercatog !
    Je viens d'essayer ce que tu venais de proposer, mais ça ne marche toujours pas.
    Toute proposition serait la bienvenue !
    Merci

  5. #5
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2019
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2019
    Messages : 50
    Points : 24
    Points
    24
    Par défaut Oui Menhir !
    J'avais créé deux macros et placé les deux l'une après l'autre dans un même bouton.
    j'avais d'abord affecté la première macro (1er code) au bouton, puis j'ai copié le code de la seconde macro (2è code) et placé après le 1er code.

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Citation Envoyé par RJSCVF Voir le message
    Je viens d'essayer ce que tu venais de proposer, mais ça ne marche toujours pas.
    Qu'est ce que tu entends par ça ne marche pas? message d'erreur? si oui lequel?


    Sinon, qu'est ce que pour toi Activesheet dans ton code et aussi activeworkbook? Tu travailles avec un seul classeur ou plusieurs.

    Sinon, regarde TON code sans les select, Aucune garantie si tu n'explique pas les questions et clairement

    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
    52
    53
    54
    55
    56
    57
    58
    Private Sub Imprimer_Archiver_Click()
    Dim wsA As Worksheet
    Dim wbA As Workbook
    Dim strName As String
    Dim strPath As String
    Dim strFile As String
    Dim strPathFile As String
    Dim k As Byte
     
    If Application.Dialogs(xlDialogPrint).Show() Then
        Application.EnableEvents = False
        Set wbA = ActiveWorkbook
        Set wsA = ActiveSheet
        wsA.Unprotect "CIGBB71"
     
        'get active workbook folder, if saved
        strPath = wbA.Path
        If strPath = "" Then strPath = Application.DefaultFilePath
        If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
     
        strName = wsA.Range("A1").Value & " ETB du " & wsA.Range("A2").Value
        'create default name for savng file
        strFile = strName & " " & Format(Now(), "dd-mm-yyyy hh.mm.ss")
        strPathFile = strPath & strFile
     
        'export to PDF in current folder
        Sheets(Array("P-1", "Pyt Det", "ETB-1", "ETB-2", "ETB-3", "ETB-4", "ETB-5", "ETB-6", "ETB-7", "ETB-8", "ETB-9", "ETB-10", "COMPTABILITE")).ExportAsFixedFormat _
                Type:=xlTypePDF, _
                Filename:=strPathFile, _
                Quality:=xlQualityStandard, _
                IncludeDocProperties:=True, _
                ignoreprintareas:=False, _
                openafterpublish:=False
     
        'confirmation message with file info
        MsgBox "Un archive a été créé au format PDF : " & vbCrLf & strPathFile
     
        Worksheets("COMPTABILITE").Range("BQ9:BQ19").Copy
        With Worksheets("P-1")
            .Range("BP9:BP19").PasteSpecial Paste:=xlPasteValues
            Application.CutCopyMode = False
            .Range("G6").ClearContents
            .Range("C4:D4").ClearContents
            .Range("C6:D6").ClearContents
            .Range("C8:D8").ClearContents
            .Range("G4").Value = .Range("G4").Value + 1
        End With
     
        For k = 1 To 10
            Worksheets("ETB-" & k).Range("ETB" & k & "_clear").ClearContents
        Next k
     
        Worksheets("Pyt Det").Range("PytDet_clear").ClearContents
        wbA.RefreshAll
        wsA.Protect "CIGBB71", True, True, True
        Application.EnableEvents = True
    End If
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Il n'est pas nécessaire d'enlever les On Error. Il suffit d'aller dans les options et de cocher "Arrêt sur toutes les erreurs" pour désactiver temporairement la gestion des exceptions et donc stopper l'exécution du code dès la survenance d'une exception. Cela dit, comme le dit Menhir, si c'est juste pour se mettre la tête dans le sable... Mais dans le cas proposé ici, la ligne Application.EnableEvents = False impose une gestion d'erreur pour le remettre à True en fin de macro, quoi qu'il puisse se passer dans la macro.

    Au passage, on peut avoir un code qui fonctionne très bien mais qui nécessite tout de même une gestion des exceptions (exception voulant dire "truc que l'on ne peut pas gérer" tel qu'une ouverture de fichier, une connexion internet qui ne répond pas, etc, etc, etc...). Avoir des On Error dans son code ne veut pas automatiquement dire "code merdi..." ou "tête dans le sable", loin de là.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Au passage, on peut avoir un code qui fonctionne très bien mais qui nécessite tout de même une gestion des exceptions (exception voulant dire "truc que l'on ne peut pas gérer" tel qu'une ouverture de fichier, une connexion internet qui ne répond pas, etc, etc, etc...). Avoir des On Error dans son code ne veut pas automatiquement dire "code merdi..." ou "tête dans le sable", loin de là.
    Je suis d'accord avec toi (je procède aussi parfois ainsi) mais, si c'est utilisé ainsi, il s'agit généralement d'erreurs dont la nature et la localisation dans le code est prévue.
    On mets alors rarement plus d'une ligne de code entre le On Error Goto xxx et le On Error Goto 0 qui le désactive.

    Mettre, comme c'est le cas ici, un On Error en début de code et qui courre sur la totalité de l'exécution, c'est rarement un signe de qualité du code.
    Typiquement, dans le cas présent, ça empêche de connaitre la nature exacte du problème : on débugue "à l'aveugle".
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Justement, il n'y a pas de débogage à l'aveugle. Il suffit durant le développement de paramétrer correctement la gestion des erreurs comme je l'ai expliqué dans le message précédent. Ainsi le code s'arrête sur toute erreur générée sans se soucier de la présence de On Error.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    insère (temporairement) dans ton traitement d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EndHandler:
    Stop: Resume
    et fais en pas à pas avec F8 pour retourner sur la ligne ayant généré l'erreur.
    Il ne te reste plus qu'à l'analyser et lire ses variables et/ou expressions pour trouver la cause.

    N'oublie pas de passer par la ligne de réactivation des événements avant de quitter
    eric

    PS : si tu pouvais mettre un titre plus explicite pour ceux qui passent par la case Recherche. Merci

  11. #11
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2019
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2019
    Messages : 50
    Points : 24
    Points
    24
    Par défaut Bonjour à tous !
    Bonjour à tous !
    Je vais essayer d'expliquer exactement à quoi consiste mon classeur.
    Il est aussi à noter que j'ai débuté sur VBA il y a presque 3 mois, donc je suis encore novice et je ne maîtrise pas encore l'écriture des codes. J'ai trouvé le code de ma macro sur le net sur la sauvegarde en PDF, que j'ai adapté en y insérant la partie pour l'impression et pour l'effacement de données dans certaines cellules.

    Mon classeur se nomme "MakAchat" et c'est un état de besoin à utiliser journellement.
    Il contient 13 feuilles qui se nomment respectivement : "P-1", "Pyt Det", "ETB-1 jusqu'à ETB-10", et "COMPTABILITE"

    • "P-1" : est la feuille qui reprend la synthèse des infos contenues sur toutes les feuilles et contient le numéro de bon qui s’incrémente automatiquement en augmentant de +1. Elle est la page la plus importante. C'est comme un tableau de bort.
    • Pyt Det : Est le tableau structuré qui mentionne les dettes que nous payons à certains fournisseurs au jour en cours.
    • ETB-1 à ETB-10 : sont les Etats de besoins pour 10 fournisseurs. Généralement, nous n'utilisons que 4 à 5 fournisseurs par jour.
    • COMPTABILITE : Et la feuilles qui contient les tableaux croisés dynamiques des tableaux structurés, soit de "Pyt Det" et des "ETB-1 à ETB-10"


    Toute ces feuilles, après sauvegarde en PDF sont sensées se vider automatiquement en effaçant les données saisies ce jour lorsque l'on clique sur le bouton "Imprimer et Archiver". Et ainsi le jour suivant, le classeur sera à nouveau vide pour être rempli.

    Les tableaux croisés dynamiques sont sensés se vider (devenir vide) aussi après cette opération. C'est ici que j'ai le problème avec la macro "Call Tstructurés_Actual2" en rouge et en gras en fin de mon code, qui devrait actualiser tous les TCD, c'est-à-dire toute la feuille "COMPTABILITE" et les rendre vides, puisque leurs Tableaux structurés, c'est-à-dire "Pyt Det", "ETB-1 à ETB-10 et une partie de "P-1" ont été effacés par la partie ci-dessous du code :

    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
    Sheets("COMPTABILITE").Select
        Range("BQ9:BQ19").Select
        Selection.Copy
        Range("BP9:BP19").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
        Sheets("P-1").Select
        Range("C4:D4").Select
            
        Sheets("P-1").Range("G6").ClearContents
        Sheets("P-1").Range("C4:D4").ClearContents
        Sheets("P-1").Range("C6:D6").ClearContents
        Sheets("P-1").Range("C8:D8").ClearContents
        Sheets("Pyt Det").Range("PytDet_clear").ClearContents
        Sheets("ETB-1").Range("ETB1_clear").ClearContents
        Sheets("ETB-2").Range("ETB2_clear").ClearContents
        Sheets("ETB-3").Range("ETB3_clear").ClearContents
        Sheets("ETB-4").Range("ETB4_clear").ClearContents
        Sheets("ETB-5").Range("ETB5_clear").ClearContents
        Sheets("ETB-6").Range("ETB6_clear").ClearContents
        Sheets("ETB-7").Range("ETB7_clear").ClearContents
        Sheets("ETB-8").Range("ETB8_clear").ClearContents
        Sheets("ETB-9").Range("ETB9_clear").ClearContents
        Sheets("ETB-10").Range("ETB10_clear").ClearContents
        ICI Devrait s'exécuter la la macro à problème  : Call Tstructuré_Actual2
        Sheets("P-1").Range("G4").Value = Sheets("P-1").Range("G4").Value + 1
    C'est donc la macro : "Call Tstructuré_Actual2" devant intervenir dans cette partie du code qui ne s'exécute pas. Mais tout le reste du code s'exécute correctement.

    J'espère que ces explications vous éclaireront sur ce sujet.

    Pour répondre à la suggestion d'Eriiic pour le titre, je ne sais pas trop quel titre conviendrait pour ce sujet. Toute proposition d'un titre serait la bienvenu pour aider les membres qui passent par la case recherche.

    Merci à tous !

  12. #12
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par RJSCVF Voir le message
    C'est donc la macro : "Call Tstructuré_Actual2" devant intervenir dans cette partie du code qui ne s'exécute pas. Mais tout le reste du code s'exécute correctement.
    D'après ce que tu décris, ce n'est pas le Call qui pose problème (sinon, ça causerait un message d'erreur et je suppose que tu aurais indiqué ce message dans ta description).
    C'est plutôt le code contenu dans la procédure Tstrucruré_Actual2.
    Mais sans voir ce code, difficile de savoir où est le problème.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  13. #13
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    Pour répondre à la suggestion d'Eriiic pour le titre...
    Ca aurait été plus intéressant de suivre ce qui était proposé au-dessus et de dire le résultat que tu as obtenu.
    Apprendre à déboguer est tout aussi important que d'apprendre à coder.
    Des bugs tu en feras tout au long de ta vie.
    eric

  14. #14
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2019
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2019
    Messages : 50
    Points : 24
    Points
    24
    Par défaut Bonjour !
    Voici le code de "Call Tstructurés_Actual2"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Tstructuré_Actual2()
        ActiveSheet.Unprotect "CIGBB71"
        ActiveSheet.Unprotect
        ActiveWorkbook.RefreshAll
        ActiveSheet.Protect "CIGBB71", True, True, True
    End Sub
    Ce code devrait mettre à jour tous les TCD contenus dans la feuille "COMPTABILITÉ".

    Apprendre à déboguer est tout aussi important que d'apprendre à coder.
    Des bugs tu en feras tout au long de ta vie.
    J'avais inséré dans le code d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EndHandler:
    Stop: Resume
    Mais le code "Call Tstructurés_Actual2" ne s'exécutait toujours pas.

    Pour le titre, je n'ai toujours pas les termes exacts pour décrire le problème de mon code. C'est vrai que cela traite plus du Débogage. Mais j'espère le trouver très vite.

    Merci

  15. #15
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Et si tu lances Tstructuré_Actual2() directement en pas à pas, que se passe-t-il?

    On n'a toujours pas le code d'erreur ou la description détaillée du problème que tu rencontres... A ce stade, cela va devenir délicat de t'aider davantage.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  16. #16
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2019
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2019
    Messages : 50
    Points : 24
    Points
    24
    Par défaut Bonjour !
    Le code "Tstructuré_Actual2()" lancé seul s'exécute sans problème en mettant à jour tous les TCD.
    Mais mis dans le bouton "Imprimer et Archiver" sous l'instance "Call", il ne se lance pas et il n'y a aucun message d'erreur qui s'affiche.

    Je longuement réfléchi sur ce problème et j'ai décidé d'abandonner ce sujet et réorienter cette partie du code qui ne marche pas en créant une base de donnée dans ce même classeur afin de générer au besoin le TCD à la date voulue, au-lieux de les exporter au jour le jour en PDF.

    Pour cela, je viens de crée une autre discussion pour demander votre aide pour m'aider à réaliser ce que j'ai l'intention de faire.

    Le sujet de la discussion s'intitule : "Copier le contenu d'un tableau structuré vers un autre tableau structuré à partir de sa première ligne vide".

Discussions similaires

  1. Copier Coller du Code dans une macro VBA
    Par ted the Ors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/04/2008, 16h11
  2. Changer le code d'une macro crée en mode création
    Par Vincent_59 dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/06/2007, 09h24
  3. comment lancer du code depuis une macro ?
    Par faiglon dans le forum Access
    Réponses: 15
    Dernier message: 13/07/2006, 11h03
  4. Réponses: 2
    Dernier message: 06/06/2006, 10h50
  5. help sur le code d'une procedures stockee
    Par omlip dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 25/08/2004, 18h45

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