Problème fichier non existant

7exemple.xlsx (56.09 Ko)

Bonjour,

Cf document en partage

Dans la colonne 3 j'ai du texte, pour chaque ligne, c'est un nom différent de fichiers excel, tous ces fichiers excel sont dans un même document.

Dans la colonne 5 à 21 j'ai des chemins de fichiers sous forme de formules qui fait référence à des cellules de la feuille excel de la colonne 3 correspondante.

J'ai fait une macro afin de remplacer une partie du chemin des formules de chaque ligne des colonnes 5 à 21 avec le nom du fichier de la colonne 3 correspondant.

Mon problème c'est que le nouveau chemin n'est pas toujours lié à un document excel existant. Lorsque j'applique ma macro, et qu'elle ouvre un chemin pour un fichier excel qui n'existe pas celle ci ouvre l'explorateur windows et me demande de chercher un document correspondant.
Je voudrais, lorsque le dossier excel n'existe pas, laissé la formule de départ avec le nom de document [VIDE.xlsx], si le document existe dans le chemin, alors je remplace dans la formule [VIDE.xlsx] par le le nom dans la colonne 3 correspondant à la ligne.

Merci de votre aide.

Bonne journée,

Sub Remplace()

  Dim Plage As Range
  Dim Cellule As Range
  Dim Textc As String
  Dim Monfichier As String
  Dim i As Integer
  Dim Feuil As Worksheet

  Set Feuil = ThisWorkbook.Worksheets("2021")

For i = 0 To 760

    Set Plage = Range(Cells(2 + i, 5), Cells(2 + i, 21))
    Set Celulle = Cells(2 + i, 3)
    Textc = Celulle

   Monfichier = ("S:\Dossiers individuels\Dossiers divers\Textc")

     If Dir(Monfichier) = "" Then

    Plage.Select
    Selection.Replace What:="[VIDE.xlsx]", Replacement:="[VIDE.xlsx]" _
        , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat _
        :=False, ReplaceFormat:=False

        Else
    Plage.Select
    Selection.Replace What:="[VIDE.xlsx]", Replacement:=Textc _
        , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat _
        :=False, ReplaceFormat:=False

End If
Next i

End Sub

bonjour,

proposition de correction de ton code mis sur le forum (je n'ai pas regardé ton fichier)

Sub Remplace()

    Dim Plage As Range
    Dim Cellule As Range
    Dim Textc As String
    Dim Monfichier As String
    Dim i As Integer
    Dim Feuil As Worksheet

    Set Feuil = ThisWorkbook.Worksheets("2021")

    For i = 0 To 760

        Set Plage = Range(Cells(2 + i, 5), Cells(2 + i, 21))
        Set Celulle = Cells(2 + i, 3)
        Textc = Celulle

        Monfichier = ("S:\Dossiers individuels\Dossiers divers\" & Textc)

        If Dir(Monfichier) <> "" Then

            Plage.Replace What:="[VIDE.xlsx]", Replacement:=Textc _
            , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat _
            :=False, ReplaceFormat:=False

        End If
    Next i

End Sub

Re,

La macro ne semble pas fonctionner, elle laisse toutes les formules des cases avec [VIDE.xlsx]

re-bonjour,

je suppose qu'il ne trouve pas les fichiers tels qu'écrits en colonne C avec [ avant et ]. Si c'est le cas, macro adaptée, ci-dessous

Sub Remplace()

    Dim Plage As Range
    Dim Cellule As Range
    Dim Textc As String
    Dim Monfichier As String
    Dim i As Integer
    Dim Feuil As Worksheet

    Set Feuil = ThisWorkbook.Worksheets("2021")

    For i = 0 To 760

        Set Plage = Range(Cells(2 + i, 5), Cells(2 + i, 21))
        Set celulle = Cells(2 + i, 3)
        Textc = celulle
        Textc = Mid(Textc, 2, Len(Textc) - 2) 'enlève les crochets
        Monfichier = ("S:\Dossiers individuels\Dossiers divers\" & Textc)
        If Dir(Monfichier) <> "" Then

            Plage.Replace What:="VIDE.xlsx", Replacement:=Textc _
            , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat _
            :=False, ReplaceFormat:=False

        End If
    Next i

End Sub

Re,

C'est bon cela fonctionne ,

Cependant la formule ci dessous ne marche pas, j'ai une erreur 5 (Argument ou appel de procédure incorrect).

Textc = Mid(Textc, 2, Len(Textc) - 2) 'enlève les crochets

J'ai donc enlever les crochets en modifiant ma formule Excel dans la colonne 3.

Merci de votre aide !

Bonne journée

re-bonjour,

Cependant la formule ci dessous ne marche pas, j'ai une erreur 5 (Argument ou appel de procédure incorrect).

effectivement, la formule donne une erreur si la longueur de textc est <=2

Rechercher des sujets similaires à "probleme fichier existant"