Macro excel pour rapprochement fichiers

mycky25

Nouveau membre
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
 

zeb

Modérateur
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.
 

mycky25

Nouveau membre
J'ai que très peu de connaissances en VB, peux tu m'eclairer sur "l'algorithme" ?
 

zeb

Modérateur
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.
 

mycky25

Nouveau membre
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

 

zeb

Modérateur
(Revois ton message et utilise la balise [ code ], conformément au règlement. En l'état, ton code est plein de smileys indésirables).
 

mycky25

Nouveau membre
Je vais passer pour un boulet mais je trouve pas comment enlever ces smileys (même en utilisant la balise)
 

zeb

Modérateur
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.
 

mycky25

Nouveau membre
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 :



Code:
Sub RecherchePrix()
'
' RecherchePrix Macro
'

 
'
Range("B151").Select
ActiveCell.FormulaR1C1 = "29070x 02"
Windows("89 (1).xls").Activate
Range("C1").Select
ActiveSheet.Range("$A$1:$AF$7054").AutoFilter Field:=3, Criteria1:= _
"=29070x 02", Operator:=xlAnd
Range("Z554").Select
Selection.Copy
Windows("Suivi affrètements.xls").Activate
Range("G151").Select
ActiveSheet.Paste
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.
 

zeb

Modérateur
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.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 845
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut