Aller retour dans 2 fichiers

CF007

XLDnaute Nouveau
Bonjour le forum

Afin de traiter la paie d'une vingtaine de personnes j'ai fait un programme avec des macros VBA. A la fin des traitements j'ai besoin de stocker des infos qui pourraient me servir par la suite.

Das le fichier "A" tourne une macro qui me permet d'importer certaines données du mois précédent pour chaque salarié :
Voici un extrait du code pour le mois de mars :

If Range("MOISPAIE") = "MARS" Then
File = Range("CODESAL").Value
Workbooks.Open Filename:="C:\TOPVER\PAIE\HISTORIQUE\" & File & ".xls"
Range("A14").Select

Je suis dans "A" et la macro ouvre le fichier "B" du salarié

ActiveCell.Range("A1:AN1").Select
Selection.Copy

Je reviens sur "A"

Windows("MODELE BS.xls").Activate
Sheets("IMPCUM").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Sheets("MENU").Select

End If

A ce moment le fichier "B" est toujours ouvert.

Pour continuer ma macro il faudrait à partir de là que soit le fichier "B" se ferme et que je l'ouvre de nouveau plus tard, soit que je puisse y retourner mais sans mentionner son nom qui dépend de la variable "File".

J'ai essayé pour le fermer le code suivant :

File = Range("CODESAL").Value
Workbooks.Close Filename:="C:\TOPVER\PAIE\HISTORIQUE\" & File & ".xls"

ou pour y revenir :

File = Range("CODESAL").Value
Windows("C:\TOPVER\PAIE\HISTORIQUE\" & File & ".xls").Activate

et bien évidemment ça ne marche pas

Voilà, j'espère ne pas avoir été trop long mais il fallait que ce soit clair pour ceux d'entre vous qui pourraient m'aider


CF007 NICE
 

kjin

XLDnaute Barbatruc
Re : Aller retour dans 2 fichiers

Bonjour,
Sans ouvrir le fichier
Code:
Sub import()
Dim sFich As String, sFeuil As String, sRep As String, sAdress As String
sFich = Range("CODESAL")
sFeuil = "Feuil1" 'à adapter
sRep = "C:\TOPVER\PAIE\HISTORIQUE\" 'a adapter
For i = 1 To 40
sAdress = Cells(1, i).Address(ReferenceStyle:=xlR1C1) 'à adapter
Cells(3, i) = Application.ExecuteExcel4Macro("'" & sRep & "[" & sFich & ".xls]" & sFeuil & "'!" & sAdress)
Next

End Sub
A+
kjin
 

CF007

XLDnaute Nouveau
Re : Aller retour dans 2 fichiers

Merci pour ta réponse mais je rame toujours ....
Je précise mon problème :

Dans le fichier principal "A", je construis le bulletin de salaire. Je récupère dans le fichier du salarié "B" les éléments qui me servent à faire les cumuls
et que je copie dans une feuille de "A" dénommée "IMPCUM".

Nom de "B" = "C:\TOPVER\PAIE\HISTORIQUE\" & File & ".xls"
avec File = Range("CODESAL").Value "CODESAL" est dans "A"

Jusque là ça marche et mon BS est prêt à imprimer.

Si tu sais comment faire ça sans ouvrir le fichier du salarié ....

Ensuite, j'ai besoin d'exporter dans le fichier du salarié les données du mois pour le mettre à jour et pouvoir l'importer le mois suivant comme indiqué ci-dessus.

Pour cela, j'ai dans le fichier "A" une feuille dénommée "CUMSAL" qui contient une ligne dans laquelle toutes les infos qui sont utiles doivent se copier dans le fichier "B" dans la feuille "CUMULS".

C'est là que ça coince, parce que le fichier "B" est déjà ouvert et que la macro ne peut y accéder qu'avec une adresse "relative" et non le nom du fichier "SALARIE", puisque ce n'est pas toujours le même.

Là aussi, si tu as le moyen de le faire sans ouvrier le fichier ou tout au moins m'indiquer comment faire avec l'adresse relative "C:\TOPVER\PAIE\HISTORIQUE\" & File & ".xls"

J'ai essayé de m'en sortir avec le code envoyé mais il ne se passe rien.

Merci pour ton aide

CF007 NICE
 

kjin

XLDnaute Barbatruc
Re : Aller retour dans 2 fichiers

Re,
Oui mais sans fichier comment faire pour éviter que de ce fil on fasse une pelote, car c'est bien parti je le crains
Importer/Exporter n'est pas un pb à condition de savoir quoi et où
J'ajoute que si tu dois travailler sur les données importées avant de les réexporter, il faut forcémment 2 procédures distinctes
A+
kjin
 

Discussions similaires

Réponses
4
Affichages
1 K