[EXCEL] Comparaison cellules
Résolu
sandrill0n
Messages postés
79
Date d'inscription
Statut
Membre
Dernière intervention
-
magpie Messages postés 43 Date d'inscription Statut Membre Dernière intervention -
magpie Messages postés 43 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite comparer des cellules sur 2 feuilles excel et mettre une donnée dans la 3ème feuille.
J'ai commencé une macro (ci-dessous), mais j'ai une "run-time error" à l'exécution.
Merci,
Sandrillon
Je souhaite comparer des cellules sur 2 feuilles excel et mettre une donnée dans la 3ème feuille.
J'ai commencé une macro (ci-dessous), mais j'ai une "run-time error" à l'exécution.
For cpt_lot = 0 To 15000 'Initialisation des param Lot = Worksheets("Lot_PC").Cells((2 + cpt_lot), 1).Text Wafer = Worksheets("Lot_PC").Cells((2 + cpt_lot), 2).Numeric Lot_present = False Wafer_present = False rowsearch = 2 'Le Lot est présent dans la feuille Yield ? While (VarType(Worksheets("Yield_Probe").Cell(rowsearch, 1)) <> 0 And VarType(Worksheets("Yield_Probe").Cell(rowsearch, 3)) <> 0) If ((Worksheets("Yield_Probe").Cells(rowsearch, 1).Value = Lot) And (Worksheets("Yield_Probe").Cells(rowsearch, 3).Value = Wafer)) Then Lot_present = True Wafer_present = True End If rowsearch = rowsearch + 1 Wend rowyield = 2 While (VarType(Worksheets("Yield_Probe").Cell(rowyield, 1)) <> 0 And VarType(Worksheets("Yield_Probe").Cell(rowyield, 3)) <> 0) If ((Worksheets("Yield_Probe").Cells(rowyield, 1).Value = Lot) And (Worksheets("Yield_Probe").Cells(rowyield, 3).Value = Wafer)) Then yield = Worksheets("Yield_Probe").Cells(rowyield, 7).Value End If rowyield = rowyield + 1 Wend If ((Lot_present = True) And (Wafer_present = True)) Then Worksheets("Lot_PC_Yield").Cells(rowsearch, 8) = yield End If Next cpt_lot
Merci,
Sandrillon
A voir également:
- [EXCEL] Comparaison cellules
- Formule excel pour additionner plusieurs cellules - Guide
- Liste déroulante excel - Guide
- Verrouiller cellules excel - Guide
- Word et excel gratuit - Guide
- Excel cellule couleur si condition texte - Guide
7 réponses
Bonjour sandrillon,
Essayer de faire un traçage de votre macro (exécution pas à pas), cela vous permettra de voir à quelle ligne d'instruction le problème survient.
Bonne chance.
Essayer de faire un traçage de votre macro (exécution pas à pas), cela vous permettra de voir à quelle ligne d'instruction le problème survient.
Bonne chance.
Bonjour Sandrillon,
J'obtiens ton erreur 438 avec cette ligne-là :
Wafer = Worksheets("Lot_PC").Cells((2 + cpt_lot), 2).Numeric
Numeric ne s'applique pas tel quel sur une cellule.
Si tu veux savoir si le contenu d'une cellule est numérique, fais :
If IsNumeric(<la valeur de ta cellule>) then...
J'obtiens ton erreur 438 avec cette ligne-là :
Wafer = Worksheets("Lot_PC").Cells((2 + cpt_lot), 2).Numeric
Numeric ne s'applique pas tel quel sur une cellule.
Si tu veux savoir si le contenu d'une cellule est numérique, fais :
If IsNumeric(<la valeur de ta cellule>) then...
Heu par contre je crois que j'ai fais une boucle sans fin....
Je lui ai dit de compter jusqu'à 15000.
Dans la feuille 1 (référence) il y a 7000 lignes à scruter
Dans la feuille 2 (à comparer) il y a 13000 lignes à scruter
Ca prend longtemps à votre avis ?
Je lui ai dit de compter jusqu'à 15000.
Dans la feuille 1 (référence) il y a 7000 lignes à scruter
Dans la feuille 2 (à comparer) il y a 13000 lignes à scruter
Ca prend longtemps à votre avis ?
hello
j'ai une erreur 438 sur cette ligne ci :
cnt = cnt + Application.WorksheetFunction.Abs(moy - val)
et l'erreur est placee uniquement sur ABS cense donner la valeur absolue. Le reste de la formule fonctionnant avec la fonction somme par exemple.
Une idee ?
Merci
j'ai une erreur 438 sur cette ligne ci :
cnt = cnt + Application.WorksheetFunction.Abs(moy - val)
et l'erreur est placee uniquement sur ABS cense donner la valeur absolue. Le reste de la formule fonctionnant avec la fonction somme par exemple.
Une idee ?
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon alors je ne comprend pas, je suis sur un PC anglais, et dans l'HELP liste des fonctions VBA n'apparait pas Abs ni Sqr...
quelqu'un aurai des infos?
merci
quelqu'un aurai des infos?
merci
Bonsoir,
en fait, ABS et SQR existent mais pas en Worksheetfunction.
ce sont des fonctions VBA natives
cordialement
PS : en feuille de calcul, c'est SQRT, donc en VBA tu peux écrire =[SQRT(2)] ou =SQR(2) pour obtenir la racine carrée de 2. la différence est dans les crochets qui font l'équivalent d'un Evaluate.
Ceci dit, utilise les fonctions VBA natives.
en fait, ABS et SQR existent mais pas en Worksheetfunction.
ce sont des fonctions VBA natives
cordialement
PS : en feuille de calcul, c'est SQRT, donc en VBA tu peux écrire =[SQRT(2)] ou =SQR(2) pour obtenir la racine carrée de 2. la différence est dans les crochets qui font l'équivalent d'un Evaluate.
Ceci dit, utilise les fonctions VBA natives.
En fait j'avais mal orthographié une instruction...
Merci encore,
Sandrillon