Effacer des cellules spécifiques mais variables

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.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Effacer des cellules spécifiques mais variables

Bonjour


Essaye ainsi


Code:
Sub Calcul()

    Range("B1").FormulaR1C1 = "Calcul"
    Range("B2").FormulaR1C1 = "=SQRT((R[1]C[-1]-RC[-1])*(R[1]C[-1]-RC[-1]))"
    Range("B2").AutoFill Destination:=Range("B2:B" & [A65536].end(xlUP).Row), Type:=xlFillDefault
    '
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Effacer des cellules spécifiques mais variables

Re




Oui comme cela aussi


Code:
Sub Calcul()
Range("B1").FormulaR1C1 = "Calcul"
Range("B2").FormulaLocal = "=RACINE((A2-A1)*(A2-A1))"
Range("B2").AutoFill Destination:=Range("B2:B" & [A65536].End(xlUp).Row), Type:=xlFillDefault
End Sub
 

geckotokai

XLDnaute Nouveau
Re : Effacer des cellules spécifiques mais variables

Merci à tous pour vos réponses mais aucune ne fonctionne totalement car dans les 3 cas la cellule B21 de l'exemple n'est pas effacée alors que je souhaiterais qu'elle le soit.

En effet la cellule A22 est vide donc le résultat en B21 est faux.
Peut-être faudrait-il quelque chose qui dise d'effacer en B en partant de B50 jusqu'à la cellule de la colonne B qui correspond à la cellule de la dernière valeur en A (de la première valeur rencontrée en remontant).
Merci
 

pierrejean

XLDnaute Barbatruc
Re : Effacer des cellules spécifiques mais variables

Re

Excuse moi de te contedire mais
le resultat 11 est exact racine((0-11)*(0-11)) est bien11
si toutefois tu ne veux pas de resultat en B22 modifie la macro comme ceci

Code:
Sub Calcul()

    Range("B1").FormulaR1C1 = "Calcul"
    Range("B2").FormulaR1C1 = "=SQRT((R[1]C[-1]-RC[-1])*(R[1]C[-1]-RC[-1]))"
    Range("B2").AutoFill Destination:=Range("B2:B" & Range("A65536").End(xlUp).Row [COLOR=Red]-[/COLOR] [COLOR=Red]1[/COLOR]), Type:=xlFillDefault
    'J'ai mis jusque 50 pour que cela fonctionne si j'ai plus de données en colonne A
        
End Sub
 

Discussions similaires