Macro ouverture Fichier puis enregistrement : Comment la simplifier ?

mattwarend

XLDnaute Junior
Bonjour à tous,

J'utilise une macro pour ouvrir un fichier .txt, faire un mise en page, et sélectionner une ligne précise (emplacement UNC) :

Code:
Rows("3:3").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:="<>\\eufrhqfs02wp\USERS\Actuaria", _

puis enregistrer mon fichier modifié dans ce même emplacement :

Code:
     ChDir "P:\Actuaria\ZXFILES_REPORT"
    ActiveWorkbook.SaveAs Filename:="P:\Actuaria\ZXFILES_REPORT\Quota.xls" _
        , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWindow.Close
    Application.DisplayAlerts = True


Je souhaiterais maintenant pouvoir rendre cette macro adaptative (sur un autre serveur, avec d'autres emplacements).
Je ne sais pas du tout par où commencer ni comment procéder.

Voici mon code complet pour info.

Code:
Sub auto_open()

    ChDir "C:\Documents and Settings\admincot\Desktop"
    Workbooks.OpenText Filename:="\\Eufrhqfs02wp\quotalog\Usage.txt", Origin:= _
        xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), TrailingMinusNumbers:=True

    Rows("1:5").Select
    Range("A5").Activate
    Selection.Delete Shift:=xlUp
    Range("A1").Select
    
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _
        TrailingMinusNumbers:=True
   
    Range("A3:A3000").Select
    ActiveWindow.ScrollRow = 3000
    ActiveWindow.ScrollRow = 1
    
    'Selection.TextToColumns Destination:=Range("A3"), AMOType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _
        TrailingMinusNumbers:=True
        
    Rows("3:3").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:="<>\\eufrhqfs02wp\USERS\Actuaria", _
        Operator:=xlAnd
    Selection.ClearContents
    Range("A3:A3000").Select
    ActiveWindow.ScrollRow = 3000
    ActiveWindow.ScrollRow = 1
If WorksheetFunction.CountA(Cells) = 0 Then
MsgBox "Feuille vide !"
Exit Sub
End If
With ActiveSheet.UsedRange
LastRow = .Cells(.Cells.Count).Row
End With
For R = LastRow To 1 Step -1
If WorksheetFunction.CountA(Rows(R)) = 0 Then
Rows(R).Delete
End If
Next R
Range("A1:E2").Select
    Range("E2").Activate
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
End With
On Error Resume Next
    Range("A1:E1").Select
    Range("E1").Activate
    Selection.Font.Bold = True
    Columns("A:A").EntireColumn.AutoFit
    Columns("B:B").EntireColumn.AutoFit
    Columns("C:C").EntireColumn.AutoFit
    Columns("D:D").EntireColumn.AutoFit
    Columns("E:E").EntireColumn.AutoFit
    Range("A1").Select
        Application.DisplayAlerts = False
    ChDir "P:\Actuaria\ZXFILES_REPORT"
    ActiveWorkbook.SaveAs Filename:="P:\Actuaria\ZXFILES_REPORT\Quota.xls" _
        , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWindow.Close
    Application.DisplayAlerts = True
    
  
      ChDir "C:\Documents and Settings\admincot\Desktop"
    Workbooks.OpenText Filename:="\\Eufrhqfs02wp\quotalog\Usage.txt", Origin:= _
        xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), TrailingMinusNumbers:=True

    Rows("1:5").Select
    Range("A5").Activate
    Selection.Delete Shift:=xlUp
    Range("A1").Select
    
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _
        TrailingMinusNumbers:=True
   
    Range("A3:A3000").Select
    ActiveWindow.ScrollRow = 3000
    ActiveWindow.ScrollRow = 1
    
    'Selection.TextToColumns Destination:=Range("A3"), AMOType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _
        TrailingMinusNumbers:=True
        
    Rows("3:3").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:="<>\\eufrhqfs02wp\USERS\ADMINIST", _
        Operator:=xlAnd
    Selection.ClearContents
    Range("A3:A3000").Select
    ActiveWindow.ScrollRow = 3000
    ActiveWindow.ScrollRow = 1
If WorksheetFunction.CountA(Cells) = 0 Then
MsgBox "Feuille vide !"
Exit Sub
End If
With ActiveSheet.UsedRange
LastRow = .Cells(.Cells.Count).Row
End With
For R = LastRow To 1 Step -1
If WorksheetFunction.CountA(Rows(R)) = 0 Then
Rows(R).Delete
End If
Next R
Range("A1:E2").Select
    Range("E2").Activate
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
End With
On Error Resume Next
    Range("A1:E1").Select
    Range("E1").Activate
    Selection.Font.Bold = True
    Columns("A:A").EntireColumn.AutoFit
    Columns("B:B").EntireColumn.AutoFit
    Columns("C:C").EntireColumn.AutoFit
    Columns("D:D").EntireColumn.AutoFit
    Columns("E:E").EntireColumn.AutoFit
    Range("A1").Select
        Application.DisplayAlerts = False
    ChDir "P:\ADMINIST\ZXFILES_REPORT"
    ActiveWorkbook.SaveAs Filename:="P:\ADMINIST\ZXFILES_REPORT\Quota.xls" _
        , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWindow.Close
    Application.DisplayAlerts = True

Excel.Application.Quit
    End Sub
 

Pièces jointes

  • Macro.zip
    9.2 KB · Affichages: 63
  • Macro.zip
    9.2 KB · Affichages: 66
  • Macro.zip
    9.2 KB · Affichages: 60
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 755
Messages
2 091 721
Membres
105 057
dernier inscrit
Zepp1502