Soustraction dans une colonne Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
F
Filou93
Membre habitué
Membre habitué
Messages : 60
Inscrit le : 9 juin 2018
Version d'Excel : 2016 FR

Message par Filou93 » 10 juin 2018, 03:17

Bonjour à tous,

J'ai un soucis qui me bloque, je souhaite soustraire chaque ligne de ma colonne avec une seule moyenne et bien sûr afficher le résultat sur la colonne d'à coté. J'ai beaucoup de mal, j'ai beau chercher partout sur le net c'est assez compliqué. Merci de bien vouloir m'aider.

Merci d'avance pour votre aide.

Je vous joint un exemple du tableau que je suis entrain d'automatiser. J'ai les X et je souhaiterai pour chaque ligne faire X-M, M qui est la moyenne des X puis après je pourrais mettre X-M au carré.
Exemple.xlsx
(22.44 Kio) Téléchargé 5 fois
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 7'075
Appréciations reçues : 698
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 10 juin 2018, 03:35

Bonjour Filou93,

:bv:

Je te retourne ton fichier Excel modifié :
Exemple.xlsx
(9.9 Kio) Téléchargé 8 fois
Regarde la formule en H9, et aussi celle en I9:wink:
(déjà tirées vers le bas jusqu'en ligne 24)

Si besoin, tu peux demander une adaptation.
Merci de me dire si ça te convient.

dhany
F
Filou93
Membre habitué
Membre habitué
Messages : 60
Inscrit le : 9 juin 2018
Version d'Excel : 2016 FR

Message par Filou93 » 10 juin 2018, 03:56

Bonjour Dhany,

Merci à toi,

Je te remercie pour ta réponse rapide, je souhaiterai l'automatiser sur vba justement j'ai oublié de le préciser mdrr, en copiant un seul tableau pour l'exemple les formules du tableau ont bouger, mais je sais le faire sur excel, j'ai déjà automatiser une bonne partie de ce que je veux faire, la soustraction et le fait de mettre le résultat dans la cellule que je veux j'arrive pas du tout :cry:
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 7'075
Appréciations reçues : 698
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 10 juin 2018, 04:15

Je te retourne ton fichier modifié :
Exemple.xlsm
(15.85 Kio) Téléchargé 9 fois
Ctrl e ➯ travail effectué

Alt F11 pour voir le code VBA, puis revenir sur Excel

Si besoin, tu peux demander une adaptation.
Merci de me dire si ça te convient.

dhany
F
Filou93
Membre habitué
Membre habitué
Messages : 60
Inscrit le : 9 juin 2018
Version d'Excel : 2016 FR

Message par Filou93 » 10 juin 2018, 05:17

Merci Dhany sa marche nickel, de base je voulais faire en sorte que sa s'adapte à chaque taille d'échantillons pas pour un cas précis mais le code que ta fais est énorme ! Merci beaucoup
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 7'075
Appréciations reçues : 698
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 10 juin 2018, 10:36

Filou93 a écrit :je voulais faire en sorte que ça s'adapte à chaque taille d'échantillons pas pour un cas précis
c'est déjà fait !  :P :lol:  si tu ajoutes des échantillons avant la dernière ligne de données, tu verras qu'ils sont pris en compte !  ;;)
ah ben j'crois qu'mon code est plus énorme que tu pensais, alors !  ::D  :¬OL:  c'est quand même toujours gratuit !  8-)

exemple : insère une ligne avant la ligne 24 ; saisis C en F24 et 30 en G24 ➯ Moyenne en G28 : 9,29411765 ; refais Ctrl erésultats, des lignes 9 à 25 ; mais je vais quand même faire une version encore améliorée (et aussi gratuite).

dhany
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'173
Appréciations reçues : 630
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 10 juin 2018, 12:14

Bonjour à tous,
Nul besoin de VBA pour ta question.
Il suffit de mettre tes données sous forme de tableau (dynamique) pour cela.
Voir fichier pour l'exemple.
Cdlt.
Filou93.xlsx
(18.38 Kio) Téléchargé 3 fois
snip_20180610120910.png
snip_20180610120910.png (13.61 Kio) Vu 165 fois
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 7'075
Appréciations reçues : 698
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 10 juin 2018, 12:15

@Filou93

Lis d'abord mon message précédent, puis celui-ci.

La nouvelle version est terminée :
Exemple.xlsm
(16.37 Kio) Téléchargé 6 fois
Avec la version précédente, quand tu insérais une ligne de donnée juste avant la ligne Total, elle était prise en compte par le code VBA, mais pas par les 3 formules de Total, Effectif, Moyenne : ça restait pour la plage G9:G24, donc ça n'allait pas !  ::( :cry:

Solution : j'ai effacé les 3 formules : tu verras qu'elles sont mises correctement par le code VBA.

Exemple à suivre tel quel pour la démo :

Note qu'au départ, G25:G27 est vide ; normal, vu qu'y'a plus d'formules !  :wink:

Ctrl e ➯ travail effectué ; tu peux vérifier que les formules sont les mêmes que dans le fichier précédent, donc résultats identiques ; seule petite différence : la moyenne est avec 2 décimales, donc 8,00 au lieu de 8.

Insère une ligne juste avant la ligne Total ; en F25, saisis D ; en G25, saisis 30 ; tu peux voir qu'un petit triangle vert est apparu pour les 3 cellules des formules ; c'est normal : « La formule de cette cellule fait référence à une plage ayant des nombres supplémentaires adjacents » ; ne te préoccupe pas de ça, et fais Ctrl e ➯ nouvelles formules avec la plage G9:G25, donc les 3 petits triangles verts ont disparu !  :)

Le Total est passé de 128 à 158 ; l'Effectif est passé de 16 à 17 ; la Moyenne est passée de 8,00 à 9,29 ; et tous les autres résultats sont avec 2 décimales ; mais attention : quand tu liras le code VBA, tu pourras comprendre que seuls les résultats affichés sont arrondis à 2 décimales, car tous les calculs sont faits avec la précision maximale.  :D

À te lire pour avoir ton avis.  ;;)

dhany  Image
F
Filou93
Membre habitué
Membre habitué
Messages : 60
Inscrit le : 9 juin 2018
Version d'Excel : 2016 FR

Message par Filou93 » 10 juin 2018, 17:36

Merci beaucoup c'est super gentil d'avoir pris le temps de m'aider, sa me débloque énormément pour la suite, j'ai une autre question s'il te plait, saurais-tu comment clear la dernière et l'avant dernière ligne d'une colonne, j'ai essayer de le faire avec un code, mais sa me supprime la ligne de toutes les colonnes alors que je veux juste effacer le contenu.

Le code est le suivant :

Dim dlig As Long

dlig = Range("A" & Rows.Count).End(xlUp).Row


Rows(dlig - 1 & ":" & derlign).EntireRow.Delete

Merci d'avance
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 7'075
Appréciations reçues : 698
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 10 juin 2018, 17:39

au lieu de .Delete utilise .ClearContents (et sans EntireRow) :

Rows(dlig - 1 & ":" & dlig).ClearContents

note : j'ai mis .ClearContents car .Clear efface tout, y compris tous les formats : formats de nombres, alignements, bordures, remplissage et autres.

remarque : pour ta suppression de lignes, tu aurais pu utiliser plus simplement, sans EntireRow :

Rows(dlig - 1 & ":" & dlig).Delete

dhany
Modifié en dernier par dhany le 10 juin 2018, 18:08, modifié 1 fois.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message