attachement module

sigma

XLDnaute Occasionnel
Bonjour à tous,

J'ai un module qui correspond à un classeur, j'aimerai que celui ci fonctionne avec n'importe quel fichier ouvert mais il reboucle à chaque fois sur mon premier fichier.

Pouvez vous me renseigner,
merci de votre aide.

A+
 

Pièces jointes

  • test.xls
    33.5 KB · Affichages: 64
  • test.xls
    33.5 KB · Affichages: 64
  • test.xls
    33.5 KB · Affichages: 64

fredl

XLDnaute Impliqué
Re : attachement module

Il doit reboucler sur ton premier fichier car tu dois demander dans ta macro de le selectionner.
Pour utiliser les macros d'un module d'un autre fichier, il suffit d'ouvrir le fichier le contenant et d'appeler la macro qui est contenue dans ce module.
Mes fichiers font cela tous les jours.
A quoi ressemble ta macro?
Fred
 

sigma

XLDnaute Occasionnel
Re : attachement module

Bonjour fredl,
la voici mais c'est un peu du bidouillage...

Sub Macro5()
'
' Macro5 Macro
' Macro enregistrée le 20/12/2011 par '

Workbooks.Open Filename:="\\ddd\démarche qualité\MF\test RO BD.xls"
'Columns("N:S").Select
Sheets("Feuil1").Select
Sheets("Feuil1").Copy After:=ThisWorkbook.Sheets(4)
Sheets("Feuil1 (2)").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Sheets("Feuil1 (2)").Name = "extract"
Range("A1").Select
Windows("test RO BD.xls").Activate
ActiveWindow.Close

Sheets("Feuil5").Select
'Range("A17:M1941").Select
'Range("M28").Activate
' ActiveWindow.SmallScroll Down:=-15
Columns("A:m").Select
Selection.Copy
Sheets("extract").Select
'ActiveWindow.SmallScroll Down:=-39
'ActiveWindow.ScrollColumn = 2
'ActiveWindow.ScrollColumn = 1
'ActiveWindow.SmallScroll Down:=-12
Range("A1").Select
ActiveSheet.Paste
Rows("1:16").Select
Selection.Delete Shift:=xlUp
Range("A1").Select

End Sub
 

sigma

XLDnaute Occasionnel
Re : attachement module

re,
J'ai rebalayé plusieurs fois le code mais je ne trouve toujours pas l'erreur,
Patrick pour revenir à ta proposition, j'ai tenté ton idée mais sans succès.
si tu pouvais me détailler la procédure.

Merci à tous
A+
 

Staple1600

XLDnaute Barbatruc
Re : attachement module

Bonsoir


Comme je n'avais rien à faire en attendant que la soupe cuise
Code:
Sub Macro5()
Workbooks.Open Filename:="\\ddd\démarche qualité\MF\test RO BD.xls"
    Sheets("Feuil1").Copy After:=ThisWorkbook.Sheets(4)
    Sheets("Feuil1 (2)").Name = "extract"
    Range("A1").Select
    Windows("test RO BD.xls").Close
    Sheets("Feuil5").Columns("A:m").Copy
   Sheets("extract").Range("A1").Paste
    Rows("1:16").Delete Shift:=xlUp
    End Sub
 
Dernière édition:

fredl

XLDnaute Impliqué
Re : attachement module

