Amelioration code

Bonsoir a tous je sollicite votre aide afin de m'arranger ce code car je l'ai fait avec enregistrement de macro mais me semble un peux trop charger a mon avis

alors avec expertise merci de m'aider

bonne soiree

Sub Automatisation()

Application.ScreenUpdating = False

range("A1:C1").Select
    Selection.AutoFilter
    ActiveSheet.range("a1:c1").AutoFilter Field:=2, Criteria1:=Array( _
        "FedEx 2Day Service", "Int'l Economy", "Int'l Economy BOX", _
        "Int'l Economy Freight", "Int'l Economy Letter", "Int'l Economy Pak", _
        "Overnight Freight", "Priority Box", "Priority Letter", "Priority Overnight", _
        "Priority Pak"), Operator:=xlFilterValues
    ActiveSheet.range("c1:c3").AutoFilter Field:=3, Criteria1:="="
     range("A1:B1").Select

     range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Windows("Résultats combinés(2017-11-29 111633)Final.xlsx").Activate
    range("C8").Select
    Workbooks.Open filename:= _
        "C:\Users\252100\Videos\Henri\mass etry\11092017 EU1TemplateXLS1.xlsm"
    ActiveWindow.Visible = False
    Windows("11092017 EU1TemplateXLS1.xlsm").Visible = True
    Application.Goto Reference:="hipvshop!R1C1"
    ActiveSheet.Paste
    range("A2").Select
    range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Résultats combinés(2017-11-29 111633)Final.xlsx").Activate
    range("C20").Select
    Workbooks.Open filename:= _
        "C:\Users\252100\Videos\Henri\mass etry\FWS MassEntry - CreateCONS v3.8.xlsm"
    ActiveWindow.Visible = False
    Windows("FWS MassEntry - CreateCONS v3.8.xlsm").Visible = True
    Application.Goto Reference:="ChildAWBs!R1C1"
    ActiveSheet.Paste
    Windows("Résultats combinés(2017-11-29 111633)Final.xlsx").Activate
    range("C18").Select
    Windows("FWS MassEntry - CreateCONS v3.8.xlsm").Activate
    Application.Goto Reference:="CONSData!R1C1"

    Application.ScreenUpdating = True
End Sub

Bonsoir,

Tu commences par faire disparaître tous les Select, et qualifier tes expressions (faisant référer tes Range à la feuille à laquelle il appartiennent, laquelle est à mettre le cas échéant sous bloc With). On pourra voir le reste ensuite.

Remarque: l'assistant VBA met automatiquement en majuscule l'initiale des mots clés du langage, or on trouve partout dans ton code range au lieu de Range, ce qui pose un petit problème sur la raison de cette anomalie... ?

Bonsoir, MFerrand,

J'ai suivi tes conseils concernant tous les range de mon code par contre pour le reste je ne sais pas comment faire

alors j'aurais besoins de tes caonnaissances.

Merci

Remets ton code actuel...

Sub Automatisation()

Application.ScreenUpdating = False

