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 :

Macro qui marche "pas à pas" mais pas avec le bouton


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Macro qui marche "pas à pas" mais pas avec le bouton
    Bonjour la communauté,

    Je vous demande de l'aide concernant les macros.

    J'ai bien réussi à faire les enregistrements que je voulais mais il me reste un petit souci.

    Dans un fichier avec plusieurs onglets, il y a seulement un seul onglet qui ne répond pas bien à ce que je lui dis de faire, alors que lorsque je l’exécute "pas à pas "cela fonctionne.
    Je ne comprends pas pourquoi elle me donne un autre résultat quand je clique sur le bouton que j'ai créé alors qu'il s'agit bien de la même macro en "pas à pas".
    J'ai essayé de mettre cette macro sur un autre onglet et refaire les mêmes enregistrements mais ça me donne le même résultat..

    Auriez-vous une idée d'où le problème pourrait provenir ?

    Je sais pas si je suis claire dans mes explications mais je galère vraiment sur ce point qui j'en suis sure doit être un problème de paramétrage surement.

    Je vous remercie pour votre temps.

    Cordialement,
    Sarah.

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 265
    Points
    34 265
    Par défaut
    Bonjour,

    si tu peux nous montrer le code en question, cela nous serait très utile pour t'aider.

    Sans ce code, on ne peut que spéculer

    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    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

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Je pense que tu ne nommes pas explicitement les noms des onglets et, éventuellement, des classeurs... Est-ce possible ?
    Comme dit par Jean-Philippe, un bout de code aiderait à mieux comprendre...
    MPi²

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Bonjour,

    si tu peux nous montrer le code en question, cela nous serait très utile pour t'aider.

    Sans ce code, on ne peut que spéculer

    Bonjour,

    Voici le code de la macro :

    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
    Sub P11_Effacement()
    '
    ' P11_Effacement Macro
    '
     
        Sheets("P11").Select
        ActiveWindow.SmallScroll Down:=6
        Range("E37:J38").Select
        Range("J37").Activate
        Selection.Copy
        Range("E40").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("E34:J35").Select
        Range("J34").Activate
        Application.CutCopyMode = False
        Selection.Copy
        Range("E37").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("L37:L39").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("M40").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("K34:K36").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("L37").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveWindow.SmallScroll Down:=-21
        Range("L4:L33").Select
        Application.CutCopyMode = False
        Selection.Copy
        ActiveWindow.SmallScroll Down:=-12
        Range("M4").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("K4:K33").Select
        Application.CutCopyMode = False
        Selection.Copy
        ActiveWindow.SmallScroll Down:=-12
        Range("L4").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveWindow.SmallScroll Down:=0
        Range("E4:I33").Select
        Range("I4").Activate
        Application.CutCopyMode = False
        Selection.ClearContents
        Range("E5").Select
    End Sub

    Si vous avez une adresse mail je peux vous envoyer le excel en question?

    Merci pour votre aide.

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 265
    Points
    34 265
    Par défaut
    Salut,

    cela ne sera pas nécessaire.

    Le code a surement été généré par l'enregistreur de macros; donc on va dans un premier temps le simplifier (en effet il n'est pas optimal de passer par une sélection de cellules avant de les copier coller (on peut s'affranchir de cette selection).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range().Select
    Selection.Copy
    se simplifiant en

    DE la meme facon, les scrolldown ne servent à rien de concret (si ce n'est un aspect graphique)

    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
    Sub P11_Effacement()
    '
    ' P11_Effacement Macro
    '
     
        Sheets("P11").Select
        Range("E37:J38").Select
        Range("J37").Activate
        Selection.Copy
        Range("E40").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("E34:J35").Select
        Range("J34").Activate
        Application.CutCopyMode = False
        Selection.Copy
        Range("E37").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("L37:L39").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("M40")..PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("K34:K36").Select
        Application.CutCopyMode = False
        Range("K34:K36").Copy
        Range("L37").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
            Range("L4:L33").Copy
        Range("M4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
        Range("K4:K33").Copy
        Range("L4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("E4:I33").Select
        Range("I4").ClearContents
        Application.CutCopyMode = False
        Range("E5").Select
    End Sub
    en sachant que je n'ai pas tout corrigé, regarde dejà ce que te donne ce code.
    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    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

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta proposition mais le problème c'est qu'il faut justement copier qu'un certain nombre de cellules pour les recopier plus bas.
    C'est pour cela que je copie et je colle par la suite.
    Les scrolldown oui ne servent à rien mais ne dérangent pas dans la macro.
    J'ai toujours le même problème :/

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 265
    Points
    34 265
    Par défaut
    OK,

    qu'entends tu par "cela ne fonctionne pas" ? tu as un message d'erreur ? le résultat obtenu n'est pas celui attendu ? Excel crashe ?
    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    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

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    OK,

    qu'entends tu par "cela ne fonctionne pas" ? tu as un message d'erreur ? le résultat obtenu n'est pas celui attendu ? Excel crashe ?


    Le résultat obtenu n'est pas celui attendu.

    on me met des 0% au lieu des cellules copiées collées.

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Il faudrait que tu nous dises ce que tu veux copier et où exactement tu veux le coller (sur la même feuille?)

    Dans ton code, tu écris ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Sheets("P11").Select
        Range("E37:J38").Select
        Range("J37").Activate
        Selection.Copy
        Range("E40").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    qui équivaut à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Sheets("P11").Range("E37:J38").Copy
        Sheets("P11").Range("E40").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    MPi²

  10. #10
    Nouveau Candidat au Club
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par parmi Voir le message
    Il faudrait que tu nous dises ce que tu veux copier et où exactement tu veux le coller (sur la même feuille?)

    Dans ton code, tu écris ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Sheets("P11").Select
        Range("E37:J38").Select
        Range("J37").Activate
        Selection.Copy
        Range("E40").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    qui équivaut à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Sheets("P11").Range("E37:J38").Copy
        Sheets("P11").Range("E40").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

    Oui c'est ça le copier coller sur la même feuille.

    C'est le glissement des années 2016 à 2015 et de 2015 à 2014.

    et ce qui ne marche pas c'est le copier coller K34:K36 à L37:39

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Reprend les 2 lignes que je t'ai mises en changeant seulement les adresses au besoin.
    En mettant le nom de la feuille, la macro fonctionnera bien peu importe où se trouve le code.
    Est-ce que ça fonctionne mieux ?
    MPi²

Discussions similaires

  1. [XL-2003] J'ai une partie de macro qui marche pas
    Par Alexandra 01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/10/2010, 14h29
  2. Macro qui marche sur un poste et pas sur les autres
    Par INeedHelp dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/05/2008, 08h58
  3. script qui marche dans la console firebug mais pas a l'execution
    Par xclam dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/05/2007, 12h16
  4. Applet qui s'execute dans un dossier mais pas dans l'autre
    Par Battosaiii dans le forum Applets
    Réponses: 11
    Dernier message: 10/12/2005, 15h54

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