Macro pour tous les fichiers ouverts

  • Initiateur de la discussion francki
  • Date de début
F

francki

Guest
Bonjour,

J'ai fais une macro pour mettre en forme un fichier.
Comment aplliquer la même macro automatiquement à d'autres fichiers ouverts (ou non) ?
Merci pour vos solutions

Voici ma macro toute bête :

Sub nettoyage()
'
' nettoyage Macro
' Macro enregistrée le 03/06/2003 par Francki
'

'
Rows("1:1").RowHeight = 29.25
Rows("1:1").Select
Range("I1").Activate
Selection.Delete Shift:=xlUp
Rows("2:2").Select
Range("I2").Activate
Selection.Delete Shift:=xlUp
ActiveWindow.LargeScroll ToRight:=-1
Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
Columns("E:E").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
Range("B2").Select
ActiveCell.FormulaR1C1 = "=TEXT(RC[-1],""j/m/a"")"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B1442")
Range("B2:B1442").Select
Selection.Copy
Range("C2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Columns("A:B").Select
Range("B1").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range("A1").Select
ActiveCell.FormulaR1C1 = "Date"
With ActiveCell.Characters(Start:=1, Length:=4).Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range("C2").Select
ActiveCell.FormulaR1C1 = "=TEXT(RC[-1],""hh:mm:ss"")"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C1442")
Range("C2:C1442").Select
Selection.Copy
Range("D2").Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Columns("B:C").Select
Range("C1").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range("B1").Select
ActiveCell.FormulaR1C1 = "Heures"
With ActiveCell.Characters(Start:=1, Length:=6).Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Columns("N:N").Select
Selection.Insert Shift:=xlToRight
Range("N1").Select
ActiveCell.FormulaR1C1 = "Casier"
With ActiveCell.Characters(Start:=1, Length:=6).Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range("N2").Select
End Sub
 
V

Vériland

Guest
Ouarf...c'est plus une macro c'est un vrai roman là...

Tu as mis en route l'enregistreur de macro là...hi hi hi...j'en connais qui font te faire la même chose mais en 10 lignes...loool...d'ailleurs elle porte bien son nom ta macro...Nettoyage...

Bonsoir Francki,

bon ben on va y aller par étapes si tu veux bien...mais avant peut être nous donner quelques informations de ce que tu souhaiterais obtenir présicément sur ton fichier nous évitera p'têt de partir sur un post à rallonge...

A+Veriland.gif


PS : ne le prends pas mal on va t'aider...par contre pour appliquer une macro faudra forcément que le fichier soit tout vert...euh...ouvert...lol
 
@

@Christophe@

Guest
Bonsoir a tous

ben qui voila, Vincent, comment vas tu, rien qu'as vous deux, surtous francki son poste est aussi long que la plupart des postes, et tous ca sans la réponse, rire

Ben voila, une petit touche d'humour

Mais aussi un compliment, au moins Francki tire sont plan avec l'enregistreur, certain pose des question sans même essayé l'enregistreur ou bien l'aide F1

Bonne soirée a vous tous

@Christophe@
 
F

francki

Guest
Bon, ok je débute et c'est la 1ère fois que je viens sur le forum.
Je pensais bien qu'on allait se moquer de moi et bing ! Ca na pas manqué, les aficionados ne m'ont pas râté... M'enfin, vous le prenez bien et vous avez bon esprit et ca c'est bien cool.

Concernant mon problème : J'ai utilisé (effectivement) l'enregistreur pour remettre en forme une feuille dans un fichier (suppression de 2 lignes, transformation d'un champ horaire en champ texte, création d'une colonne).

Le problème, c'est qu'à mon niveau je ne sais pas comment réutiliser la même macro pour remettre en forme tout une série de fichiers identiques au premier.

Ce que j'aimerai, c'est ouvrir tous les fichiers + le fichier qui contient la macro et lancer la macro sur tous les fichiers ouverts.

Merci pour vos réponses et ne me charriez pas trop !
 
V

Vériland

Guest
Bonsoir Francki et le forum,

Ah ben Francki...personne ne t'a encore répondu là...

bon ben c'est certainement dû à tes informations qui manque un peu de clarté ; ce qui ne nous permet pas de te répondre d'une manière précise...

Pour commencer je pense qu'il serait interressant de faire un nettoyage dans ta macro...pour cela j'ai essayé de lire ton enregistrement mais je me trouve confronté à une incompréhension d'ensemble...hi hi hi

Alors...Si j'ai bien compris tu insères d'abord des colonnes B:C et E:F ensuite tu copies la colonne A pour la mettre en B avec un format date "j/m/a" et tu fais la même chose en C mais en format heure "hh:mm:ss" ensuite en A1 tu places "Date", en B1 tu places "Heure" et en N1 tu places "Casier" en insérant quelques cellules en N...

bon...

Toute cette opération peut se faire en quelques lignes...

mais pour ce qui est de l'activer dans tout les fichiers ouverts deviendra une usine à gaz pour peu de chose...de plus cette macro risque de te servir qu'une seule fois puisque qu'après avoir fait l'opération il n'y aura plus lieu à l'utiliser...savoir qu'un simple "copié coller" de cette macro dans tous les fichiers sera certainement plus simple au lieu de chercher les fichiers ouverts...ça prend moins d'une minute...

Mais bon...je n'ai p'têt pas tout capté..lol

A+Veriland.gif
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 655
Messages
2 111 605
Membres
111 217
dernier inscrit
aladinkabeya2