comparaison valeurs cellule macro

bubus31

XLDnaute Nouveau
Bonjour,

j'ai un souci avec ma macro qui ne fonctionne pas comme je voudrais, et je n'arrive pas a trouver l'erreur!! Y aurait-il une ame charitable pour m'aider svp???
Voici la macro:

Sub macro()
dim i as integer
dim j as integer
derniere_cellule= range("A7").end(xldown).row
der_cell=range("X10").end(xldown).row
valeur= sheets("Feuil1").range("A" & j).value

for i = 7 to derniere_cellule

sheeets("Feuil2").range("Y" & i).value= valeur then sheets("Feuil2").range("X" & i).formulaR1C1= 222

Next
Next
End sub


Merci d'avance!!!
 

deudecos

XLDnaute Impliqué
Re : comparaison valeurs cellule macro

salut bubus31, le forum,

Je ne suis pas certain, mais il me semble que tu n'a pas affecte de valeur a "j"
valeur= sheets("Feuil1").range("A" & j).value
Moi je serais toi, j'indiquerais aussi la feuille concernee

derniere_cellule= sheets("Feuil2").range("A7").end(xldown).row

Bonne journee

Olivier
 

bubus31

XLDnaute Nouveau
Re : comparaison valeurs cellule macro

Merci de ta réponse deudecos. Je vais modifier ces points la et voir ce que ca donne..par contre je pense avoir donner une valeur a "j": pour la variable "valeur"
c'est ca que tu voulais dire?

en tout cas merci de ta reponse rapide..
 

bubus31

XLDnaute Nouveau
Re : comparaison valeurs cellule macro

merci Olivier pour ta remarque

en fait j'ai vérifié j'ai bien mis for j= 7 to 15

j'ai également rajouté les "worksheets" qui manquaient un peu partout. Si je laisse juste une condition if la macro marche,mais si je lui demande de trouver pour chaque valeur de Feuil2 si elle est égale aux cellule de Feuil 1, et bien elle ne balaie pas selon j et i mais prend en compte le dernier if seulement.
je ne sais pas si je suis tres claire: en gros en vb ca donne:
if sheets("Feuil1").range("Y" & i).value= sheets("feuil2").range("A"&j).value then sheets("Feuil1").range("X" & i);formluaR1C1=222
if sheets("Feuil1").range("Y" & i).value= sheets("feuil2").range("A"&j).value then sheets("Feuil1").range("X" & i);formluaR1C1=111

dans le premier if je voudrais demander si la cellule Aj de Feuil2 est trouvée dans la feuil1 et si oui, inscrire 222 puis si Aj+1 est trouvée dans la feuil1 et si oui ecrire 111. Or en fait il m'écrit 111 pour tout...j'aimerai qu'il balaie pour un j tout les i puis pour j+1 tou les i a nouveau...
c'est possible?

merci encore pour ton aide,

Bubus
 

deudecos

XLDnaute Impliqué
Re : comparaison valeurs cellule macro

re,

Si j'ai bien compris, ton probleme est en rapport avec l'endroit ou se situent les If dans ton code.

Mais je pense que le mieux c'est que tu fasse un copier-coller de ton code ici pour voir exactement ce qui cloche.
 

bubus31

XLDnaute Nouveau
Re : comparaison valeurs cellule macro

Voila la macro complete Olivier:
Sub Macro7()

Dim j As Integer
Dim i As Integer
derniere_cell = Worksheets("Feuil1").Range("X10").End(xlDown).Row
derniere_cellule = Worksheets("Feuil2").Range("A7").End(xlDown).Row
For j = 7 To derniere_cellule
For i = 7 To derniere_cell


valeur = Worksheets("Cadences").Range("A" & j).Value



'calcul cadence pour le premier produit
If Worksheets("Liste pièces").Range("Y" & i).Value = Worksheets("Cadences").Range("A" & j).Value Then Worksheets("Liste pièces").Range("X" & i).FormulaR1C1 = 555

