Somme + division

Bonjour à tous,

Je bloque sur quelque chose d'assez simple je pense, je voudrais simplement faire une somme de deux cellules plus une division par une autre comme dans le code ci-dessous :

wb.Sheets(1).Range("K8").Value = Application.WorksheetFunction.Sum(Range("D29:D31")) / Range("B8").value

Un petit coup de pouce serait le bienvenu.

Merci,

Nicolas

Bonjour

Sans le wb. cela marche parfaitement

Sheets(1).Range("K8").Value = Application.WorksheetFunction.Sum(Range("D29:D31")) / Range("B8").value

Cordialement

Bonjour,

Je propose :

Sub Essai()
  With Worksheets(1)
    If .[B8] <> 0 Then .[K8] = Application.WorksheetFunction.Sum(.[D29:D31]) / .[B8]
  End With
End Sub

OU :

Sub Essai()
  Worksheets(1).Select
  If [B8] <> 0 Then [K8] = Application.WorksheetFunction.Sum([D29:D31]) / [B8]
End Sub

Tu peux aussi remplacer Worksheets(1).Select par : If ActiveSheet.Name <> "Feuil1" Then Exit Sub

dhany

Bonjour,

Merci à vous deux d'avoir pris le temps de répondre, seulement avec toutes les propositions je reçois un message "erreur d’exécution 13 : incompatibilité de type"

C'est à cause des données de ta feuille ; merci de joindre ton fichier (sans données confidentielles).

dhany

EXCELPRATIQUE est le fichier hôte de la macro, il comporte de nombreuses feuilles, je n'en ai mis qu'une, celle sur laquelle je vais chercher les données.

Le second est celui sur lequel je veux réaliser toutes mes opé.

Bonjour Nicolas,

Ta macro MéL est plutôt assez longue ; aussi, je préfère que tu me dises toi-même sur quelle ligne de code l'erreur se produit : sur une ligne qui comporte une division, soit ! mais c'est pour quelle partie de code ? la colonne K ? la colonne M ? N ? R ? S ? T ?

Comme tu as 2 fichiers, ça complique les choses : vérifie si les cellules utilisées sont celles du bon fichier et pas l'autre ! si c'est le bon fichier, vérifie si c'est la bonne feuille (puisque tu as écrit qu'il y a plusieurs feuilles mais tu n'en n'as mis qu'une seule) ; enfin, quand tu seras sûr que c'est le bon fichier et la bonne feuille, vérifie que les cellules contiennent des nombres pour pouvoir faire la division ; et l'ajout d'un test tel que If [B8] <> 0 Then est pour éviter une erreur de division par zéro quand tu divises par B8.

dhany

Bonjour Dhany,

J'espère que tu as passé un bon week end.

En effet elle assez longue mais il s'agit en fait d'une répétition d'actions similaires, le problème se produit pour la colonne K mais l'erreur se produira sans doute sur toutes les autres colonnes étant donné que j'ai la même action.

Merci pour le if B8 <>0, car en manipulant un peu la chose je me suis rendu compte que même la somme toute seule ne fonctionnait pas, mais quand je rajoute ensuite la division cela me remet le même message d'erreur.

Enfin je suis sûr d'être sur le bon fichier et la bonne feuille car je copie d'abord tout dans le fichier et après je fais les calculs, ce qui est un peu lourd mais me permet d'éviter en théorie toute erreur..

Donc la ligne qui bug est sur un fichier à une feuille.

Merci à tous pour le temps passé sur mon problème, j'ai réussi à trouver une issue mais je ne saurais dire quel est le soucis.

Pour info, j'ai simplement sélectionner mon fichier et ma feuille sur une ligne différente et ce uniquement pour ma première ligne :

wb.Sheets(1).Activate
Range("K8").Value = Application.WorksheetFunction.Sum(Range("D29:D31")) / Range("B8").value

Pour les autres lignes j'ai laissé la configuration précédente et ça n'a pas l'air de poser problème.

Merci à tous.

Rechercher des sujets similaires à "somme division"