Probleme macro

Bonjour à tous,

voici le contexte : j'ai un tableau excel qu'on appelle base de donnée. Dans ce tableau il y a 612 lignes qui correspondent pour chaque ligne à une commune.

J'ai dans le même dossier plusieurs fichiers Excel intitulé avec au moins le nom de la commune qui contiennent des données à mettre dans mon excel base de donnée.

Mon problème et que mes 5 premières lignes fonctionnes et que dès que j'ai une commune avec des espaces ma macro ne fonctionne plus pouvez vous jeter un coup d'oeil?

Sub MiseAjour()

Application.ScreenUpdating = False

Set docDep = ActiveSheet

For Each C In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)

chemin = "Z:\DLT\MAT\GVR\BASTIEN\FICHE EXPLOITATION\BASE DE DONNEES\"

nomF = Dir(chemin & C.Value & " *.xls")

If nomF = "" Then

MsgBox "Il n'y a pas de fichier relatif à " & C.Value & " dans le dossier.", 16

GoTo Suite

End If

nomV = Split(nomF, " ", -1)(0)

If C = nomV Then

Workbooks.Open (chemin & nomF)

docDep.Range("D" & C.Row) = Sheets("1er feuillet").Range("B8")

docDep.Range("G" & C.Row) = Sheets("1er feuillet").Range("C14")

docDep.Range("I" & C.Row) = Sheets("1er feuillet").Range("E14")

docDep.Range("P" & C.Row) = Sheets("1er feuillet").Range("C41")

docDep.Range("Q" & C.Row) = Sheets("1er feuillet").Range("E80")

docDep.Range("Q" & C.Row) = docDep.Range("Q" & C.Row) & Sheets("1er feuillet").Range("E81")

docDep.Range("R" & C.Row) = Sheets("1er feuillet").Range("E116")

docDep.Range("S" & C.Row) = Sheets("1er feuillet").Range("E115")

docDep.Range("W" & C.Row) = Sheets("BRANCHEMENT").Range("C17")

docDep.Range("X" & C.Row) = Sheets("BRANCHEMENT").Range("C12")

docDep.Range("Y" & C.Row) = Sheets("BRANCHEMENT").Range("C30")

docDep.Range("Z" & C.Row) = Sheets("BRANCHEMENT").Range("C18")

docDep.Range("AA" & C.Row) = Sheets("BRANCHEMENT").Range("C45")

docDep.Range("AA" & C.Row) = docDep.Range("AA" & C.Row) & Sheets("BRANCHEMENT").Range("C47")

docDep.Range("AB" & C.Row) = Sheets("BRANCHEMENT").Range("C58")

ActiveWorkbook.Close False

End If

Suite:

Next C

MsgBox "Travail terminé !"

End Sub

Merci d'avance

Bonjour,

peux-tu nous montrer à quoi ressemblent tes noms de fichier "communes" ?

s'agit-il uniquement du "nom de la commune.xlsx" ou y a-t-il autre chose dans le nom du fichier ?

Bonjour,

merci pour votre réponse.

Ci-joint un aperçu du nom des communes. Je pense qu'il faut changer la lign e nomF= dans la macro mais je sais pas comment :/

Merci

apercu

re-Bonjour,

peux-tu mettre une extrait de la feuille excel qui sert à ta recherche ? celle dans laquelle on retrouve les noms de fichiers sans l'extension xls ?

ci-joint le fichier

Bonjour,

un essai de correction à tester

Sub MiseAjour()
Application.ScreenUpdating = False
Set docDep = ActiveSheet
For Each C In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
chemin = "Z:\DLT\MAT\GVR\BASTIEN\FICHE EXPLOITATION\BASE DE DONNEES\"
nomF = Dir(chemin & C.Value & "*.xls")
If nomF = "" Then
MsgBox "Il n'y a pas de fichier relatif à " & C.Value & " dans le dossier.", 16
else
Workbooks.Open (chemin & nomF)
docDep.Range("D" & C.Row) = Sheets("1er feuillet").Range("B8")
docDep.Range("G" & C.Row) = Sheets("1er feuillet").Range("C14")
docDep.Range("I" & C.Row) = Sheets("1er feuillet").Range("E14")
docDep.Range("P" & C.Row) = Sheets("1er feuillet").Range("C41")
docDep.Range("Q" & C.Row) = Sheets("1er feuillet").Range("E80")
docDep.Range("Q" & C.Row) = docDep.Range("Q" & C.Row) & Sheets("1er feuillet").Range("E81")
docDep.Range("R" & C.Row) = Sheets("1er feuillet").Range("E116")
docDep.Range("S" & C.Row) = Sheets("1er feuillet").Range("E115")
docDep.Range("W" & C.Row) = Sheets("BRANCHEMENT").Range("C17")
docDep.Range("X" & C.Row) = Sheets("BRANCHEMENT").Range("C12")
docDep.Range("Y" & C.Row) = Sheets("BRANCHEMENT").Range("C30")
docDep.Range("Z" & C.Row) = Sheets("BRANCHEMENT").Range("C18")
docDep.Range("AA" & C.Row) = Sheets("BRANCHEMENT").Range("C45")
docDep.Range("AA" & C.Row) = docDep.Range("AA" & C.Row) & Sheets("BRANCHEMENT").Range("C47")
docDep.Range("AB" & C.Row) = Sheets("BRANCHEMENT").Range("C58")
ActiveWorkbook.Close False
End If
Next C
MsgBox "Travail terminé !"
End Sub

Merci beaucoup! cela fonctionne !

Pouvez-vous m'expliquer la raison? ce que vouss avez changé et à quoi cela sert?

si ça ne vous derage pas...

Bastoc25 a écrit :

Merci beaucoup! cela fonctionne !

Pouvez-vous m'expliquer la raison? ce que vouss avez changé et à quoi cela sert?

si ça ne vous derage pas...

j'ai adapté l'instruction qui recherche un nom de fichier commençant par le nom de la commune. dans la version initiale, cette instruction recherchait un nom de fichier commençant par le nom de la commune suivi d'un espace. j'ai simplement enlevé cet espace

ancienne instruction

nomF = Dir(chemin & C.Value & " *.xls")

remplacée par

nomF = Dir(chemin & C.Value & "*.xls")

et j'ai supprimé le test qui faisait double emploi (car il vérifiait si le nom du fichier contenait bien le nom de la commune).

j'ai supprimé ces 2 instructions

nomV = Split(nomF, " ", -1)(0)
If C = nomV Then

et j'ai enfin fait un changement cosmétique en remplaçant le goto par unelse (car je n'aime pas les goto's)

Super merci !

Rechercher des sujets similaires à "probleme macro"