'calcul cadence pour les produits 2-3-4
If Worksheets("Liste pièces").Range("Y" & i).Value = valeur Then Worksheets("Liste pièces").Range("X" & i).FormulaR1C1 = 333
'If Range("Y" & i).Value = valeur Then Range("X" & i).FormulaR1C1 = 333
'If Range("Y" & i).Value = valeur Then Range("X" & i).FormulaR1C1 = 12
'If Range("Y" & i).Value = valeur Then Range("X" & i).FormulaR1C1 = 12


Next

Next
End Sub

Sur ma feuille 2 j'ai une colonne A avec le nom des produits entre A7 et A15. Comme il y a plus ou moins de produits dans l'année, je ne voulais pas fixer des limites fixes. Pour chacun de ces produits je souhaite que dans la feuille 1 il retrouve leur nom et calcule dans la colonne a coté, ligne correspondante, la cadence.

Merci beaucoup!
 

deudecos

XLDnaute Impliqué
Re : comparaison valeurs cellule macro

re

juste une question, ou deux...

derniere_cell = Worksheets("Feuil1").Range("X10").End(xlDown).Row = Feuil1 ou Liste pieces ?
derniere_cellule = Worksheets("Feuil2").Range("A7").End(xlDown).Row = Feuil2 ou Cadences ?

Si ton fichier ne contient rien de secret, mets le en piece jointe pour que je puisse mieux comprendre, parce que Deux de cos(cient), ca n'est pas pour rien... ;-)

Olivier
 

bubus31

XLDnaute Nouveau
Re : comparaison valeurs cellule macro

Re Olivier,

Effectivement il y avait un oubli:
cadence= Feuil2
et liste pièces= Feuil1

j'ai mis en fichier joint un exemple type de mes données afin que ce soit plus clair. Comme j'ai plus de 300 lignes avec une dizaine de produits différents qui peuvetn varier dans l'année, l'intéret est qu'à chaque nouvel ajout de produit dans mes cadences, le calcul se fasse automatiquement Feuil1 dans la colonne Calcul.
Cela te parait plus clair?

Merci encore pour ton aide,

Bubus
 

Pièces jointes

  • Nouveau Microsoft Excel Worksheet.xls
    14.5 KB · Affichages: 77
  • Nouveau Microsoft Excel Worksheet.xls
    14.5 KB · Affichages: 83
  • Nouveau Microsoft Excel Worksheet.xls
    14.5 KB · Affichages: 79

deudecos

XLDnaute Impliqué
Re : comparaison valeurs cellule macro

re,

Pour commencer, regardes ce que je te joints. Nous verrons plus tard pour l'adapter a tes besoins. Je sais que ca ne correspond pas tout a fait a tes desirs mais c'est un debut !

Bonne soiree

Olivier
 

Pièces jointes

  • BubusEssai1.xls
    25.5 KB · Affichages: 103

bubus31

XLDnaute Nouveau
Re : comparaison valeurs cellule macro

Bonjour,

Voici la macro corrigée qui correspond à mes besoins pour ceux que ca intéresse:
cette macro imbrique deux variables issus de deux feuilles différentes (donc tableau différents) et va indiquer dans le premier tableau un calcul (produit de plusieurs cellules sur la ligne i pour tableau 1 et cellules de lignes j pour tableau 2)

Sub test()
Dim j As Integer
Dim i As Integer
Dim l As Integer
Dim m As Integer

l = Sheets("Cadences").Range("A65536").End(xlUp).Row
m = Sheets("Liste pièces").Range("X2000").End(xlUp).Row

For j = 7 To l
For i = 7 To m

'calcul cadence pour les differents produits
If Sheets("Liste").Range("Y" & i).Value = Sheets("Cadences").Range("A" & j).Value Then Sheets("Liste").Range("X" & i).FormulaR1C1 = "=RC[-1]*RC[-2]*Cadences!R" & j & "C12"

Next

Next
End Sub

Merci Olivier pour ton aide.


Bubus
 

Discussions similaires

Réponses
11
Affichages
281

Statistiques des forums

Discussions
312 103
Messages
2 085 323
Membres
102 862
dernier inscrit
Emma35400