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 :

Plusieurs On Error GoTo à la suite [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2017
    Messages : 39
    Par défaut Plusieurs On Error GoTo à la suite
    Bonjour à tous,

    J'ai commencé à faire une macro qui va coller un Tableau d'amortissement préalablement copié à un endroit bien précis, avec les formats désirés déjà parémétrés sur les colonnes.

    Seulement, étant sous Excel entreprise, 2 types de collages existent, celui pour lequel les données proviennent de la même session Excel que mon fichier sur lequel sera collé le TA, et celui pour lequel les données viennent d'une autre session Excel que le fichier qui va aceuillir le TA.

    Pour la même session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Pour une session différente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
            False, NoHTMLFormatting:=True
    J'ai donc mis en place un premier On Error GoTo pour aller tester le deuxième type de collage si le premier ne fonctionne pas. Seulement, je voudrais à présent rajouter un deuxième On Error GoTo qui m'affiche un petit MsgBox si l'utilisateur a oublié de copier un TA avant de vouloir le collé.

    Il se trouve que ce deuxième On Error GoTo ne fonctionne pas, je ne sais pas où est mon erreur. Voici le code global, merci pour votre aide!

    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
    Sub CollerTA()
    '***************************************************************
    'Macro collant correctement le TA copié voulu dans la feuille TA
    '***************************************************************
     
        '**************************
        'Initialisation de la macro
        '**************************
        'Masquer l'éxecution de la macro
        Application.ScreenUpdating = False
     
        'Sélectionner la feuille TA
        Sheets("TA").Select
        'Se placer en première cellule de TA
        Range("A2").Select
     
        '******
        'Coller
        '******
        'Version même classeur
        On Error GoTo AutreClasseur
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
            'Sélection clean
        Range("A2").Select
     
        'Afficher l'éxecution de la macro
        Application.ScreenUpdating = True
     
        Exit Sub
     
    AutreClasseur:
        'Version autre classeur
        On Error GoTo ErreurCollage
        ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
            False, NoHTMLFormatting:=True
     
        'Sélection clean
        Range("A2").Select
     
        'Afficher l'éxecution de la macro
        Application.ScreenUpdating = True
     
        Exit Sub
     
    ErreurCollage:
    MsgBox "Erreur, il semblerait que vous n'ayez pas copié votre TA, ou bien que vous l'ayez copié depuis un fichier protégé par exemple", vbOKOnly, "Attention"
    End Sub

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Weran, bonjour le forum,

    Peut être en annulant la gestion de la première erreur avant le lancer la gestion de la seconde erreur :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AutreClasseur:
        On Error GoTo 0
        'Version autre classeur
        On Error GoTo ErreurCollage
        '...

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2017
    Messages : 39
    Par défaut
    Bonjour Thautheme,

    Merci pour ta réponse. Cependant, ça ne semble pas être la solution, le code continu sans sauter à la dernière etiquette ErreurCollage: pour finalement afficher une erreur en tentant de coller (rien de copié exprès tu l'aura compris)...

  4. #4
    Expert éminent 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
    Par défaut
    Remplace tes Goto par des Gosub et mets dans une autre procédure le code à réaliser en cas d'erreur.

    A lire : https://docs.microsoft.com/fr-fr/off...oto-statements

    Cela dit, pour moi, coder ainsi est une horreur.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2017
    Messages : 39
    Par défaut
    Bonjour Menhir,

    Merci pour ton aide. J'ai essayé avec GoSub, mais VBA m'indique une erreur, stipulant qu'après un On Error il attends un GoTo ou Resume, et non pas un GoSub.

    Et j'ai bien conscience que mon code a certainement une allure bizarre, en étant un peu du bricolage...

  6. #6
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    J'ai du mal à proposer un code sur un code que je ne comprends pas vraiment et que je ne peux pas tester... Mais essaye comme ça :

    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
    Sub CollerTA()
    '***************************************************************
    'Macro collant correctement le TA copié voulu dans la feuille TA
    '***************************************************************
     
        '**************************
        'Initialisation de la macro
        '**************************
        'Masquer l'éxecution de la macro
        Application.ScreenUpdating = False
     
        'Sélectionner la feuille TA
        Sheets("TA").Select
        'Se placer en première cellule de TA
        Range("A2").Select
     
        '******
        'Coller
        '******
        'Version même classeur
        On Error Resume Next
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        If Err <> 0 Then
            Err.Clear
            GoTo AutreClasseur
        End If
        On Error GoTo 0
            'Sélection clean
        Range("A2").Select
     
        'Afficher l'éxecution de la macro
        Application.ScreenUpdating = True
     
        Exit Sub
     
    AutreClasseur:
        'Version autre classeur
        On Error Resume Next
        ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
            False, NoHTMLFormatting:=True
        If Err <> 0 Then
            Err.Clear
            GoTo ErreurCollage
        End If
        On Error GoTo 0
     
        'Sélection clean
        Range("A2").Select
     
        'Afficher l'éxecution de la macro
        Application.ScreenUpdating = True
     
        Exit Sub
     
    ErreurCollage:
    MsgBox "Erreur, il semblerait que vous n'ayez pas copié votre TA, ou bien que vous l'ayez copié depuis un fichier protégé par exemple", vbOKOnly, "Attention"
    End Sub

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2017
    Messages : 39
    Par défaut
    Bonjour Thautheme,

    Ça fonctionne, je te remercie!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Plusieurs sauts de ligne à la suite
    Par gedeon555 dans le forum Mise en forme
    Réponses: 3
    Dernier message: 28/12/2006, 20h28
  2. pb avec "On error goto"
    Par malingue dans le forum Access
    Réponses: 9
    Dernier message: 20/06/2006, 20h54
  3. [vb6]On Error goto 0
    Par riesseg dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 20/04/2006, 21h04
  4. On error goto Err : goto non exécutée au 2ème appel
    Par charliejo dans le forum Access
    Réponses: 1
    Dernier message: 11/04/2006, 16h00
  5. [VBA-E]Pb "On Error GoTo"
    Par hdidan dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 04/04/2006, 19h41

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