range("A1:C1").Select
    Selection.AutoFilter
    ActiveSheet.range("a1:c1").AutoFilter Field:=2, Criteria1:=Array( _
        "FedEx 2Day Service", "Int'l Economy", "Int'l Economy BOX", _
        "Int'l Economy Freight", "Int'l Economy Letter", "Int'l Economy Pak", _
        "Overnight Freight", "Priority Box", "Priority Letter", "Priority Overnight", _
        "Priority Pak"), Operator:=xlFilterValues
    ActiveSheet.range("c1:c3").AutoFilter Field:=3, Criteria1:="="

     range("A1:B1").range(Selection, Selection.End(xlDown)).Copy

    Windows("Résultats combinés(2017-11-29 111633)Final.xlsx").Activate
    range("C8").Select
    Workbooks.Open filename:= _
        "C:\Users\252100\Videos\Henri\mass etry\11092017 EU1TemplateXLS1.xlsm"
    ActiveWindow.Visible = False
    Windows("11092017 EU1TemplateXLS1.xlsm").Visible = True
    Application.Goto Reference:="hipvshop!R1C1"
    ActiveSheet.Paste
  range("A2").Selection.End(xlDown).Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Résultats combinés(2017-11-29 111633)Final.xlsx").Activate
    range("C20").Select
    Workbooks.Open filename:= _
        "C:\Users\252100\Videos\Henri\mass etry\FWS MassEntry - CreateCONS v3.8.xlsm"
    ActiveWindow.Visible = False
    Windows("FWS MassEntry - CreateCONS v3.8.xlsm").Visible = True
    Application.Goto Reference:="ChildAWBs!R1C1"
    ActiveSheet.Paste
    Windows("Résultats combinés(2017-11-29 111633)Final.xlsx").Activate
    range("C18").Select
    Windows("FWS MassEntry - CreateCONS v3.8.xlsm").Activate
    Application.Goto Reference:="CONSData!R1C1"

    Application.ScreenUpdating = True
End Sub

voila j' ai 2 modification par contre le reste j ai pas touche car je crains que me code ne fonctionne plus par contre

j ai remarque que certaains Range exmple : "range("C18").Select "cela je ne peux pas toucher car il permet de selectionner la feuille dans mon classeur combines , de plus le code " Windows("Résultats combinés(2017-11-29 111633)Final.xlsx").Activate"est ce utile de mettre windows au debut .

je sais rame en vba mais j'essaye d'apprendre ce language .

Merci

En guise de suppression des Select, il me semble qu'il y en a toujours autant !

Juste pour illustration, j'écrirais au moins comme ceci :

Sub Automatisation()
    Dim crit, Fich$
    crit = Array("FedEx 2Day Service", "Int'l Economy", "Int'l Economy BOX", _
     "Int'l Economy Freight", "Int'l Economy Letter", "Int'l Economy Pak", "Overnight Freight", _
     "Priority Box", "Priority Letter", "Priority Overnight", "Priority Pak")
    Application.ScreenUpdating = False
    With ThisWorkbook.ActiveSheet
        If .FilterMode Then .ShowAllData
        With .Range("A1:C1")
            .AutoFilter 2, crit, xlFilterValues
            .AutoFilter 3, "="
        End With
        .Range(.Cells(1, 1), .Cells(1, 2).End(xlDown)).Copy
    End With
    Fich = "C:\Users\252100\Videos\Henri\mass etry\11092017 EU1TemplateXLS1.xlsm"
    With Workbooks.Open(Fich).Worksheets("hipvshop")
        .Paste .Range("A1")
        .Range(.Cells(2, 1), .Cells(2, 1).End(xlDown)).Copy
    End With
    Fich = "C:\Users\252100\Videos\Henri\mass etry\FWS MassEntry - CreateCONS v3.8.xlsm"
    With Workbooks.Open(Fich).Worksheets("ChildAWBs")
        .Paste .Range("A1")
    End With
End Sub

C'est sous toutes réserves de ne pas m'être perdu dans tes sélections successives... Il n'est donc pas dit que ce code fasse exactement ce que tu attends. Pour écrire un code, il est préférable de partir des indications précises de ce qui est à faire, sur le fichier...

Ceci dit, si les Select et tout ce qui y ressemble a disparu, ce code ne m'agrée pas complètement :

  • d'une part on ouvre deux classeurs que l'on ne referme pas,
  • et j'aurais préféré procéder autrement que par copier-coller, mais je l'ai maintenu dans le doute que ta volonté soit de coller également les formats...
  • d'autre part le filtrage initial m'interroge, dans la mesure où si des lignes sont masquées par filtrage elles sont tout de même copiées.

Cordialement.

je te remercie d'avoir pris le temps de m'éclairer sur ce sujet,

avec ce que tu m'a fait je vais pouvoir l'affiner .

merci et bonne journée

Rechercher des sujets similaires à "amelioration code"