Se connecter avec
S'enregistrer | Connectez-vous

Macro excel pour rapprochement fichiers

Dernière réponse : dans Programmation

Bonjour,

Je souhaiterais créer une macro dans excel me permettant de rapprocher les données de 2 fichiers excel. Je m'explique :

1er fichier avec les colonnes suivantes : Date / Code Fournisseur / Raison sociale / Ville / Metrages linéaires / Magasins / COUT

Le second fichier correspond à ma facture globale avec comme colonnes en commun Date, Code fournisseur, RS, Vill, ML et surtout COUT.

La colonne COUT de mon 1er fichier est vide, et le but serait que via une macro, les données soient automatiquement reprises dans le second fichier. Tout en sachant que je peux très bien avoir plusieurs lignes par fournisseur pour le même jour et que la formule doit savoir prendre la bonne cellule du coût.

Pensez vous que ceci est réalisable.

D'avance merci

Mickael
Lassé par la pub ? Créez un compte
Expert Programmation

Salut,

Bien sûr que c'est faisable. Propose-nous l'algorithme de ton "rapprochement", et essaie de le traduire en VB. On va t'aider à en faire un truc utilisable ;) 

A te lire.
Expert Programmation

L'algorithme est ce que tu veux que le programme fasse, pas à pas.
Si tu ne maîtrises pas le moindre langage de programmation, qu'importe.
Si tu sais écrire en français et que tu sais ce que tu veux, on va pouvoir s'en sortir : "écris" ton programme en français de la façon la plus détaillée, je te guiderai pour transformer ça en VB.

J'en ai fait mais il y a très longtemps, et je n'ai plus que de vieux souvenirs ; j'ai fait pas à pas ce que je voulais en enregistrant les macros des "manips" mais je n'arrive pas à les mettres les unes derrière les autres.

Donc voici ce que je voudrais , pour chacune des cellules de mes codes clients à une date donnée :

- Rechercher le contenu de la cellule code client du fichier de base dans un autre fichier contenant l'ensemble de ma facturation
- une fois le code client retrouvé à la date donnée dans le fichier facturation, aller chercher la cellule contenant le prix sur la même ligne
- copier le contenu de cette cellule dans le fichier de base afin d'y metter le prix.


Grossièrement, en enregistrant les macros, voila ce que j'ai obtenu :

Sub RechercheCOFOR()
'
' RechercheCOFOR Macro
'

'
ActiveSheet.Range("$A$1:$AF$7054").AutoFilter Field:=3, Criteria1:= _
"=94625c w2", Operator:=xlAnd
End Sub

Sub ChangementFichier()
'
' ChangementFichier Macro
'

'
Windows("89 (1).xls").Activate
End Sub

Sub RecherchePrix()
'
' RecherchePrix Macro
'

'
ActiveWindow.SmallScroll ToRight:=9
Range("Z589").Select
End Sub
Sub CopiePrix()
'
' CopiePrix Macro
'

'
Selection.Copy
Application.CutCopyMode = False
Selection.Cut
Windows("Suivi affrètements.xls").Activate
Range("G141").Select
ActiveSheet.Paste
End Sub
Sub A()

End Sub

Sub CopierCOFOR()
'
' CopierCOFOR Macro
'

'
ActiveCell.FormulaR1C1 = "94625c w2"
Range("B141").Select
End Sub

Expert Programmation

(Revois ton message et utilise la balise [ code ], conformément au règlement. En l'état, ton code est plein de smileys indésirables).
zeb a édité ce message
Expert Programmation

Boulet !!!! :o  ... :D 

Clique sur le petit crayon en bas à droite de ton message.
Ajoute [ code ] - avec les crochets mais sans les espaces - au début de chacun de tes bouts de code, et [ / code ] - toujours sans les espaces - à la fin de chacun.

J'avais pas fait attention au fait que le début et la fin de la balise étaient collés.. :sarcastic: 

Sinon j'ai recommencé la macro en question, et voici ce que j'obtiens :



  1. Sub RecherchePrix()
  2. '
  3. ' RecherchePrix Macro
  4. '
  5.  
  6.  
  7. '
  8. Range("B151").Select
  9. ActiveCell.FormulaR1C1 = "29070x 02"
  10. Windows("89 (1).xls").Activate
  11. Range("C1").Select
  12. ActiveSheet.Range("$A$1:$AF$7054").AutoFilter Field:=3, Criteria1:= _
  13. "=29070x 02", Operator:=xlAnd
  14. Range("Z554").Select
  15. Selection.Copy
  16. Windows("Suivi affrètements.xls").Activate
  17. Range("G151").Select
  18. ActiveSheet.Paste
  19. End Sub




Ca fonctionne très bien mais uniquement par rapport à la cellule qui est dans la macro, je ne sais pas comment généraliser la macro à l'ensemble des cellules de la colonne des codes clients chacun leur tour.
Expert Programmation

M'enfin ???

Ne t'ai-je pas demandé d'écrire en français et pas à pas ce que tu voulais que le programme fasse ?
Sauf à croire que je vais faire ton boulot à ta place, il va falloir t'y filer un peu et accepter de bosser.
C'est pour toi.
Lassé par la pub ? Créez un compte