Macro pour ouvrir fichier excel

Résolu
Bonjour,

Voici le contexte de ma question: j'ai crée 3 macros sous excel, et la 3eme fait appel a des données situées dans un autres fichier excel.
J'aimerais donc savoir comment créee une macro permettant d'ouvrir ce fichier excel nécessaire à la 3eme macro en meme temps que celle ci, afin d'éviter de devoir a chaque fois penser a ouvrir le fichier excel nécessaire.
En gros que dois je rajouter a ma macro n°3 pour qu'en la lancant se lance également le fichier excel necessaire à son bon fonctionnement...

J'espère avoir été suffisamment clair,

merci pour vos réponses !

bonne journée:
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. une instructio du style

    Workbooks.Open Filename:=Chemin & "\" & Fichier, local:=True

    devrait aller
    3
    1. euuhh comment dire je pense que tu as compris ce que je cherchais mais je pense que je n'ai pas compris ce que tu m'as expliqué.. qu'est ce que "titi" et "machin" ?

      si je veux que le classeur principal sur lequel les macros s'appliquent est Open_parts_return_requests_28-04-2008.xls
      tandis que celui qui s'ouvre tout seul par la macro que tu m'as expliqué s'appelle table de conversion 2.xls

      alors le scrpit serait

      Open_parts_return_requests_28-04-2008.xls=ActiveWorkbook.Open_parts_return_requests_28-04-2008.xls

      Workbooks.Openfilename:=C:\Documents and Settings\aolivero\Bureau\Projet fichier SAP\Open_parts_return_requests_28-04-2008.xls

      Workbook(Open_parts_return_requests_28-04-2008.xls).Activate

      J'ai bien compris??!

      Dans ce cas je met ou ce script?
      dans la macro, a la suite de la commande pour l'ouverture automatique du table de conversion 2.xls c ca?!

      Merci beaucoup !

      PS: j'ai l'impression que ce que tu m'as ecrit est bancal: titi est definit comme actif au départ
      puis tu devrais activer en fait celui qu'on veur (le principal) mais tu finis avec l'activation de titi...c'est bizarre...mais peut etre n'ai je pas tout compris:! lol
      3
      1. Donc

        titi = ActiveWorkbook.Name 'je memorise le classeur actif (celui ou je veux que les macros s executent) dans la variable titi

        Workbooks.Open Filename:="E:\machin.xls" ' j ouvre le fichier qui ne manque (celui qui contient ta bdd)

        Windows(titi).Activate ' et je reactive le classeur ou j etais avant l ouverture de ma bdd

        Comme je te l'ai dit tu mets ce bout de code n'importe ou dans ta macro.
        0
    2. ok mais ca marche pas bien.. je dois taper texto

      titi = ActiveWorkbook.Name
      Workbooks.Open Filename:="C:\Documents and Settings\aolivero\Bureau\Projet fichier SAP\table de conversion 2.xls"
      Windows(titi).Activate

      sans jamis lui écrire le classeur actif à savoir Open_parts_return_requests_28-04-2008.xls ?

      Parce que la a priori le table de conversion 2 s'ouvre bien tt seul et apparait a l ecran, mais survient apres un mess d'erreur, ciomprends pas pkoi...
      A priori l'erreur provient du fait que le PERSONAL.XLS est masqué ou non... a l'ouverture du fichier principal
      Open_parts_return_requests_28-04-2008.xls lorsqu'il l'est masqué ca déconne mais lorsqu'il est afficher ca marche....va comprendre

      l'erreur est celle la
      ActiveWorkbook.Worksheets("P0090_Overview_outstanding_clai").AutoFilter.Sort. _
      SortFields.Clear

      Merci pour ta precieuse aide!
      1
      1. c'est bien les 3 lignes de code que tu dois mettre, mais il faut que tu les inseres dans ta macro a un endroit qui correpond a un momemt ou le classeur actif est celui dans lequel tu fais toutes tes operations.

        Sinon, je ne vois pas pourquoi cela ne marcherais pas
        0
    3. bonjour zavenger (encore!)

      Mon nom de fichier est "table de conversion 2.xls et l'emplacmement est
      "C:\Documents and Settings\aolivero\Bureau\Projet fichier SAP"

      ca donnerait quoi alors?!

      et il faut le glisser ou ce code? dans le script ss VB da la macro?. avant ou aprés sub?

      le script pour la macro 3 étant le suivant :

      Sub tricolonne_nomfrancais_ordonne()
      '
      ' trigéné Macro
      '
      ' Touche de raccourci du clavier: Ctrl+Maj+E
      '
      Range("A:A,E:E,F:F,I:I,H:H").Select
      Range("H1").Activate
      ActiveWindow.ScrollColumn = 2
      ActiveWindow.ScrollColumn = 3
      ActiveWindow.ScrollColumn = 4
      ActiveWindow.ScrollColumn = 5
      ActiveWindow.ScrollColumn = 6
      ActiveWindow.ScrollColumn = 7
      ActiveWindow.ScrollColumn = 8
      Range("A:A,E:E,F:F,I:I,H:H,L:L,M:M,N:N,O:O").Select
      Range("O1").Activate
      Selection.Delete Shift:=xlToLeft
      Range("J:J,I:I").Select
      Range("I1").Activate
      Selection.Delete Shift:=xlToLeft
      ActiveWindow.ScrollColumn = 7
      ActiveWindow.ScrollColumn = 6
      ActiveWindow.ScrollColumn = 5
      ActiveWindow.ScrollColumn = 4
      ActiveWindow.ScrollColumn = 3
      ActiveWindow.ScrollColumn = 2
      ActiveWindow.ScrollColumn = 1
      ActiveWorkbook.Worksheets("P0090_Overview_outstanding_clai").AutoFilter.Sort. _
      SortFields.Clear
      ActiveWorkbook.Worksheets("P0090_Overview_outstanding_clai").AutoFilter.Sort. _
      SortFields.Add Key:=Range("B1:B80"), SortOn:=xlSortOnValues, Order:= _
      xlAscending, DataOption:=xlSortTextAsNumbers
      With ActiveWorkbook.Worksheets("P0090_Overview_outstanding_clai").AutoFilter. _
      Sort
      .Header = xlYes
      .MatchCase = False
      .Orientation = xlTopToBottom
      .SortMethod = xlPinYin
      .Apply
      End With
      ActiveWindow.SmallScroll Down:=-9
      Range("A1").Select
      ActiveCell.FormulaR1C1 = "code distributeur"
      With ActiveCell.Characters(Start:=1, Length:=17).Font
      .Name = "Arial"
      .FontStyle = "Normal"
      .Size = 10
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ColorIndex = 1
      .TintAndShade = 0
      .ThemeFont = xlThemeFontNone
      End With
      Range("B1").Select
      ActiveCell.FormulaR1C1 = "code vendeur"
      With ActiveCell.Characters(Start:=1, Length:=12).Font
      .Name = "Arial"
      .FontStyle = "Normal"
      .Size = 10
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ColorIndex = 1
      .TintAndShade = 0
      .ThemeFont = xlThemeFontNone
      End With
      Range("C1").Select
      ActiveCell.FormulaR1C1 = "numéro garantie"
      With ActiveCell.Characters(Start:=1, Length:=15).Font
      .Name = "Arial"
      .FontStyle = "Normal"
      .Size = 10
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ColorIndex = 1
      .TintAndShade = 0
      .ThemeFont = xlThemeFontNone
      End With
      Range("D1").Select
      ActiveCell.FormulaR1C1 = "numéro chassis"
      With ActiveCell.Characters(Start:=1, Length:=14).Font
      .Name = "Arial"
      .FontStyle = "Normal"
      .Size = 10
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ColorIndex = 1
      .TintAndShade = 0
      .ThemeFont = xlThemeFontNone
      End With
      Range("E1").Select
      ActiveCell.FormulaR1C1 = "nom panne"
      With ActiveCell.Characters(Start:=1, Length:=9).Font
      .Name = "Arial"
      .FontStyle = "Normal"
      .Size = 10
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ColorIndex = 1
      .TintAndShade = 0
      .ThemeFont = xlThemeFontNone
      End With
      Range("F1").Select
      ActiveCell.FormulaR1C1 = "date panne"
      With ActiveCell.Characters(Start:=1, Length:=10).Font
      .Name = "Arial"
      .FontStyle = "Normal"
      .Size = 10
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ColorIndex = 1
      .TintAndShade = 0
      .ThemeFont = xlThemeFontNone
      End With
      Range("G1").Select
      ActiveCell.FormulaR1C1 = "date demande pièce"
      With ActiveCell.Characters(Start:=1, Length:=18).Font
      .Name = "Arial"
      .FontStyle = "Normal"
      .Size = 10
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ColorIndex = 1
      .TintAndShade = 0
      .ThemeFont = xlThemeFontNone
      End With
      Range("H1").Select
      ActiveCell.FormulaR1C1 = "date limite d'envoi TMA"
      With ActiveCell.Characters(Start:=1, Length:=23).Font
      .Name = "Arial"
      .FontStyle = "Normal"
      .Size = 10
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ColorIndex = 1
      .TintAndShade = 0
      .ThemeFont = xlThemeFontNone
      End With
      Range("H2").Select
      ActiveWindow.ScrollColumn = 1
      Columns("A:A").Select
      Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
      End Sub
      Sub rajoute_numéro_compte_client_MME()
      '
      ' insertcolonncomptemme Macro
      '
      ' Touche de raccourci du clavier: Ctrl+Maj+F
      '
      ActiveCell.FormulaR1C1 = "n°compte MME"
      With ActiveCell.Characters(Start:=1, Length:=12).Font
      .Name = "Arial"
      .FontStyle = "Normal"
      .Size = 10
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ColorIndex = 1
      .TintAndShade = 0
      .ThemeFont = xlThemeFontNone
      End With
      Range("A2").Select
      ActiveCell.FormulaR1C1 = _
      "=VLOOKUP(RC[2],'table de conversion 2.xls'!R2C1:R199C4,2,FALSE)"
      Columns("C:C").Select
      Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
      TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
      Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
      :=Array(1, 1), TrailingMinusNumbers:=True
      ActiveWindow.ScrollRow = 5
      ActiveWindow.ScrollRow = 12
      ActiveWindow.ScrollRow = 19
      ActiveWindow.ScrollRow = 22
      ActiveWindow.ScrollRow = 33
      ActiveWindow.ScrollRow = 40
      ActiveWindow.ScrollRow = 43
      ActiveWindow.ScrollRow = 50
      ActiveWindow.ScrollRow = 57
      ActiveWindow.ScrollRow = 61
      ActiveWindow.ScrollRow = 68
      ActiveWindow.ScrollRow = 71
      ActiveWindow.ScrollRow = 75
      ActiveWindow.ScrollRow = 82
      ActiveWindow.ScrollRow = 85
      ActiveWindow.ScrollRow = 92
      ActiveWindow.ScrollRow = 96
      ActiveWindow.ScrollRow = 103
      ActiveWindow.ScrollRow = 107
      ActiveWindow.ScrollRow = 110
      ActiveWindow.ScrollRow = 114
      ActiveWindow.ScrollRow = 121
      ActiveWindow.ScrollRow = 124
      ActiveWindow.ScrollRow = 131
      ActiveWindow.ScrollRow = 135
      ActiveWindow.ScrollRow = 142
      ActiveWindow.ScrollRow = 149
      ActiveWindow.ScrollRow = 152
      ActiveWindow.ScrollRow = 156
      ActiveWindow.ScrollRow = 159
      ActiveWindow.ScrollRow = 163
      ActiveWindow.ScrollRow = 166
      ActiveWindow.ScrollRow = 170
      ActiveWindow.ScrollRow = 173
      ActiveWindow.ScrollRow = 177
      ActiveWindow.ScrollRow = 180
      ActiveWindow.ScrollRow = 184
      ActiveWindow.ScrollRow = 187
      ActiveWindow.ScrollRow = 191
      ActiveWindow.ScrollRow = 187
      ActiveWindow.ScrollRow = 180
      ActiveWindow.ScrollRow = 177
      ActiveWindow.ScrollRow = 173
      ActiveWindow.ScrollRow = 170
      ActiveWindow.ScrollRow = 166
      ActiveWindow.ScrollRow = 163
      ActiveWindow.ScrollRow = 159
      ActiveWindow.ScrollRow = 156
      ActiveWindow.ScrollRow = 152
      ActiveWindow.ScrollRow = 149
      ActiveWindow.ScrollRow = 145
      ActiveWindow.ScrollRow = 142
      ActiveWindow.ScrollRow = 138
      ActiveWindow.ScrollRow = 135
      ActiveWindow.ScrollRow = 131
      ActiveWindow.ScrollRow = 128
      ActiveWindow.ScrollRow = 124
      ActiveWindow.ScrollRow = 121
      ActiveWindow.ScrollRow = 117
      ActiveWindow.ScrollRow = 114
      ActiveWindow.ScrollRow = 110
      ActiveWindow.ScrollRow = 107
      ActiveWindow.ScrollRow = 103
      ActiveWindow.ScrollRow = 99
      ActiveWindow.ScrollRow = 96
      ActiveWindow.ScrollRow = 92
      ActiveWindow.ScrollRow = 89
      ActiveWindow.ScrollRow = 85
      ActiveWindow.ScrollRow = 82
      ActiveWindow.ScrollRow = 78
      ActiveWindow.ScrollRow = 75
      ActiveWindow.ScrollRow = 71
      ActiveWindow.ScrollRow = 68
      ActiveWindow.ScrollRow = 64
      ActiveWindow.ScrollRow = 61
      ActiveWindow.ScrollRow = 57
      ActiveWindow.ScrollRow = 54
      ActiveWindow.ScrollRow = 50
      ActiveWindow.ScrollRow = 47
      ActiveWindow.ScrollRow = 43
      ActiveWindow.ScrollRow = 40
      ActiveWindow.ScrollRow = 36
      ActiveWindow.ScrollRow = 33
      ActiveWindow.ScrollRow = 29
      ActiveWindow.ScrollRow = 26
      ActiveWindow.ScrollRow = 22
      ActiveWindow.ScrollRow = 19
      ActiveWindow.ScrollRow = 15
      ActiveWindow.ScrollRow = 12
      ActiveWindow.ScrollRow = 8
      ActiveWindow.ScrollRow = 5
      ActiveWindow.ScrollRow = 1
      Range("A2").Select
      Selection.AutoFill Destination:=Range("A2:A3"), Type:=xlFillDefault
      Range("A2:A3").Select
      Selection.AutoFill Destination:=Range("A2:A18"), Type:=xlFillDefault
      Range("A2:A18").Select
      Selection.AutoFill Destination:=Range("A2:A80"), Type:=xlFillDefault
      Range("A2:A80").Select
      Range("B44:B45").Select
      ActiveWindow.SmallScroll Down:=-66
      Range("A2").Select
      End Sub

      Merci encore et encore ! !

      Bonne journée:
      0
      1. Workbooks.Open Filename:="C:\Documents and Settings\aolivero\Bureau\Projet fichier SAP\table de conversion 2.xls", local:=True

        Et tu le mets en debut de la premiere que tu appelles. Attention, il te faudra reselectionner le classeur de travail, car le classeur actif sera celui qui va s'ouvrir.
        0
    4. ok c'est parfait ca marche! juste pour info on peut faire un truc simple pour que le changment de classeur s'effectue lui aussi automatiquement?!

      Merci beaucoup pour ta patience et ton professionnalisme!
      0
      1. titi = ActiveWorkbook.Name
        Workbooks.Open Filename:="E:\machin.xls"
        Windows(titi).Activate

        si c'est la question?
        0
    5. Merci pour ttes ces réponses mais ca ne marche toujours pas

      La première macro me supprime certaines lignes ne contenant pas un mot clé dans une colonne dans le fichier Open_parts_return_requests_28-04-­2008.xls et m'ouvre le fichier table de conversion 2.xls nécessaire au fonctionnement de la 2eme macro

      Cette derniere tri ordonne et renomme les colonnes du 1er fichier tout en insérant une colonne vierge

      La derniere macro a l'aide de la fct recherchev permet d'importer une colonne de table de conversion 2.xls dans Open_parts_return_requests_28-04-­2008.xls

      Je voudrais donc simplement qu'entre la 1ere et la 2eme macro se fasse un changement de classeur actif cad que table de conversion 2.xls qui apparait ds la macro 1 devienne inactif et que Open_parts_return_requests_28-04-­2008.xls redeveinne actif de facon à ce que la macro 2 fonctionne directement derrière ...

      Surement est ce plus clair mais aprés différents essais ca ne fontionne toujours pas

      voila le script de la prmiere macro

      Sub efface_ligne_étranger()
      Dim i As Integer
      i = 2
      Application.ScreenUpdating = False
      Do While Cells(i, 2) <> ""
      If (Cells(i, 2) <> 241) Then
      Cells(i, 1).EntireRow.Delete
      Else
      i = i + 1
      End If
      Loop
      Application.ScreenUpdating = True

      Workbooks.Open Filename:="C:\Documents and Settings\aolivero\Bureau\Projet fichier SAP\table de conversion 2.xls"

      End Sub

      qui fait ce que je veux et fait apparaitre table de conversion 2.xls
      et pour lancer la 2eme macro il faut revenir sur le classeur Open_parts_return_requests_28-04-­2008.xls en cliquant dessus.

      aprés la 3eme macro fonctionne correctement..

      du coup je ne sais pas ou insérer le fameux code...

      Merci beaucoup de ton aide:
      0
      1. Sub efface_ligne_étranger()
        Dim i As Integer
        i = 2
        Application.ScreenUpdating = False
        Do While Cells(i, 2) <> ""
        If (Cells(i, 2) <> 241) Then
        Cells(i, 1).EntireRow.Delete
        Else
        i = i + 1
        End If
        Loop
        Application.ScreenUpdating = True

        titi = ActiveWorkbook.Name
        Workbooks.Open Filename:="C:\Documents and Settings\aolivero\Bureau\Projet fichier SAP\table de conversion 2.xls"
        Windows(titi).Activate

        End Sub
        0
    6. Ecoute c'est parfait merci ! !
      j'ai eu 2 - 3 petits soucis mais a priori tout tourne bien maintenant ! !

      Mille mille merci, t'es vraiment un patron en Excel!

      Bonn journée big boss!

      A bientôt!
      0