Microsoft 365 Boucle Loop infinie lors écriture dans des fichier

warmich

XLDnaute Nouveau
Bonjour à tous
icon_biggrin.gif

Je vous demande une petite analyse de mon code svp !
Je veux éditer des fichiers excel xlsx contenus dans un dossier avec des sous répertoires tous nommés "FT_*****.xlsx"
Je veux choisir le dossier à partir d'un fichier xlsm "Outil.xlsm" placé juste avant le dossier contenant les fichiers FT.
Je veux écrire dans chaque fichiers, créer une nouvelle feuille, la masquer etc...
Voici mes deux problèmes :
  1. Je voudrais faire un loop sur tous les fichiers du dossier mais également des sous-dossiers.
  2. Le loop de mon code ne s'arrete pas et je ne comprends pas pourquoi.
Voici le code que j'utilise dans mon fichier "Outil.xlsm"
(J'ai mis TOUT désolé mais comme je ne sais pas encore comment trouver des erreurs dans mon code...)
Merci d'avance à Toi expert ;-)
Sébastien.

VB:
Function ChoixDossier()
On Error Resume Next
    With Application.FileDialog(msoFileDialogFolderPicker)
      .InitialFileName = ActiveWorkbook.Path & "\"
      .Show
      If .SelectedItems.Count > 0 Then
         ChoixDossier = .SelectedItems(1)
      Else
         ChoixDossier = ""
      End If
    End With
End Function
 
Sub MaJdesFichiers()
On Error Resume Next
Dim rep, nf As String
' Les fichiers doivent obligatoirement être sur C:
  rep = ChoixDossier & "\"
  nf = Dir(rep & "*.xlsx")
  Application.ScreenUpdating = False
   Do While Len(nf) > 0
 
   With Workbooks.Open(rep & nf)
 
    'Renommer la Feuille 1 et créer Feuille 2
    Sheets(1).Select
    Sheets(1).Name = "FT (Ne pas modifier)"
    Sheets.Add After:=ActiveSheet
    Sheets("Feuil1").Select
    Sheets("Feuil1").Name = "BDD"
    Sheets("FT (Ne pas modifier)").Select
    Range("A1").Select
 
 
    'Modification Mise en page Feuille 1
    Rows("1:1").Select
    With Selection.Font
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
    End With
    Rows("42:45").Select
    Range("A45").Activate
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Rows("46:49").Select
    Selection.Copy
    Rows("42:45").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Rows("46:49").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Rows("101:104").Select
    Selection.Delete Shift:=xlUp
 
 
    'Formules sur Feuille 1
    Range("A1").Select
    ActiveCell.Formula = _
        "=IFERROR(C1,IFERROR(D1,IFERROR(E1,IFERROR(F1,""Trop de Sous-Dos.""))))"
    Range("C1").Select
    ActiveCell.Formula = _
        "=IF(IFERROR(INDIRECT.EXT(""'..\[_gestionnaireFT.xlsm]DONNEES_PROJET'!F9"")="""",""""),""vrai1"",""..\"")"
    Range("D1").Select
    ActiveCell.Formula = _
        "=IF(IFERROR(INDIRECT.EXT(""'..\..\[_gestionnaireFT.xlsm]DONNEES_PROJET'!F9"")="""",""""),""vrai2"",""..\..\"")"
    Range("E1").Select
    ActiveCell.Formula = _
        "=IF(IFERROR(INDIRECT.EXT(""'..\..\..\[_gestionnaireFT.xlsm]DONNEES_PROJET'!F9"")="""",""""),""vrai3"",""..\..\..\"")"
    Range("F1").Select
    ActiveCell.Formula = _
        "=IF(IFERROR(INDIRECT.EXT(""'..\..\..\..\[_gestionnaireFT.xlsm]DONNEES_PROJET'!F9"")="""",""""),""vrai4"",""..\..\..\..\"")"
    Range("G1").Select
    ActiveCell.Formula = _
        "=LEFT(MID(CELL(""nomfichier"",A1),FIND(""["",CELL(""nomfichier"",A1))+1,999),FIND(""]"",MID(CELL(""nomfichier"",A1),FIND(""["",CELL(""nomfichier"",A1))+1,999))-1)"
    Range("F9:H9").Select
    ActiveCell.Formula = _
        "=IF(A1=""Trop de Sous-Dos."",A1,IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!F9"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!F9"")))"
    Range("O9:Q9").Select
    ActiveCell.Formula = _
        "=INDEX(BDD!A2:D1107,MATCH(G1,BDD!A2:A1107,0),2)"
    Range("S9").Select
    ActiveCell.Formula = _
        "=INDEX(BDD!A2:D1107,MATCH(G1,BDD!A2:A1107,0),3)"
    Range("Y9:AA9").Select
    ActiveCell.Formula = _
        "=INDEX(BDD!A2:D1107,MATCH(G1,BDD!A2:A1107,0),4)"
    Range("H13:AE13").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H13"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H13""))"
    Range("H14:AE14").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H14"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H14""))"
    Range("H15:AE15").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H15"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H15""))"
    Range("H16:AE16").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H16"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H16""))"
    Range("H17:AE17").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H17"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H17""))"
    Range("H18:AE18").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H18"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H18""))"
    Range("G58:Q58").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!G54"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!G54""))"
    Range("C96:L96").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C92"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C92""))"
    Range("C97:L97").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C93"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C93""))"
    Range("C98:L98").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C94"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C94""))"
    Range("C99:L99").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C95"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C95""))"
    Range("C100:L100").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C96"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C96""))"
    Range("M96:V96").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M92"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M92""))"
    Range("M97:V97").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M93"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M93""))"
    Range("M98:V98").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M94"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M94""))"
    Range("M99:V99").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M95"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M95""))"
    Range("M100:V100").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M96"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M96""))"
    Range("W96:AE96").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W92"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W92""))"
    Range("W97:AE97").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W93"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W93""))"
    Range("W98:AE98").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W94"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W94""))"
    Range("W99:AE99").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W95"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W95""))"
    Range("W100:AE100").Select
    ActiveCell.Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W96"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W96""))"
    Range("V21").Select
 
 
    'Sélection de la Feuille BDD
    Sheets("BDD").Select
 
 
    'Formules sur la Feuille BDD
    Range("A1").Select
    ActiveCell.Formula = "Fichiers - NE PAS SUPPRIMER"
    Range("B1").Select
    ActiveCell.Formula = "Numéro - NE PAS SUPPRIMER"
    Range("C1").Select
    ActiveCell.Formula = "Révision - NE PAS SUPPRIMER"
    Range("D1").Select
    ActiveCell.Formula = "Date - NE PAS SUPPRIMER"
    Range("E1").Select
    ActiveCell.Formula = "='FT (Ne pas modifier)'!A1"
    Range("A2").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!J7:J200"")"
    Range("B2").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!B7:B200"")"
    Range("C2").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!C7:C200"")"
    Range("D2").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!D7:D200"")"
    Range("A196").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!J201:J400"")"
    Range("B196").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!B201:B400"")"
    Range("C196").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!C201:C400"")"
    Range("D196").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!D201:D400"")"
    Range("A396").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!J401:J600"")"
    Range("B396").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!B401:B600"")"
    Range("C396").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!C401:C600"")"
    Range("D396").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!D401:D600"")"
    Range("A596").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!J601:J800"")"
    Range("B596").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!B601:B800"")"
    Range("C596").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!C601:C800"")"
    Range("D596").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!D601:D800"")"
    Range("A796").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!J801:J1000"")"
    Range("B796").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!B801:B1000"")"
    Range("C796").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!C801:C1000"")"
    Range("D796").Select
    ActiveCell.Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!D801:D1000"")"
 
    'Suppression des @ avant INDIRECT.EXT
 
    Cells.Replace What:="@", Replacement:="", LookAt:=xlPart, SearchOrder:= _
        xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False, _
        FormulaVersion:=xlReplaceFormula2
 
    'Mise en page Feuille BDD
    Columns("A:E").Select
    Columns("A:E").EntireColumn.AutoFit
    Range("A1").Select
    Sheets("BDD").Select
    ActiveWindow.SelectedSheets.Visible = False
 
    'Passer sur la Feuille FT
    Sheets("FT (Ne pas modifier)").Select
    Range("A1").Select
 
    'Sauver puis fermer puis Loop
    ActiveWorkbook.Save
    ActiveWorkbook.Close
   End With
   nf = Dir()
  Loop
