Lameche15
Messages postés156Date d'inscriptionmardi 9 septembre 2008StatutMembreDernière intervention15 septembre 2022
-
26 févr. 2009 à 09:52
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
27 févr. 2009 à 19:22
Bonjour,
Voila mon probleme. Je possède 1 classeur (test.xls) sur lequel j'écris ma macro et 2 autres classeurs (source1 et source2.xls) que je dois utiliser pour ma comparaison. Les 3 fichiers sont dans le meme répertoire.
J'aimerais que ma macro compare 2 cellules de source1 (F183) et source2 (F150) et m'inscrive dans test.xls cellule V11 la plus petite valeur des 2.
cnt
Messages postés219Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention20 décembre 20101 26 févr. 2009 à 13:38
Bonjour Lameche15
Si j'ai bien saisi ton souci, je te propose cette solution
Sub Comparaison()
Dim Source1 As String, Source2 As String, Test As String
Dim FichieraOuvrir As String, monNom As String, Chemin As String
Dim Val1, Val2, Resultat
Application.AskToUpdateLinks = False
Source1 = "Source1.xls"
Source2 = "Source2.xls"
Test = "Test.xls"
With ActiveWorkbook
Chemin = .Path 'Chemin fichier d'accueil
monNom = .Name 'Nom fichier d'accueil
End With
' Ouverture du fichier "Source1.xls"
FichieraOuvrir = Chemin & "" & Source1
Workbooks.Open FichieraOuvrir, 0, True
Val1 = ActiveWorkbook.Sheets("???").Range("F183").Value
' Fermeture du fichier "Source1.xls"
Workbooks(Source1).Close False
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 26 févr. 2009 à 10:19
Salut
Quelle est ta vraie difficulté : Faire référence à une donnée située dans un autre classeur ou faire la comparison de 2 cellules ?
Si tu dis travailler avec plusieurs classeurs, c'est simple :
- Tu ouvres tes deux classeurs dans le même Excel
- Dans le Classeur1, tu commences ta fonction, par exemple avec un =, puis tu vas dans le menu Fenêtre pour changer de classeur et tu cliques sur la cellule de l'autre classeur + touche Entrée
La syntaxe obtenue ressemblera à ça
=[Classeur1.xls]Feuil1!$B$5
Pour comparer deux valeurs, suffit d'utiliser la fonction MIN
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 26 févr. 2009 à 10:37
Désolé, tu parlais de macro :
Exemple de rapatriement de [1]B5 vers [2]A1
Range("[Classeur2.xls]Feuil1!A1").FormulaR1C1 = "=[Classeur1.xls]Feuil1!R5C2"
ou, pour ta compairison de valeur la plus petite entre [1]B5 et [2]D3
Ici, D3 est dans la feuille 2 mais la macro aussi, donc on ne voit pas la référence au classeur
Range("[Classeur2.xls]Feuil1!A1").FormulaR1C1 = "=MIN([Classeur1.xls]Feuil1!$B$5;D3)"
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Lameche15
Messages postés156Date d'inscriptionmardi 9 septembre 2008StatutMembreDernière intervention15 septembre 2022 26 févr. 2009 à 13:44
Merci, super top!
J'étais sur la piste mais le coup du chemin . path, trop top comme ca si je change de repertoire ca continue de marcher et la fonction min m'evite la boucle if else un peu lourde
Merci beaucoup
Vous n’avez pas trouvé la réponse que vous recherchez ?