ERREUR MACRO

Résolu/Fermé
Gwen59000
Messages postés
51
Date d'inscription
mardi 29 décembre 2009
Statut
Membre
Dernière intervention
19 avril 2010
- 11 févr. 2010 à 08:56
Gwen59000
Messages postés
51
Date d'inscription
mardi 29 décembre 2009
Statut
Membre
Dernière intervention
19 avril 2010
- 15 févr. 2010 à 09:15
Bonjour,

J'ai dans un répertoire 1000 fichiers clients excel nommés par le nom du client.( \\Serveur3\dserveur\Récapitulatif Clients Lesquin\Clients\Clients Affrètement\"nom client".xls)

J'ai dans un répertoire un récapitulatif de ces clients avec quelques valeurs (\\Serveur3\dserveur\Récapitulatif Clients Lesquin\Récapitulatif Clients Lesquin.xls): De A7 à A1006 la liste des clients et de C7 à C1006 la valeur de la cellule E18 du fichier client client d'origine.

J'ai tenté de faire cette macro qui ne fonctionnne pas pour appliquer la formule de la cellule C7 à la cellule C1006 (de plus je voudrais que s'il n'y a pas de nom dans la colonne A il n'apparaisse pas de message d'erreur mais " ").

Sub copierformules()
'
' copierformules Macro
' Macro enregistrée le 10/02/2010 par
'
For i = 7 To 15
Range("C" & i).Value = "='\\Serveur3\dserveur\Récapitulatif Clients Lesquin\Clients\Clients Affrètement\[" & Range("A" & i).value & ".xls]STATS'!$E$18"

Next i


End Sub


Merci d'avance,

9 réponses

tompols
Messages postés
1219
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
458
11 févr. 2010 à 09:25
Salut,
qd tu dis que la macro ne fonctionne pas, qu'est-ce que tu entends par là ? tu as un msg d'erreur ?
sinon pour conditionnner en fonction de A :
For i = 7 To 15
If Range("A" & i).value = "" then 'on pourrait aussi utiliser If IsEmpty(Range("A" & i))
Range("C" & i).value = " "
else
Range("C" & i).Value = "='\\Serveur3\dserveur\Récapitulatif Clients Lesquin\Clients\Clients Affrètement\[" & Range("A" & i).value & ".xls]STATS'!$E$18"
end if

Next i
0
Gwen59000
Messages postés
51
Date d'inscription
mardi 29 décembre 2009
Statut
Membre
Dernière intervention
19 avril 2010

11 févr. 2010 à 10:10
Bonjour tompols,

Je viens de rectifier la macro et j'ai le message suivant :

erreur d'execution '1004' :
erreur definie par l'application ou par l'objet

surligné : Range("C" & i).Value = "='\\Serveur3\dserveur\Récapitulatif Clients Lesquin\Clients\Clients Affrètement\[" & Range("A" & i).value & ".xls]STATS'!$E$18"

?
0
Gwen59000
Messages postés
51
Date d'inscription
mardi 29 décembre 2009
Statut
Membre
Dernière intervention
19 avril 2010

11 févr. 2010 à 10:38
Re,

Le nom du client que j'ai dans la colonne A est déjà issu d'une formule :

=SI('[Base de données Affrètement.xls]Feuil2'!$C3=0;"";'[Base de données Affrètement.xls]Feuil2'!$C3)

c'est peut être la raison de l'erreur ?
0
michel_m
Messages postés
16569
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 mai 2022
3 280
11 févr. 2010 à 11:29
Bonjour

Si les noms de tes clients en A7:A1006 sont ceux des tes fichiers dans le repertoire //serveur3 etc...
essaie cette macro (macroXL4 dite de Walkenbach)

Sub transferer()
Dim lig As Long
Dim chemin As String, onglet As String
Dim fich As String

onglet = "feuil1" 'a adapter
chemin = ThisWorkbook.Path '  a adapter au chemin des fichiers sources sous la forme classique et non sous la forme //serveur3....
Application.ScreenUpdating = False
range("A6:A1010").clearcontents
ChDir chemin
fich = Dir("*.xls")
While fich <> ""
    Cells(6 + lig, 3) = ExecuteExcel4Macro("'" & chemin & "\[" & fich & "]" & onglet & "'!R18C5") 'R18C5==>cellule E18
    lig = lig + 1
    
    fich = Dir
Wend

MsgBox "transferts terminés avec succès"
End Sub


mais il n'est pas bien difficile de partir des noms en A6:A....
Il faut toutefois que le chemin soit de la forme classique du genre x:\......

Ci joint maquette de travail
https://www.cjoint.com/?cllUzoS1VO

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gwen59000
Messages postés
51
Date d'inscription
mardi 29 décembre 2009
Statut
Membre
Dernière intervention
19 avril 2010

11 févr. 2010 à 14:17
Bonjour Michel,

J'ai essaye mais message erreur chemin d'acces introuvable. Je ne comprends pas exactement ce que je dois mettre. La liste de mes clients en colonne s'est effacée ?
0
michel_m
Messages postés
16569
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 mai 2022
3 280
11 févr. 2010 à 15:47
Excuses moi c'était range("C7:C1010) au lieu de range("A6:A2010") je suis vraiment désolé :-((

et pendant que j'y suis
While fich <> ""
    Cells(7 + lig, 3) = ExecuteExcel4Macro("... etc


pour le chemin tu indiques:
\\Serveur3\dserveur\Récapitulatif Clients Lesquin\Clients\Clients Affrètement

il faudrait au lieu de \\serveur3\ la lettre correspondant à l'adresse du serveur3, par exemple
 X:\dserveur\Récapitulatif Clients Lesquin\Clients\Clients Affrètement

il doit y avoir des scripts pour faire mais je n' ai plus ca en t^te!...(je ne suis plus sur réseau) a tout hasard regarde dans l'explorateur Windows si tu ne retrouves pas cette lettre pour le serveur ou demande à l'admin
0
Gwen59000
Messages postés
51
Date d'inscription
mardi 29 décembre 2009
Statut
Membre
Dernière intervention
19 avril 2010

11 févr. 2010 à 16:59
Re,

Ne marche tjrs pas.

Surligne :

Cells(7 + lig, 3) = ExecuteExcel4Macro("'" & chemin & "\[" & fich & "]" & onglet & "'!R18C5") 'R18C5==>cellule E18

?
0
michel_m
Messages postés
16569
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 mai 2022
3 280
11 févr. 2010 à 17:43
chemin est égal à quoi ?
onglet est égal à quoi ?

Il eut été peut-^tre profitable que tu indiques ce que tu avais fait en fonction de mes interrogations et/ou observations...
0
Gwen59000
Messages postés
51
Date d'inscription
mardi 29 décembre 2009
Statut
Membre
Dernière intervention
19 avril 2010

15 févr. 2010 à 09:15
Bonjour à vous deux,

Finalement la macro en début de post fonctionne. Certains noms de mes clients contiennent une ' que j'ai du supprimer. Maintenant la macro se déroule normalement.

merci pour votre aide
0