Problème macro excel

Résolu
Fabb28 Messages postés 6 Statut Membre -  
Fabb28 Messages postés 6 Statut Membre -
Bonjour à tous,

J’ai un souci avec une macro Excel, je vous explique mon problème :
J’ai une macro affectée à un classeur celui-ci attend nommé « VIERGE » sera par la suite enregistré sous un autre nom (un numéro). Et par conséquent, lors de l’activation celle-ci « bug » étant donnée qu’elle fait appelle à ce classeur appelé « VIERGE » dont le nom a changé au moment de l’exécution. Je voudrai que la macro suive le classeur ; qu’elle dépende du nom du classeur. Je vous joins la macro pour une meilleure compréhension !
Merci par avance du temps que vous pourrez consacrer à mon problème…

Sub Archivage()
'
' Macro3 Macro
' Macro enregistrée le 28/01/2009 par frpfabr
'
'Dim nform As Double
'Dim codeana As Single
'Dim coutform As Double
'Dim coutflexo As Double
'Dim coutoutilreact As Double
'Dim tempsatelier As Double
'Dim couttotal As Double

Windows("coût outillage.xls").Activate
Sheets("SHEET1").Activate
Range("B4").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("B4").Select

Windows("VIERGE.xls").Activate
Range("S35").Select
Selection.Copy
Windows("coût outillage.xls").Activate
Sheets("SHEET1").Activate
Range("C4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Windows("VIERGE.xls").Activate
Range("S17").Select
Selection.Copy
Windows("coût outillage.xls").Activate
Sheets("SHEET1").Activate
Range("D4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Windows("VIERGE.xls").Activate
Range("S14").Select
Selection.Copy
Windows("coût outillage.xls").Activate
Sheets("SHEET1").Activate
Range("E4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Windows("VIERGE.xls").Activate
Range("S27").Select
Selection.Copy
Windows("coût outillage.xls").Activate
Sheets("SHEET1").Activate
Range("F4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Windows("VIERGE.xls").Activate
Range("S38").Select
Selection.Copy
Windows("coût outillage.xls").Activate
Sheets("SHEET1").Activate
Range("G4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Windows("VIERGE.xls").Activate
Range("S11").Select
Selection.Copy
Windows("coût outillage.xls").Activate
Sheets("SHEET1").Activate
Range("H4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Windows("VIERGE.xls").Activate
Range("S41").Select
Selection.Copy
Windows("coût outillage.xls").Activate
Sheets("SHEET1").Activate
Range("I4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Windows("coût outillage.xls").Activate
Range("B4:J4").Select
Range("J4").Activate
Selection.Interior.ColorIndex = 2

Windows("coût outillage.xls").Activate
Rows("4:4").Select
Selection.Insert Shift:=xlDown
Range("B4").Select

Windows("VIERGE.xls").Activate
Range("A3:C4").Select

End Sub

MERCI ENCORE DE L'AIDE QUE VOUS POURREZ ME CONSACRER
A voir également:

5 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Ta macro est sur quel classeur ?
0
Fabb28 Messages postés 6 Statut Membre
 
Bonjour,

Ma macro est sur le classeur appelé VIERGE mais ce classeur est renommé lors de l'exécution de celle ci.

Merci de ton aide
0
SarkoFan
 
Bonjour
Si je comprends bien, tu aura au final un cetains nombre de classeurs, tous anciennement 'VIERGE' et récupérant tous les mêmes données dans "coût outillage.xls".
A la lire, je ne vois pas pourquoi cette macro est indispensable, pourquoi pas de références externes ?
0
Fabb28 Messages postés 6 Statut Membre
 
bonjour,

cette macro sert comme tu as pu le voir a récupérer des informatiosn dans diverses classeurs afin de les recencer dans un classeur appelé COUT OUTILLAGE.
Mon classeur VIERGE et enregistrer sous un autre nom lors de l'exécution de la macro (qui sera lancé qu'une seule fois) ceci ayant pour but une manipulation aisée pour toutes personne ayant ou pas des connaissances informatiques.
elle me semble indispensable car une copie manuelle des informations peut etre source d'erreur.
ce que j'aurai voulu, c'est au moment de l'execution de la macro qu'elle fasse appelle au nom du classeur dans laquel elle se trouve et non qu'elle fasse appelle a ce classeur VIERGE.
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Il faut te définir dans un module une variable publique :
Public nom_vierge As String

Lorsque tu ouvres ton classeur tu mets dans thisworkbook cette macro
Private Sub Workbook_Open()
    nom_vierge = ActiveWorkbook.Name
End Sub

Lorsque tu veux utiliser Windows("VIERGE.xls") tu le remplaces par Windows(nom_vierge)

Lorsque tu renommes ton classeur tu mets à jour ta variable :
nom_vierge = ActiveWorkbook.Name
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Pour éviter que le nom de ton classeur ne change..
    ActiveWorkbook.SaveCopyAs(NomFichier)

A+

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

nommé « VIERGE » sera par la suite enregistré sous un autre nom (un numéro).

Ne pas changer de nom est-ce la solution ?
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour GB,
Huuumm , j'ai lu trop vite et pas bien interprèter la question.. Tu a raison.
A+
0