Activer/Désactiver un classeur

Bonjour à tous,

débutant en VBA, je sollicite encore votre aide...

Je cherche à créer un nouveau classeur et l'enregistrer sous. Cette opération fonctionne avec le code suivant:

Set XLApp = CreateObject("Excel.Application")
    'On ajoute un classeur
    Set Workbook = Application.Workbooks.Add
    'On rend le classeur visible
    XLApp.Visible = True
    'On donne un nom au classeur
    ThisWorkbook.SaveCopyAs Filename:="X:\Transport\TOM\OUTIL COMPTA\SYNTHESE.xls"

Je souhaite désormais récupérer des datas dans un classeur pour venir les coller dans ce nouveau classeur.

Je ne connais pas la commande pour activer/désactiver un classeur.

Exemple:

Je travail sur classeur A

Je crée avec ma macro mon classeur B

Je vais copier la colonne A de mon classeur A

Pour la coller en colonne C de mon classeur B

Je avis avoir plusieurs manip a faire comme cela mais je n'ai seulement besoin de la méthode pour activer un classeur.

Merci d'avance,

Tom

Bonjour,

Quel besoin de créer une nouvelle instance de l'application dans laquelle tu es déjà, et où il te suffit de Workbooks.Add pour ajouter un classeur ?

Re,

mon code va effectuer un certains nombre d'opérations.

Au bout d'un moment, il va créer un nouveau classeur.

La suite de mon code va reprendre des données de mon classeur A pour les coller dans mon classeur B (celui que la macro aura crée)

Le problème que j'ai est que la suite de mon code va s'appliquer sur mon classeur A et non sur celui que je viens de crée.

Me suis-je fais comprendre?

Ci-joint une classeur (cf dans le module la ligne en majuscule)

Merci

Tom

Les commandes s'appliquent à ce à quoi tu leur dis de s'appliquer. Aucun problème particulier de ce point de vue.

Et je ne vois aucune utilité à activer un classeur ou une feuille pour intervenir dessus, sauf pour perdre volontairement du temps et ajouter des erreurs potentielles, parce qu'avec cette méthode on omet souvent de qualifier les objets et il arrive un moment où ça coince !

Un coup d'oeil panoramique sur le code de ton classeur m'a fait apercevoir pas mal de Select ou Activate et autres joyeusetés inutiles, outre le fait que l'indentation du code n'est pas ton fort... Tout ce que j'aime

Il me semble aussi que tu as indiqué vouloir sauvegarder le nouveau classeur que tu créais avec cette ligne de commande :

ThisWorkbook.SaveCopyAs Filename:="X:\Transport\TOM\OUTIL COMPTA\SYNTHESE.xls"

Il faut tout de même que tu saches que là c'est le classeur contenant la macro dont tu fais une copie sous le nom Synthese.xls...

En tout cas, tes derniers propos n'avaient strictement aucun rapport avec ma remarque précédente. Je suppose donc que tu n'avais pas compris le mien (de propos).

Salut MFerand,

déjà merci de ta réponse. En effet jsuis totalement mauvais en vba (car je n'ai pas apprit les bases) et me suis formé tous seul en fonction de mes besoins réels au boulot.

Je n'ai donc pas prit le temps d'apprendre les bases du vba.. (Exemple: eviter les select etc.)

Déjà tu m'a apprit un mot: Indentation. Les espaces et les tabulations impactent le code ou juste la lisibilité?

Donc si je comprend bien ton message, il est préférable de travailler sur un unique fichier quitte a ce qu'il soit hyper lourd ?

Je te joint mon fichier avec ma problématique. Si tu peux me trouver une solution pour ce qui est décrit en zone de texte ça serai tellement suppppppeeeer. En encore mieux avec les explications de ton code

Merci en tout cas,

Tom


Avec le fichier joint

Donc si je comprend bien ton message, il est préférable de travailler sur un unique fichier quitte a ce qu'il soit hyper lourd ?

Jamais rien dit de tel !!!

L'indentation sert à voir et lire le code, distinguer au premier coup d'oeil certains blocs d'instructions significatifs et éviter les erreurs d'interpétation à la lecture. VBA s'en fout, mais pas celui qui doit chercher à comprendre et détecter les erreurs...


Une feuille Préfac est récapitulée sur une ligne dans ton nouveau classeur si je comprends bien ?

Rechercher des sujets similaires à "activer desactiver classeur"