geckotokai
XLDnaute Nouveau
Bonjour, je vais essayer d'être le plus clair possible.
Je vous ai mis en pièce jointe un fichier Excel qui contient une macro « Calcul ».
Sur la feuille Excel, en A1 se trouve le titre de la colonne A soit « Var1 » et au-dessous des données numériques. Il y a dans mon exemple 20 données (cellules A2 à A21) mais le nombre de données peut changer (être plus long ou plus court).
La macro Excel « Calcul » effectue dans la cellule B2 le calcul suivant : RACINE((A2-A1)*(A2-A1)) et ainsi de suite jusque la cellule B50.
Voici le code :
Sub Calcul()
Range("B1").Select
ActiveCell.FormulaR1C1 = "Calcul"
Range("B2").Select
ActiveCell.FormulaR1C1 = "=SQRT((R[1]C[-1]-RC[-1])*(R[1]C[-1]-RC[-1]))"
Selection.AutoFill Destination:=Range("B2:B50"), Type:=xlFillDefault
'J'ai mis jusque 50 pour que cela fonctionne si j'ai plus de données en colonne A
End Sub
Si vous exécutez la macro, vous obtenez les résultats en B. Mais dans mon exemple, à partir de la cellule B21 le résultat est faux puisque la cellule A22 est vide.
J’en arrive donc à ma demande. Je voudrais savoir comment coder pour que le contenu des cellules où le résultat est faux soit effacé. Dans mon exemple, il faudrait que les cellules B21 à B50 soient effacées.
Merci pour votre aide.
Je vous ai mis en pièce jointe un fichier Excel qui contient une macro « Calcul ».
Sur la feuille Excel, en A1 se trouve le titre de la colonne A soit « Var1 » et au-dessous des données numériques. Il y a dans mon exemple 20 données (cellules A2 à A21) mais le nombre de données peut changer (être plus long ou plus court).
La macro Excel « Calcul » effectue dans la cellule B2 le calcul suivant : RACINE((A2-A1)*(A2-A1)) et ainsi de suite jusque la cellule B50.
Voici le code :
Sub Calcul()
Range("B1").Select
ActiveCell.FormulaR1C1 = "Calcul"
Range("B2").Select
ActiveCell.FormulaR1C1 = "=SQRT((R[1]C[-1]-RC[-1])*(R[1]C[-1]-RC[-1]))"
Selection.AutoFill Destination:=Range("B2:B50"), Type:=xlFillDefault
'J'ai mis jusque 50 pour que cela fonctionne si j'ai plus de données en colonne A
End Sub
Si vous exécutez la macro, vous obtenez les résultats en B. Mais dans mon exemple, à partir de la cellule B21 le résultat est faux puisque la cellule A22 est vide.
J’en arrive donc à ma demande. Je voudrais savoir comment coder pour que le contenu des cellules où le résultat est faux soit effacé. Dans mon exemple, il faudrait que les cellules B21 à B50 soient effacées.
Merci pour votre aide.
Dernière édition: