Bonjour je suis débutant en VBA, j'ai donc construit ma macro avec l'enregistreur de macro et avec des choses trouvés sur ce forum.
J'ai déja posé quelques questions sur cette macro et j'ai finalement trouvé des solutions. MAis comme je suis débutant et dans le but de mieux comprendre, si quelqu'un pouvait répondre a ma question sur un autre fil qui traite de la même macro ça serait très apprécié
Lien supprimé
Il y aurait également encore 2 amélioration que j'aimerais apporter à la macro.
1) Lorsqu'il n'y a pas de fichiers dans le répertoire choisi j'aimerais que la macro arrête immédiatement après le message qu' aucun fichier n'a été trouvé.
ca doit avoir rapport avec un end if ou quelque chose comme ça
2) Lorsque la fenêtre s'ouvre pour choisir le répertoire si je fais annulé j'ai un message d'erreur. Il y a t'il un moyen pour que la macro stop et que la fênetre se ferme.
j'ai copié la macro plus bas
merci d'avance pour vos réponses
Sub Lecture_Resis()
'
'
Set fichcherche = Application.FileSearch
With fichcherche
.LookIn = GetDirectory
.Filename = '*.z'
If .Execute > 0 Then
MsgBox .FoundFiles.Count & 'Fichiers ont été trouvés'
Workbooks.Add
For I = 1 To .FoundFiles.Count
Workbooks.OpenText Filename:=.FoundFiles(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)
Rows('1:3').Select
Selection.Delete Shift:=xlUp
Rows('3:136').Select
Selection.Delete Shift:=xlUp
Rows('4:4').Select
Selection.Delete Shift:=xlUp
Columns('B😀').Select
Selection.Delete Shift:=xlToLeft
ActiveSheet.Range('b1') = ActiveSheet.Name
Range('A:C').Select
Selection.Copy
Windows('zview_macro.xls').Activate
Sheets('calcul').Activate
Range('A:C').Select
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
For Each Wk In Workbooks
If Wk.Name <> ThisWorkbook.Name Then
Wk.Close savechanges:=False
End If
Next Wk
With Worksheets('calcul')
Application.CutCopyMode = True
.Range('o65536').End(xlUp).Offset(1, 0).Value = .Range('a1').Value
.Range('o65536').End(xlUp).Offset(0, 1).Value = .Range('b1').Value
.Range('o65536').End(xlUp).Offset(0, 2).Value = .Range('a2').Value
.Range('o65536').End(xlUp).Offset(0, 3).Value = .Range('m37').Value
.Range('o65536').End(xlUp).Offset(0, 4).Value = .Range('n37').Value
End With
On Error Resume Next
Next I
Else
MsgBox 'Aucun fichier n'a ete trouve'
End If
End With
Sheets('résultats').Select
Columns('A:e').Select
Selection.Sort Key1:=Range('c1'), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Sheets('Macro').Select
Sheets('Macro').Activate
ActiveWindow.SelectedSheets.Visible = False
Sheets('résultats').Select
Range('f1').Select
sPath = Range('f1').Value
If Right(sPath, 1) <> '\\' Then sPath = sPath & '\\'
ActiveWorkbook.SaveAs sPath & ActiveSheet.Range('g1').Value
End Sub
Message édité par: chemist, à: 05/08/2005 06:13
J'ai déja posé quelques questions sur cette macro et j'ai finalement trouvé des solutions. MAis comme je suis débutant et dans le but de mieux comprendre, si quelqu'un pouvait répondre a ma question sur un autre fil qui traite de la même macro ça serait très apprécié
Lien supprimé
Il y aurait également encore 2 amélioration que j'aimerais apporter à la macro.
1) Lorsqu'il n'y a pas de fichiers dans le répertoire choisi j'aimerais que la macro arrête immédiatement après le message qu' aucun fichier n'a été trouvé.
ca doit avoir rapport avec un end if ou quelque chose comme ça
2) Lorsque la fenêtre s'ouvre pour choisir le répertoire si je fais annulé j'ai un message d'erreur. Il y a t'il un moyen pour que la macro stop et que la fênetre se ferme.
j'ai copié la macro plus bas
merci d'avance pour vos réponses
Sub Lecture_Resis()
'
'
Set fichcherche = Application.FileSearch
With fichcherche
.LookIn = GetDirectory
.Filename = '*.z'
If .Execute > 0 Then
MsgBox .FoundFiles.Count & 'Fichiers ont été trouvés'
Workbooks.Add
For I = 1 To .FoundFiles.Count
Workbooks.OpenText Filename:=.FoundFiles(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)
Rows('1:3').Select
Selection.Delete Shift:=xlUp
Rows('3:136').Select
Selection.Delete Shift:=xlUp
Rows('4:4').Select
Selection.Delete Shift:=xlUp
Columns('B😀').Select
Selection.Delete Shift:=xlToLeft
ActiveSheet.Range('b1') = ActiveSheet.Name
Range('A:C').Select
Selection.Copy
Windows('zview_macro.xls').Activate
Sheets('calcul').Activate
Range('A:C').Select
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
For Each Wk In Workbooks
If Wk.Name <> ThisWorkbook.Name Then
Wk.Close savechanges:=False
End If
Next Wk
With Worksheets('calcul')
Application.CutCopyMode = True
.Range('o65536').End(xlUp).Offset(1, 0).Value = .Range('a1').Value
.Range('o65536').End(xlUp).Offset(0, 1).Value = .Range('b1').Value
.Range('o65536').End(xlUp).Offset(0, 2).Value = .Range('a2').Value
.Range('o65536').End(xlUp).Offset(0, 3).Value = .Range('m37').Value
.Range('o65536').End(xlUp).Offset(0, 4).Value = .Range('n37').Value
End With
On Error Resume Next
Next I
Else
MsgBox 'Aucun fichier n'a ete trouve'
End If
End With
Sheets('résultats').Select
Columns('A:e').Select
Selection.Sort Key1:=Range('c1'), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Sheets('Macro').Select
Sheets('Macro').Activate
ActiveWindow.SelectedSheets.Visible = False
Sheets('résultats').Select
Range('f1').Select
sPath = Range('f1').Value
If Right(sPath, 1) <> '\\' Then sPath = sPath & '\\'
ActiveWorkbook.SaveAs sPath & ActiveSheet.Range('g1').Value
End Sub
Message édité par: chemist, à: 05/08/2005 06:13