Activer un fichier

Bonjour,

Je suis en train de galérer sur un truc. En fait, je veux copier des données d'un fichier vers un autre.

Dans une page Excel, j'ai inscris dans des cellules que j'ai nommé les informations suivantes

P:\comptabilite\MAJ Suivi contrat-projet\Test Vincent --> nommé "chemin" dans excel

Suivi de mandats précédent --> Nommé "Nom1" dans excel

Voici ce que je veux faire :

Ouvrir le fichier dans lequel je veux prendre les données . J'ai réussi :

Macro :

Chemin = [Chemin]

fichier = [Nom1]

Workbooks.Open Filename:=Chemin & "\" & fichier & ".xls"

Cells.Copy

Peux-être devrais-je déclarer des variables, mais je comprends pas encore le principe des variables.

Par la suite, je veux réactiver mon fichier ou j'exécute la macro. L'enregistreur enregistre ça :

Windows("Copie de GabaritMAJ-mandat.xls").Activate

Moi, j'aimerais le réouvrir selon le nom définir, car ce code ne fonctionnera plus si je change le nom de mon fichier. J'ai essayé les deux codes suivants pour remédier au problème :

bud = ActiveWorkbook.Name

1.bud.Activate

2. Windows("bud").activate

Mais ça ne fonctionne pas.

Est-ce que vous avez une idée de la syntaxe a utiliser?

Un gros merci d'avance !

Bonsoir,

Tu n'est pas loin

bud = ActiveWorkbook.Name

2. Workbooks(bud).activate (à la place de Windows)

çà devrait marcher

Amicalement

Claude

Bonjour,

Merci Claude pour ton aide de nouveau. J'ai encore deux petites questions concernant cette macro.

Je voudrais sélectionner la Feuil2 (son nom VB pas excel) pour copier les valeurs au bon endroit. J'essaye ceci:

Workbooks(Cefichier).Worksheets.Feuil2.Select

Cells.Select

Ça ne fonctionne pas, ca doit pas être grand chose.

J'ai remarqué que mon code : Workbooks.Open Filename:=Chemin & "\" & fichier & ".xls"

ne marche qu'une fois. Après j'ai un message d'erreur me disant que le fichier n'existe pas... J'enlève la ligne de code et je la remet et ça refonctionne...

Chercher l'erreur...?

Merci encore pour ton aide précieuse !

re,

Le mieux serait d'envoyer les 2 fichiers et d'expliquer

la manip à faire

Amicalement

Claude

Bonjour,

Les fichiers sont gros et contiennent plusieurs données confidentielles, mais je veux juste coller les données d'un fichier vers un autre.

Donc je suis aller copier mes données dans le fichier 1 que je venais d'ouvrir :

Cells.Copy

Je veux coller les données dans le feuil1(données) dans le fichier 2 :

Workbooks(Cefichier).Activate

Workbooks(Cefichier).Feuil1.Select

Par contre, ce code ne fonctionne pas.

Merci encore !

Vincent

re,

Affiche ici la macro complète, pour voir

Claude

Sub openmandat()

'Vieux suivi de mandats

Chemin = [Chemin]

fichier = [Nom1]

Workbooks.Open Filename:=Chemin & "\" & fichier & ".xls"

Cefichier = ActiveWorkbook.Name

Cells.Copy

Workbooks(Cefichier).Activate

Workbooks(Cefichier).Feuil1.Select

Cells.Select

ActiveSheet.Paste

Workbooks(fichier).Close

End Sub

Voilà ! Merci

re,

Tel que tu écrit

"Cefichier" est le fichier que tu ouvre avec Open

Dans quel fichier se trouve la macro

faut que je fasse ma soupe, je regarde après !

Claude

Bonjour Claude,

J'ai modifié mon code comme ceci :

Application.ScreenUpdating = False

Application.DisplayAlerts = False

'Vieux suivi de mandats

Chemin = [Chemin]

fichier = [Nom1]

'Nom de ce fichier

Cefichier = ActiveWorkbook.Name

'On ouvre et copie les données du vieux

Workbooks.Open Filename:=Chemin & "\" & fichier & ".xls"

Cells.Copy

'On copie les données dans ce fichier

Workbooks(Cefichier).Activate

Sheets("Suivi mandat précédent").Select

Cells.Select

ActiveSheet.Paste

Application.CutCopyMode = False

'On ferme le vieux fichier

Workbooks(fichier).Close

ça fonctionne bien. Par contre, si tu connais comment sélectionner Feuil1 au lieu de "suivi mandat précédent", je suis preneur.

Un gros merci de ton aide toujours apprécié.

Bonne fin de journée et bon appétit !

re,

si tu est sûr que la feuille se nomme "Feuil1", tu remplace simplement le nom

Workbooks(Cefichier).Activate

Sheets("Feuil1").Activate

à noter que si le bouton est sur Feuil1, pas besoin de cette ligne

édit:

N'oublie pas de déclarer

Sub openmandat()
Dim Cefichier As String, Chemin As String, fichier As String

Claude

bonjour,

Essaie ça :

Sub Test()
'Nom de la feuille cible
Dest = Feuil1.Name
'Vieux suivi de mandats
Chemin = [Chemin]
fichier = [Nom1]
'On ouvre et copie les données du vieux
Workbooks.Open Filename:=Chemin & "\" & fichier & ".xls"
With ActiveWorkbook
ActiveSheet.Cells.Copy ThisWorkbook.Worksheets(Dest).Range("A1")
.Saved = True
.Close
End With
End Sub

A+

[Edit] Activer ou Selecter quoique ce soit nuit gravement à VBA : A proscrire !

Merci pour toute ton aide !

Vincent

Rechercher des sujets similaires à "activer fichier"