End Sub
 
Solution
Re

Donc ensuite, je continuerai mon test étape par étape
je te laisse tester ces premières modifs
VB:
Sub MaJdesFichiers()
Dim wbk As Workbook
On Error Resume Next
Dim rep, nf As String
' Les fichiers doivent obligatoirement être sur C:
  rep = ChoixDossier & "\"
  nf = Dir(rep & "*.xlsx")
  Application.ScreenUpdating = False
   Do While Len(nf) > 0
   Set wbk = Workbooks.Open(rep & nf)
  With wbk
    .Sheets(1).Name = "FT (Ne pas modifier)"
    .Sheets.Add(After:=Sheets(wbk.Sheets.Count)).Name = "BDD"
    'Modification Mise en page Feuille 1
    .Sheets(1).Rows(1).Font.ThemeColor = xlThemeColorDark1
    .Sheets(1).Rows("44:47").Insert Shift:=xlDown
    .Sheets(1).Rows("48:49").Cut Destination:=Rows("44:45")...

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Commençons par voir si la boucle boucle ;)
VB:
Sub MaJdesFichiers()
On Error Resume Next
Dim rep, nf As String
' Les fichiers doivent obligatoirement être sur C:
  rep = ChoixDossier & "\"
  nf = Dir(rep & "*.xlsx")
  Application.ScreenUpdating = False
   Do While Len(nf) > 0
   MsgBox nf ' pour test
  nf = Dir()
  Loop
