macro pour enregister le classeur et le fermer

macro pour enregister le classeur et le fermer - VB/VBA/VBS - Programmation

Marsh Posté le 18-05-2011 à 20:35:06    

Bonjour,
je dois faire du traitement de données d'expérience sous excel 2010et j'aimerais automatiser la manip.
 
ma macro doit ouvrir un premier fichier A.DAT en m'ouvrant la fenêtre de dialogue "Ouvrir"
y récupérer le contenu de quelques cellules et les recopier dans la feuille qui sert de modèle pour traiter les données,
refermer le fichier A.DAT,  
puis ouvrir un deuxième fichier BA1.DAT (qui se trouve dans un autre répertoire :"dossier de données" ) pour y récupérer des données à copier dans le modèle
puis fermer le fichier BA1,
ouvrir un fichier "modèle résultats" ( que je dois avoir ouvert au préalable j'imagine) pour y coller un récapitulatif des résultats
enregistrer ceux-ci sous le nom du fichier "B" "résultats" avec l'extension XLS cette fois-ci (expl: B_résultats.xls),
refermer et recommencer l'opération avec le fichier BA"et un chiffre entre 1 et 27".DAT suivant dans le répertoire (expl: BA3.DAT ; BA21.DAT ; BA12.DAT) et ainsi de suite tant qu'il y a des fichiers BA"et un chiffre entre 1 et 27".DAT dans le répertoire , sinon revenir au début de la macro jusqu'à ce que tous les fichiers .DAT du répertoire :"dossier de données"soit traités.
 
Suis-je claire ? Pouvez-vous m'y aider ?
 

Reply

Marsh Posté le 18-05-2011 à 20:35:06   

Reply

Marsh Posté le 18-05-2011 à 21:36:20    

Salut,pour cela tu as l'enregistreur de macros puis une optimisation manuelle à faire

Reply

Marsh Posté le 19-05-2011 à 01:35:09    

e vous donne ce que j'ai réussi à faire grâce à l'enregistreur de macro et quelques modifs avec ce que j'ai trouvé sur le net :
Sub recup_val()
'
' recup_val Macro
'
' Touche de raccourci du clavier: Ctrl+Shift+C
Application.ScreenUpdating = False
ChDir ("D:\Mes documents\Cours master 1\mémoire2\dossier de traitement des données brutes\fichiers de données brutes" )
Application.Dialogs(xlDialogOpen).Show
Range("AB1:AE2" ).Select
Selection.Copy
Windows("modèle condition 2 données brut.xlsm" ).Activate
Range("A1" ).Select
ActiveSheet.Paste
Windows("modèle condition 2 données brut.xlsm" ).Activate
ChDir ("D:\Mes documents\Cours master 1\mémoire2\dossier de traitement des données brutes\condition 2" )
Application.Dialogs(xlDialogOpen).Show
Range("A2:C7" ).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Windows("modèle condition 2 données brut.xlsm" ).Activate
Range("A8" ).Select
ActiveSheet.Paste
Range("A7:A8" ).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Range("B7:B8" ).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Range("C7:C8" ).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Range("B9" ).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("C9" ).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("A9" ).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("V7" ).Select
End Sub
Sub sauv_traitement()
'
' sauv_traitement Macro
'
' Touche de raccourci du clavier: Ctrl+Shift+S
'
Range("A9:C9" ).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Workbooks.Open Filename:= _
"D:\Mes documents\Cours master 1\mémoire2\modèles\modèle feuille de résultats condition 2.xlsx"
Range("B9" ).Select
ActiveSheet.Paste
Windows("modèle condition 2 données brut.xlsm" ).Activate
Range("R11:W11" ).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Windows("modèle feuille de résultats condition 2.xlsx" ).Activate
Range("F11" ).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("modèle condition 2 données brut.xlsm" ).Activate
Range("R7:U7" ).Select
Application.CutCopyMode = False
Selection.Copy
Windows("modèle feuille de résultats condition 2.xlsx" ).Activate
Range("E6" ).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("modèle condition 2 données brut.xlsm" ).Activate
Range("Y6:Y8" ).Select
Application.CutCopyMode = False
Selection.Copy
Windows("modèle feuille de résultats condition 2.xlsx" ).Activate
Range("K4" ).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("modèle condition 2 données brut.xlsm" ).Activate
Range("V9" ).Select
Application.CutCopyMode = False
Selection.Copy
Windows("modèle feuille de résultats condition 2.xlsx" ).Activate
Range("K7" ).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
CommandBars.FindControl(ID:=748).Execute
End Sub
Sub macro_Condition_2()
Application.ScreenUpdating = False
Application.Run "recup_val_croix"
Application.Run "sauv_traitement"
End Sub
Merci ...


Message édité par Dimi83 le 20-05-2011 à 19:44:27
Reply

Marsh Posté le 20-05-2011 à 11:30:50    

Personne ne peut m'aider à améliorer cette macro ?  
Je précise que je n'y connais rien en programmation que ce soit VBA ou n'importe quel autre langage.

Reply

Marsh Posté le 22-05-2011 à 01:31:06    

macro résolue

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed