IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Remplissage auto mini maxi en Vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 31
    Points : 21
    Points
    21
    Par défaut Remplissage auto mini maxi en Vba
    Salut, je pose mon problème : j'ai une feuille de calcul excel dont (B5 contient une liste de poids 100gr;250gr;500gr;1000gr) , (F4 contient une liste de produit (amande;pistache;noix;...)
    i5 = min pesée
    J5 = max pesée
    dans une deuxième feuille j'ai mis les valeurs min et max de chaque produit
    je veux que min et max dans I5 et J5 seront remplies automatiquement par ex : si B5= 100 gr et F4= pistache i5=B10<feuille2>
    un grand merci d'avance

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonjour,

    Je crois que tu devrais nous expliquer différemment ton problème car ce n'est pas clair.

    Dans une cellule tu n'as pas une liste par exemple...

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Si dans ta liste est écris "100 gr", il sera très compliqué de faire des opérations arithmétiques (comme le calcul du min et du max).
    Il serait mieux de rentrer dans la colonne uniquement la valeur numérique et de faire apparaitre l'unité par le format de nombre (Personnalisé > Standard" gr").
    Ceci fait, une simple fonction MAX() ou MIN ferait l'affaire.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Bonjour HAMMA, La forum
    une proposition si j'ai compris la demande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$F$4" Then Exit Sub
    Dim Tablo
    Dim i As Long
    Tablo = Sheets("Feuil2").Range("A2", "C" & Sheets("feuil2").Range("C" & Rows.Count).End(xlUp).Row)
    With Sheets("feuil1")
    For i = LBound(Tablo, 1) To UBound(Tablo, 1)
        If IsNumeric(Application.Match(CStr(Tablo(i, 1)), .Cells(4, 6), 0)) Then
            .Cells(5, "I") = Tablo(i, 2)
            .Cells(5, "J") = Tablo(i, 3)
        End If
    Next i
    End With
    End Sub
    Fichiers attachés Fichiers attachés
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 31
    Points : 21
    Points
    21
    Par défaut merci
    est ce que je peux joindre mon fichier pour que tu m'aide?

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    avec quelques ligne de données...pas un grand fichier
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 31
    Points : 21
    Points
    21
    Par défaut Bonjour Ben Nasr
    Désolé pour le retard j'ai pas eu les valeurs qu'aujourd'hui voila mon fichier, un grand merci d'avance :
    les valeurs en feuille 2
    Fichiers attachés Fichiers attachés

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    en i5 je met
    =SI(Tableau4[[#Cette ligne];[Colonne2]]<>"";RECHERCHEV(Tableau4[[#Cette ligne];[Colonne2]];Feuil2!A1:C15;2);"")
    en j5 je met
    =SI(Tableau4[[#Cette ligne];[Colonne2]]<>"";RECHERCHEV(Tableau4[[#Cette ligne];[Colonne2]];Feuil2!A1:C15;3);"")
    formule a etirer sur toute les ligne jusqu"a la ligne que tu veux
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Points : 350
    Points
    350
    Par défaut de l'intérêt des Tableaux (structurés)...
    Bonsoir,

    en créant le tableau Tb de titres de colonne Produit, Min, Max dans l'autre feuille (ou pas),
    les formules en colonne 1 et 2 du tableau des mimi et max à trouver seront
    =SI(To[@Colonne2]="";"";RECHERCHEV(To[@Colonne2];Tb;2))
    =SI(To[@Colonne2]="";"";RECHERCHEV(To[@Colonne2];Tb;3))
    nota :
    - le premier premier tableau ne se nomme plus Tableau4 mais To
    - le tableau Tb est trié selon les produits
    - avec le Tableau,les formules s'écrivent automatiquement en cas d'ajout de lignes, se corrigent en cas de suppression de lignes …
    - on peut, aussi, déplacer les tableaux sans avoir à modifier les formules.

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    oui ordonc convertir la feuille 2 en tableau simplifie les formules le principe est le meme
    et en effet cela permet d'ajouter ou supprimer des ligne dans le tableau structuré de la feuille 2 et les precedents dans les formules suivront
    bien vu donc heu...ordonc
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Points : 350
    Points
    350
    Par défaut
    re,
    Citation Envoyé par patricktoulon Voir le message
    bien vu donc heu...ordonc
    et d'un seul oeil !
    Puisque VBA demandé, pour un traitement possible avec le tableau To remanié, le tableau MM des cellules ciblées et le tableau Tb des données (déplacé ou pas) :
    Un contrôle ActiveX ComboBox nommé Cb (largeur , hauteur et emplacement colonne définis à la création) et
    2 macros dans la fenêtre de codes de la feuille (Alt F11)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    'initialisation position,affichage  de la liste
    Private Sub Worksheet_SelectionChange(ByVal R As Range)
      If Not Intersect(R, [To].Columns(2)) Is Nothing And R.Count = 1 Then
         Cb.List = [Tb].Columns(1).Value     'initialisation de la liste
         Cb.Top = R.Top                      'au niveau de la cellule
         Cb.Visible = 1                      'affichée
      End If
    End Sub
    'sélection d'un item
    Private Sub Cb_Change()       
    Dim Lo As Long, C As Range
      Lo = ActiveCell.Row - [To].Row + 1 'ligne active du tableau To(pas de la feuille)  
      Set C = [Tb].Find(Cb, lookAt:=1)
     'traitement de la cellule source et des cellules cibles
      If MsgBox("inclure le choix ?", vbYesNo, "la cellule n'est pas vide...") = 6 Then
        'inclure le nom et les nombres
        ActiveCell = Cb: [MM].Item(Lo, 1) = C(1, 2): [MM].Item(Lo, 2) = C(1, 3)
      Else
        'garder ou vider la cellule source et les cellules correspondantes
        If MsgBox("garder le contenu ?", vbYesNo, "Cellule non vide...") = 7 Then
          'vider pour oui
          ActiveCell = "": [MM].Item(Lo, 1) = "":  [MM].Item(Lo, 2) = ""
        End If
      End If
      Cb.Visible = 0
    End Sub
    Fichiers attachés Fichiers attachés

  12. #12
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    bonjour
    je recommande de bien lire les propositions de Patrick et OrDonc (Bon travail m'a permis d'apprendre bq de chose merci )
    Ma proposition qualifiée de DEBUTANT "E"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$B$5" Then Exit Sub
    Dim Plage As Range
    With Sheets("feuil2")
    Set Plage = .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row)
    End With
    C = WorksheetFunction.CountIf(Plage, Cells(5, 2))
    If C = 0 Then
    MsgBox ("Article choisi n'existe pas dans la liste des Min & Max ")
    Cells(5, "I") = ""
    Cells(5, "J") = ""
    Else
    Dim i As Long
    Tablo = Sheets("Feuil2").Range("A2", "C" & Sheets("feuil2").Range("C" & Rows.Count).End(xlUp).Row)
    With Sheets("feuil1")
    For i = LBound(Tablo, 1) To UBound(Tablo, 1)
        If IsNumeric(Application.Match(CStr(Tablo(i, 1)), .Cells(5, 2), 0)) Then
            .Cells(5, "I") = Tablo(i, 2)
            .Cells(5, "J") = Tablo(i, 3)
        End If
    Next i
    End With
    End If
    End Sub
    Fichiers attachés Fichiers attachés
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 31
    Points : 21
    Points
    21
    Par défaut merci pour vos réponse
    merci infiniment, une autre question svp :
    je voulais que les cellules de B9 - K14 seront diminuer automatiquement de 100
    ex si B9 = 500 elle n'affiche que 400

    pour être clair je travaille avec une balance et je dois tarer les valeurs avec excel
    valeur - poids de l'emballage = valeur exacte du contenu

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour
    on t'a donné une solution ; mais on va pas faire tout ton travail il sagirait d'aller chercher des tutos ou faq et d'apprendre c'est toi l'etudiant
    tu pourrais au moins essayer de faire ta formule a la main en enregistrant la macro et regarder ce que donne la formule dans le code ou meme dans la cellule
    tu en apprendrais beaucoup
    montre nous un peu plus d'effort et on t'aidera
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Probleme avec vba
    Par Rémick25 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/12/2010, 11h14
  2. probleme avec vba
    Par David1259 dans le forum VBA Access
    Réponses: 5
    Dernier message: 03/01/2009, 10h50
  3. [VBA WORD] Probleme avec un .dot
    Par jagdjg dans le forum VBA Word
    Réponses: 6
    Dernier message: 18/01/2006, 11h07
  4. Probleme avec FtpGetFileSize en VBA
    Par marot_r dans le forum Contribuez
    Réponses: 2
    Dernier message: 12/12/2005, 16h06
  5. [VBA-E] problème avec le sendkeys
    Par darkpocket dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/02/2005, 14h25

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