End Sub
Function ChoixDossier()
On Error Resume Next
    With Application.FileDialog(msoFileDialogFolderPicker)
      .InitialFileName = ActiveWorkbook.Path & "\"
      .Show
      If .SelectedItems.Count > 0 Then
         ChoixDossier = .SelectedItems(1)
      Else
         ChoixDossier = ""
      End If
    End With
End Function
Apparemment oui ;)
En tout cas, test OK chez moi
Maintenant étape suivante
 

Staple1600

XLDnaute Barbatruc
Re

Donc ensuite, je continuerai mon test étape par étape
je te laisse tester ces premières modifs
VB:
Sub MaJdesFichiers()
Dim wbk As Workbook
On Error Resume Next
Dim rep, nf As String
' Les fichiers doivent obligatoirement être sur C:
  rep = ChoixDossier & "\"
  nf = Dir(rep & "*.xlsx")
  Application.ScreenUpdating = False
   Do While Len(nf) > 0
   Set wbk = Workbooks.Open(rep & nf)
  With wbk
    .Sheets(1).Name = "FT (Ne pas modifier)"
    .Sheets.Add(After:=Sheets(wbk.Sheets.Count)).Name = "BDD"
    'Modification Mise en page Feuille 1
    .Sheets(1).Rows(1).Font.ThemeColor = xlThemeColorDark1
    .Sheets(1).Rows("44:47").Insert Shift:=xlDown
    .Sheets(1).Rows("48:49").Cut Destination:=Rows("44:45")
    .Sheets(1).Rows("44:45") = Rows("44:45").Value
    .Close True
   End With
  nf = Dir()
  Loop
End Sub
Ensuite il suffit d'ajouter petit à petit le reste du code et de tester au fur et à mesure
(pour trouver où cela bloque)
 

warmich

XLDnaute Nouveau
Bonjour le fil

Commençons par voir si la boucle boucle ;)
***********************************
Apparemment oui ;)
En tout cas, test OK chez moi
Maintenant étape suivante
Bonjour Staple1600 (et tous les autres XLDnautes !)
Tout d'abord, merci de ton aide généreuse.

Je retiens la démarche de Test !

ça boucle aussi chez moi c'est une bonne nouvelle sans vraiment en être une vu que l'erreur dois venir du code copié et "adapté à l'arache" (et oui c'est comme ça qu'on dit chez moi en Belgique :) ) d'un enregistrement de macro Excel...

Donc let's go pour la deuxième phase...
 

warmich

XLDnaute Nouveau
Re

Donc ensuite, je continuerai mon test étape par étape
je te laisse tester ces premières modifs
****************
Ensuite il suffit d'ajouter petit à petit le reste du code et de tester au fur et à mesure
(pour trouver où cela bloque)
Je pense avoir compris que je devais préciser la Sheets sur laquelle je travaille à chaque ligne de code.
Ce qui à l'air de fonctionner... Je continue mon test au "fur et à mesure" :)

Est-ce que je peux abuser de ton aide pour ce qui est du point 1 de mon post. 😬

As-tu une idée pour augmenter le rayon d'action de ton code modifié aux sous-dossiers de mon dossier de départ ???

Merci d'avance.
Séba
 

warmich

XLDnaute Nouveau
Bonjour à tous,

Tout d'abord MERCI à Staple1600 !

Le point 2 de ma question est résolu !

Voici mon code corrigé :
VB:
Function ChoixDossier()
On Error Resume Next
    With Application.FileDialog(msoFileDialogFolderPicker)
      .InitialFileName = ActiveWorkbook.Path & "\"
      .Show
      If .SelectedItems.Count > 0 Then
         ChoixDossier = .SelectedItems(1)
      Else
         ChoixDossier = ""
      End If
    End With
