macro d'automatisation d'ouverture, d'enregistrement et de fermeture de fichiers

Dimidim

XLDnaute Nouveau
Bonjour,
je dois faire du traitement de données d'expérience sous excel 2010 et 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 (s'il n'y a plus de fichier BA... mais BC...ou BD... par expl) 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 ?

Merci
 

Staple1600

XLDnaute Barbatruc
Re : macro d'automatisation d'ouverture, d'enregistrement et de fermeture de fichiers

Bonsoir

Fais toutes les manipulations que tu décris en lançant l'enregistreur de macros.

Ainsi tu auras un code VBA de départ qu'il ne restera plus qu'à amender.

PS: c'est au demandeur de fournir un fichier exemple pas aux "répondeurs" ;)
 

Dimidim

XLDnaute Nouveau
Re : macro d'automatisation d'ouverture, d'enregistrement et de fermeture de fichiers

Voilà ce que j'ai déjà réussi à faire avec l’enregistreur :


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
 
Dernière édition:

Dimidim

XLDnaute Nouveau
Re : macro d'automatisation d'ouverture, d'enregistrement et de fermeture de fichiers

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

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16