Bon,
je crois comprendre enfin ton besoin :
en fait, tu souhaites que ta macro fonctionne sur n'importe quel fichier préalablement ouvert?
Si oui :
1/ouvrir ton fichier avec la macro
2/ouvrir ton fichier sur lequel tu veux travailler (le garder activé=à l'écran)
3/lancer la macro ci dessous

Re : attachement module
Bonjour fredl,
la voici mais c'est un peu du bidouillage...

Sub Macro5()
'
' Macro5 Macro
' Macro enregistrée le 20/12/2011 par '

''''''''''''''''''''''''''''''''''''''''''''''''''''''Workbooks.Open Filename:="\\ddd\démarche qualité\MF\test RO BD.xls"
'Columns("N:S").Select
Sheets("Feuil1").Select
Sheets("Feuil1").Copy After:=ThisWorkbook.Sheets(4)
Sheets("Feuil1 (2)").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Sheets("Feuil1 (2)").Name = "extract"
Range("A1").Select
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Windows("test RO BD.xls").Activate
ActiveWindow.Close

Sheets("Feuil5").Select
'Range("A17:M1941").Select
'Range("M28").Activate
' ActiveWindow.SmallScroll Down:=-15
Columns("A:m").Select
Selection.Copy
Sheets("extract").Select
'ActiveWindow.SmallScroll Down:=-39
'ActiveWindow.ScrollColumn = 2
'ActiveWindow.ScrollColumn = 1
'ActiveWindow.SmallScroll Down:=-12
Range("A1").Select
ActiveSheet.Paste
Rows("1:16").Select
Selection.Delete Shift:=xlUp
Range("A1").Select

End Sub

'maintenant si tu souhaites que la macro ouvre d'elle meme d'autre fichiers, tu peux en début de macro donner à l'utilisateur la possibilité de choisir le(s) fichier à traiter:

Sub essai()
'INvite de choix de fichier
FichiersAOuvrir = Application.GetOpenFilename(, , , , True)

'//////////////récup des données dans les fichier et intégration ds fichier bilan/////////////////////
If IsArray(FichiersAOuvrir) Then
'VnbSeries = UBound(FichiersAOuvrir, 1)
'traitement ds différents fichiers les uns apres les autres.
For i = LBound(FichiersAOuvrir, 1) To UBound(FichiersAOuvrir, 1)
Workbooks.OpenText Filename:=FichiersAOuvrir(i) _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1) 'Columns("N:S").Select
Sheets("Feuil1").Select
Sheets("Feuil1").Copy After:=ThisWorkbook.Sheets(4)
Sheets("Feuil1 (2)").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Sheets("Feuil1 (2)").Name = "extract"
Range("A1").Select
ActiveWindow.Close

Sheets("Feuil5").Select
'Range("A17:M1941").Select
'Range("M28").Activate
' ActiveWindow.SmallScroll Down:=-15
Columns("A:m").Select
Selection.Copy
Sheets("extract").Select
'ActiveWindow.SmallScroll Down:=-39
'ActiveWindow.ScrollColumn = 2
'ActiveWindow.ScrollColumn = 1
'ActiveWindow.SmallScroll Down:=-12
Range("A1").Select
ActiveSheet.Paste
Rows("1:16").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
Next
End If
End Sub

'Ces propositions répondent t'elles à ton besoin?
'A+
Frédéric
 

sigma

XLDnaute Occasionnel
Re : attachement module

re fred,
Merci de revenir sur le sujet, tu as bien compris le besoin ("tu souhaites que ta macro fonctionne sur n'importe quel fichier préalablement ouvert" )mais ça ne fonctionne toujours pas.
j'ai un fichier dans lequel j'ai un module. Je reçois un autre fichier quotidien (identique sur la forme) sur lequel je voudrais appliquer ce module mais à chaque fois que je lance la macro elle ne fonctionne que sur le premier fichier.

j'ai bien suivi ta procédure => ouverture du fichier avec la macro => ouverture du fichier quotidien => lancement de la macro mais le résultat est identique.

A+
 

fredl

XLDnaute Impliqué
Re : attachement module

Attention : tu dois lancer la macro alors que la cellule active d'excel est une cellule du fichier quotidien.
As tu bien lancé la macro 5 ci dessous?
Que dois faire théoriquement ta macro ?
Es tu sûr qu'il faille fermer le fichier quotidien en ligne : "ActiveWindow.Close"?
car ensuite, tu travaille dans le fichier contenant la macro.....
Dis moi.
Frédéric
 

sigma

XLDnaute Occasionnel
Re : attachement module

re,
j'ai bien peur de ne pas tout t'avoir dit...
en fait j'ai 3 fichiers :
- le premier sur lequel il y a la macro.
- le second qui s'ouvre et qui se ferme (Filename:="\\ddd\démarche qualité\MF\test RO BD.xls") depuis lequel je prends des infos que je colle sur le fichier avec macro.
- le troisième (quotidien et identique sur la forme que le premier).

je voudrai que ma macro fonctionne sur ce troisième fichier que je reçois par mail chaque jour.
mais comme le module est dans le premier, je suppose que la macro boucle éternellement sur celui-ci...

Suis pas sur d'être clair mais je fais le max...
merci à toi.
A+
 

fredl

XLDnaute Impliqué
Re : attachement module

Bon, reprend moi si je me trompe
ce que fait ta macro qui est dans le module 2 (du premier fichier ouvert)
elle ouvre ton fichier RO,fais je ne sais quoi, le ferme, puis execute les actions suivantes:

Sheets("Feuil5").Select
'Range("A17:M1941").Select
'Range("M28").Activate
' ActiveWindow.SmallScroll Down:=-15
Columns("A:m").Select
Selection.Copy
Sheets("extract").Select
'ActiveWindow.SmallScroll Down:=-39
'ActiveWindow.ScrollColumn = 2
'ActiveWindow.ScrollColumn = 1
'ActiveWindow.SmallScroll Down:=-12
Range("A1").Select
ActiveSheet.Paste
Rows("1:16").Select
Selection.Delete Shift:=xlUp
Range("A1").Select

sur le fichier actif sous excel (cad le fichier avec le module si seul fichier ouvert ou si pls fichier ouverts, celui
qui sera actif. Et si j'ai bien compris, il y a 2 fichiers ouverts (module et journalier)et tu veux que toutes ces actions se fassent sur le journalier?
Si oui, est ce que le nom de ton fichier journalier est toujours le meme?
 

sigma

XLDnaute Occasionnel
Re : attachement module

re,
oui sauf que le fichier ou est le module n'as pas besoin d'être ouvert, je l'ai juste fait pour stocker le module.
concernant le nom du second fichier, il m'est envoyé par mail quotidiennement et la date change chaque jour (Ano-situation 20 12 2011)

A+
 

fredl

XLDnaute Impliqué
Re : attachement module

ok,
donc
tu ouvres ton fichier journalier et tu le laisses actif(visible à l'écran)
et tu lances la macro ci dessous.
ça le fait?
Dis moi
nb : personnellement, je mettrais le module dans le fichier ro que j'ouvrirai pour lancer la macro avec le fichier journalier en actif dans la fenetre Excel. Ce dernier ne devant alors pas etre fermé dans la macro

Sub Macro5()
dim vnomFichierJournalier
recupération du nom du fichier journalier pour pouvoir le selectionner ensuite
vnomFichierJournalier=activeworkbook.name



Workbooks.Open Filename:="\\ddd\démarche qualité\MF\test RO BD.xls"
'Columns("N:S").Select
Sheets("Feuil1").Select
Sheets("Feuil1").Copy After:=ThisWorkbook.Sheets(4)
Sheets("Feuil1 (2)").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Sheets("Feuil1 (2)").Name = "extract"
Range("A1").Select
Windows("test RO BD.xls").Activate
ActiveWindow.Close

windows(vnomFichierJournalier).activate


Sheets("Feuil5").Select
'Range("A17:M1941").Select
'Range("M28").Activate
' ActiveWindow.SmallScroll Down:=-15
Columns("A:m").Select
Selection.Copy
Sheets("extract").Select
'ActiveWindow.SmallScroll Down:=-39
'ActiveWindow.ScrollColumn = 2
'ActiveWindow.ScrollColumn = 1
'ActiveWindow.SmallScroll Down:=-12
Range("A1").Select
ActiveSheet.Paste
Rows("1:16").Select
Selection.Delete Shift:=xlUp
Range("A1").Select

End Sub
 

Statistiques des forums

Discussions
312 329
Messages
2 087 331
Membres
103 519
dernier inscrit
Thomas_grc11