Problème fichier non existant
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 Subbonjour,
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 SubRe,
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 SubRe,
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 crochetsJ'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