1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : mars 2017
    Messages : 2
    Points : 1
    Points
    1

    Par défaut Questions de VBA (Extraction, tri, cumul..)

    Bonjour,

    Je suis en train d'effectuer un vba sur excel:
    Mon but: Extraire les codes de produits qui présentent un niveau de prix anormal à la moyenne de ses derniers.
    En fait, j'ai calculé la moyenne des prix de mes produits sur excel, et je voudrais savoir comment extraire les codes des produits qui sont au dessus de la moyenne via le VBA et ensuite les afficher dans un msgbox.

    De plus, Je voudrais savoir comment rassembler dans un seul fichier les informations issues de deux autres fichiers, trier le fichier et enfin créer un fichier cumulé?


    Ci joint mon fichier excel pour ma première question qui concerne les produits
    Moyenne prix des produits.xlsx

    Je vous remercie d'avance pour votre aide
    Cordialement

  2. #2
    Membre émérite
    Femme Profil pro
    Étudiant
    Inscrit en
    octobre 2016
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2016
    Messages : 1 478
    Points : 2 426
    Points
    2 426

    Par défaut

    Bonjour et bienvenue sur le forum,

    Si tu veux obtenir une réponse efficace, il faut que tu nous explique mieux ton problème. Qu'as-tu fait pour l'instant? Où exactement bloques-tu? As-tu un message d'erreur quelque part quand tu exécutes ton code? Si oui, lequel et où exactement? Si non, où bloques-tu? Dans la conception du projet (et quelles sont tes idees pour l'instant)? Tu ne sais pas quelle formule utiliser pour tel ou tel application?

    Ne nous envoie pas un fichier joint, mais écris nous le code qui te pose problème.

    Un peu de lecture, pour poser ta question de manière à ce qu'on arrive mieux à y répondre :
    http://club.developpez.com/regles/#LIV-N
    https://www.developpez.net/forums/d8...s-discussions/

    Bon courage et à bientôt avec plus d'infos

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : mars 2017
    Messages : 2
    Points : 1
    Points
    1

    Par défaut Re

    Bonjour
    Comme je l'ai dit précédemment Je suis en train d'effectuer un vba sur excel. Je voudrais savoir la formule pour extraire les codes de produits qui présentent un niveau de prix supérieur et inférieur à la moyenne de ses derniers via le VBA et ensuite les afficher dans un msgbox.

    J'ai commencé à effectuer le vba:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MsgBox ("le prix moyen d'un produit est de ") & Range("E12")
    For ligne = 2 To 34
    If sheet(feuille1).Cells(ligne, 4).Value = "produit" Then
    ..?
    je voudrais savoir ensuite qu'elles sont les formules et les étapes pour:
    - rassembler dans un seul fichier des informations issues de deux autres fichiers,
    - trier un fichier
    - et enfin créer un fichier cumulé?

    En espérant être plus claire
    Cordialement,

  4. #4
    Membre émérite
    Femme Profil pro
    Étudiant
    Inscrit en
    octobre 2016
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2016
    Messages : 1 478
    Points : 2 426
    Points
    2 426

    Par défaut

    codes de produits qui présentent un niveau de prix supérieur et inférieur à la moyenne de ses derniers
    Comme tu le suggères, il faudra une condition if. Pour connaitre la valeur inscrite dans une cellule, on utilisie la méthode .Value.
    Imaginons que la moyenne est dans la cellule Z1 et que les valeurs des niveaux sont dans la colonne B. Pour un produit en ligne 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim moyenne As Double
    With Sheets("ma feuille")
        moyenne = .Range("Z1").Value
        If .Range("B2").Value > moyenne Then
           'opération à faire si valeur supérieure à la moyenne
       Else If .Range("B2").Value < moyenne Then
           'opération à faire si valeur inférieure à la moyenne
       End If
    End With
    Si l'opération est la même si > ou si < à la moyenne, on peut faire tout simplement si différente de la moyenne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim moyenne As Double
    With Sheets("ma feuille")
        moyenne = .Range("Z1").Value
        If .Range("B2").Value <> moyenne Then
           'opération à faire si valeur différente de la moyenne
       End If
    End With
    Je voudrais savoir la formule pour extraire les codes de produits [...] et ensuite les afficher dans un msgbox.
    On fait une boucle sur tous les produits (sur les lignes avec des produits du coup) et à chaque iteration on repère si la valeur <> de la moyenne. Si la valeur <> moyenne, on extrait le code produit et on l'ajoute à une chaine de caractère qu'on l'on affichera en message box à la fin. Une idée de code, en supposant que les codes produits sont en coloonne A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim chaine As String
    Dim i As Long
    With Sheets("ma feuille")
        For i = 2 To 100     'numéros de lignes à adapter
            'condition if, dans le cas où valeur <> moyenne:
            chaine = chaine & " | " & .Range("A" & i).Value      'permet de concaténer la chaine pré-existente avec le code produit du produit en ligne i
        Next i
        MsgBox chaine
    End With
    rassembler dans un seul fichier des informations issues de deux autres fichiers
    C'est un peu vague comme explication. S'agit-il de copier-coller des lignes d'un fichier vers une autre fichier? Dans ce cas, je t'invite à utiliser l'enregistreur de macro et A ADAPTER le code qui est généré.

    trier un fichier
    Un peu vague aussi. Mais tu si tu sélectionnes les colonnes à trier, puis que tu utilises la fonctionnalités d'Excel Accueil > Edition > Trier et filtrer, tu peux trier ta feuille. Pour avoir le code équivalent en VBA, utilise là encore l'enregistreur de macro.

    et enfin créer un fichier cumulé
    Quelle différence avec "rassembler dans un seul fichier des informations issues de deux autres fichiers" ?

    Ce sont des idées, à adapter à ton cas et à mettre bout à bout. Cependant, je t'invite à relire l'article suivant :
    http://club.developpez.com/regles/#LIV-N

Discussions similaires

  1. [VBA-E] tri sur VBA pour Excel
    Par mariedrouin dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 21/05/2006, 14h32
  2. [VBA-E]tri/sélection dans une feuille
    Par philpommé dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/04/2006, 21h18
  3. [VBA-E]Comment cumuler le résultat de pusieurs feuilles
    Par LouBoulpi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/02/2006, 19h35
  4. [VBA-E]Tri d'une plage par une colonne
    Par illight dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/02/2006, 11h53
  5. [VBA-E] Tri en fonction de lettre
    Par Deejoh dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/10/2005, 17h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo