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 :

incohérence entre le pas à pas détaillé et l’exécution du programme


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
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2019
    Messages : 1
    Par défaut incohérence entre le pas à pas détaillé et l’exécution du programme
    Bonjour,

    J'ai un petit problème sur un programme VBA que j'ai développé.

    Mon programme a pour but d'ouvrir un second classeur, copier une des feuilles dans le classeur d'origine puis tranquillement refermer le classeur ouvert en le sauvegardant.

    Lorsque j'exécute ce programme en pas à pas détaillé aucun problème le programme s'exécute appliquant à la lettre les étapes demandé.

    Seulement lorsque je l'exécute normalement la page n'est jamais copié comme si celle ci n'était pas trouvé.

    voici les quelque ligne pour les plus curieux :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Workbooks.Open Chemin, 0, ReadOnly:=False
        ActiveWorkbook.Sheets(nomfeuille).Copy After:=Workbooks(classeurdorigine).Sheets("Feuil1")
        Application.DisplayAlerts = False
        ActiveWorkbook.Sheets(nomfeuille).Delete
        Workbooks(classeurouvert).Save
        Workbooks(classeurouvert).Close
        Application.DisplayAlerts = True
        Workbooks(classeurdorigine).Worksheets(nomfeuille).Visible = 1
    Comme vous l'aurais compris la feuille est caché ET verrouillé!

    Merci d'avance pour votre aide!!!!

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Un excellent cours VBA :
    https://bidou.developpez.com/article/VBA/
    Lire le cours et comprendre les exemples à partir de la page 128 : Workbooks, ... (après avoir lu la page 35 : les objets)

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    J'ai l'impression que la difficulté porte sur Personnellement, je l'utilise le moins possible.
    Mieux vaut affecter une variable à ce classeur actif pour l'utiliser ultérieurement.

    D'autre part, les 2 lignes sur la fermeture et la sauvegarde sont redondantes.
    1 seule ligne suffit

    Illustration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
     
    Sub Esssai_Open()
     
    Dim class As Workbook
     
    Set class = Workbooks.Open(Filename:= _
            "lechemindcomplet du classeur")
    Debug.Print "Nombre de feuilles : " & class.Worksheets.Count
    class.Close Savechanges:=True
    Set class = Nothing
     
    End Sub
    Tu peux consulter l'aide sur la méthode Close d'un classeur au sein de cet espace

Discussions similaires

  1. Pas à pas hyper détaillé
    Par Syntaxe error dans le forum Contribuez
    Réponses: 1
    Dernier message: 03/01/2010, 22h07
  2. Utiliser l'entrée micro quand pas d'entrée audio ?
    Par FabaCoeur dans le forum Périphériques
    Réponses: 17
    Dernier message: 26/08/2009, 20h00
  3. Réponses: 12
    Dernier message: 27/07/2009, 18h05
  4. Récupérer un champs à null si une entrée n'existe pas
    Par zglurb dans le forum Langage SQL
    Réponses: 6
    Dernier message: 16/04/2008, 19h31
  5. Réponses: 1
    Dernier message: 21/02/2008, 11h23

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