End Function

Sub MaJdesFichiersTestCode()
Dim wbk As Workbook
On Error Resume Next
Dim rep, nf As String
' Les fichiers doivent obligatoirement être sur C:
  rep = ChoixDossier & "\"
  nf = Dir(rep & "*.xlsx")
  Application.ScreenUpdating = False
   Do While Len(nf) > 0
   Set wbk = Workbooks.Open(rep & nf)
  With wbk
    .Sheets(1).Name = "FT (Ne pas modifier)"
    .Sheets.Add(After:=Sheets(wbk.Sheets.Count)).Name = "BDD"
    'Modification Mise en page Feuille 1
    .Sheets(1).Rows(1).Font.ThemeColor = xlThemeColorDark1
    .Sheets(1).Rows("44:47").Insert Shift:=xlDown
    .Sheets(1).Rows("48:49").Copy
    .Sheets(1).Rows("44:45").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    .Sheets(1).Rows("48:49").ClearContents
    .Sheets(1).Rows("101:104").Delete Shift:=xlUp
    'Formules sur Feuille 1
    .Sheets(1).Range("A1").Formula = _
        "=IFERROR(C1,IFERROR(D1,IFERROR(E1,IFERROR(F1,""Trop de Sous-Dos.""))))"
    .Sheets(1).Range("C1").Formula = _
        "=IF(IFERROR(INDIRECT.EXT(""'..\[_gestionnaireFT.xlsm]DONNEES_PROJET'!F9"")="""",""""),""vrai1"",""..\"")"
    .Sheets(1).Range("D1").Formula = _
        "=IF(IFERROR(INDIRECT.EXT(""'..\..\[_gestionnaireFT.xlsm]DONNEES_PROJET'!F9"")="""",""""),""vrai2"",""..\..\"")"
    .Sheets(1).Range("E1").Formula = _
        "=IF(IFERROR(INDIRECT.EXT(""'..\..\..\[_gestionnaireFT.xlsm]DONNEES_PROJET'!F9"")="""",""""),""vrai3"",""..\..\..\"")"
    .Sheets(1).Range("F1").Formula = _
        "=IF(IFERROR(INDIRECT.EXT(""'..\..\..\..\[_gestionnaireFT.xlsm]DONNEES_PROJET'!F9"")="""",""""),""vrai4"",""..\..\..\..\"")"
    .Sheets(1).Range("G1").Formula = _
        "=LEFT(MID(CELL(""nomfichier"",A1),FIND(""["",CELL(""nomfichier"",A1))+1,999),FIND(""]"",MID(CELL(""nomfichier"",A1),FIND(""["",CELL(""nomfichier"",A1))+1,999))-1)"
    .Sheets(1).Range("F9:H9").Formula = _
        "=IF(A1=""Trop de Sous-Dos."",A1,IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!F9"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!F9"")))"
    .Sheets(1).Range("O9:Q9").Formula = _
        "=INDEX(BDD!A2:D1107,MATCH(G1,BDD!A2:A1107,0),2)"
    .Sheets(1).Range("S9").Formula = _
        "=INDEX(BDD!A2:D1107,MATCH(G1,BDD!A2:A1107,0),3)"
    .Sheets(1).Range("Y9:AA9").Formula = _
        "=INDEX(BDD!A2:D1107,MATCH(G1,BDD!A2:A1107,0),4)"
    .Sheets(1).Range("H13:AE13").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H13"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H13""))"
    .Sheets(1).Range("H14:AE14").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H14"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H14""))"
    .Sheets(1).Range("H15:AE15").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H15"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H15""))"
    .Sheets(1).Range("H16:AE16").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H16"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H16""))"
    .Sheets(1).Range("H17:AE17").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H17"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H17""))"
    .Sheets(1).Range("H18:AE18").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H18"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!H18""))"
    .Sheets(1).Range("G58:Q58").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!G54"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!G54""))"
    .Sheets(1).Range("C96:L96").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C92"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C92""))"
    .Sheets(1).Range("C97:L97").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C93"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C93""))"
    .Sheets(1).Range("C98:L98").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C94"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C94""))"
    .Sheets(1).Range("C99:L99").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C95"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C95""))"
    .Sheets(1).Range("C100:L100").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C96"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!C96""))"
    .Sheets(1).Range("M96:V96").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M92"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M92""))"
    .Sheets(1).Range("M97:V97").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M93"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M93""))"
    .Sheets(1).Range("M98:V98").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M94"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M94""))"
    .Sheets(1).Range("M99:V99").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M95"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M95""))"
    .Sheets(1).Range("M100:V100").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M96"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!M96""))"
    .Sheets(1).Range("W96:AE96").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W92"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W92""))"
    .Sheets(1).Range("W97:AE97").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W93"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W93""))"
    .Sheets(1).Range("W98:AE98").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W94"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W94""))"
    .Sheets(1).Range("W99:AE99").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W95"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W95""))"
    .Sheets(1).Range("W100:AE100").Formula = _
        "=IF(INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W96"")="""","""",INDIRECT.EXT(""'""&A1&""[_gestionnaireFT.xlsm]DONNEES_PROJET'!W96""))"
    
    'Sélection de la Feuille BDD
    .Sheets(2).Select
    'Formules sur la Feuille BDD
    .Sheets(2).Range("A1").Formula = "Fichiers - NE PAS SUPPRIMER"
    .Sheets(2).Range("B1").Formula = "Numéro - NE PAS SUPPRIMER"
    .Sheets(2).Range("C1").Formula = "Révision - NE PAS SUPPRIMER"
    .Sheets(2).Range("D1").Formula = "Date - NE PAS SUPPRIMER"
    .Sheets(2).Range("E1").Formula = "='FT (Ne pas modifier)'!A1"
   .Sheets(2).Range("A2").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!J7:J200"")"
    .Sheets(2).Range("B2").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!B7:B200"")"
    .Sheets(2).Range("C2").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!C7:C200"")"
    .Sheets(2).Range("D2").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!D7:D200"")"
    .Sheets(2).Range("A196").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!J201:J400"")"
    .Sheets(2).Range("B196").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!B201:B400"")"
    .Sheets(2).Range("C196").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!C201:C400"")"
    .Sheets(2).Range("D196").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!D201:D400"")"
    .Sheets(2).Range("A396").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!J401:J600"")"
    .Sheets(2).Range("B396").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!B401:B600"")"
    .Sheets(2).Range("C396").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!C401:C600"")"
    .Sheets(2).Range("D396").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!D401:D600"")"
    .Sheets(2).Range("A596").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!J601:J800"")"
    .Sheets(2).Range("B596").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!B601:B800"")"
    .Sheets(2).Range("C596").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!C601:C800"")"
    .Sheets(2).Range("D596").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!D601:D800"")"
    .Sheets(2).Range("A796").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!J801:J1000"")"
    .Sheets(2).Range("B796").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!B801:B1000"")"
    .Sheets(2).Range("C796").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!C801:C1000"")"
    .Sheets(2).Range("D796").Formula = _
        "=INDIRECT.EXT(""'""&$E$1&""[_gestionnaireFT.xlsm]GESTIONNAIRE'!D801:D1000"")"
    'Suppression des @ avant INDIRECT.EXT
    .Sheets(2).Cells.Replace What:="@", Replacement:="", LookAt:=xlPart, SearchOrder:= _
        xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False, _
        FormulaVersion:=xlReplaceFormula2
    'Mise en page Feuille BDD
    .Sheets(2).Columns("A:E").Select
    .Sheets(2).Columns("A:E").EntireColumn.AutoFit
    .Sheets(2).Range("A1").Select
    .Sheets(2).Visible = False
    'Passer sur la Feuille FT
    .Sheets(1).Select
    .Sheets(1).Cells.Replace What:="@", Replacement:="", LookAt:=xlPart, SearchOrder:= _
        xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False, _
        FormulaVersion:=xlReplaceFormula2
    .Sheets(1).Range("V21").Select
    .Close True
   End With
  nf = Dir()
  Loop
End Sub
 

warmich

XLDnaute Nouveau
Pour ce qui est du point 1...
Pas de réponse...
Je pense que cette demande est tès compliquée à réaliser vu ce que je trouve à gauche et à droite.
Je refais un nouveau post ici :

Sébastien
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Pour ce qui est du point 1...
Pas de réponse...
Entre tes trois petits points, il y a de la place pour (au choix)
1) Il n'y a pas que le forum dans ma journée
(Il y a aussi le boulot)
2) Il y aussi les autres pans de ma journée
3) et autres activités d'un humain lambda
;)

Bref, je réponds à en mon rythme ;)

NB: Quand à ton point 1), celui-ci a été multi-traité sur le forum
Il suffit de consulter les archives pour s'en convaincre.
Voir ici par exemple

Bonnes lectures et tests. ;)
 
Dernière édition:

Discussions similaires

Réponses
9
Affichages
377
Réponses
38
Affichages
1 K
Haut Bas