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 :

Exécution d'un code VBA avec deux conditions


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 439
    Points : 116
    Points
    116
    Par défaut Exécution d'un code VBA avec deux conditions
    Bonjour,

    En VBA, comment lancer un code avec deux conditions vérifiées ?

    Par exemple si en colonne C de C6 à C10, sur chaque ligne si Cx est vide la boucle s'arrête sinon elle continue, condition1.
    Condition 2 : De A6 à A10 j'ai des valeurs Mini :10, 9, 8 par exemple.
    De B6 à B10 j'ai des valeurs Maxi : 30,40,25.
    Ligne 6 Mini 10
    Maxi 40 le chiffre qui devra apparaitre en D6 devra être compris entre 6 et 40.

    Dans le code VBA est-il possible de modifier les valeurs cibles colonne D en tenant compte de ces deux conditions ?
    Si vous pouvez me donner un exemple pour comprendre ça serait super.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
      Range("G6").GoalSeek Goal:=Target.Value, ChangingCell:=Range("D6")
    End If
    End Sub
    Merci d'avance,
    Dans l'espoir d'avoir une réponse.
    Bonne après-midi
    @+

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 935
    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 935
    Points : 5 157
    Points
    5 157
    Par défaut
    Bonsoir
    Pour moi j'ai pas arrivé à comprendre ta requête. Toutefois si tu cherche à coder à deux conditions il suffit d'utiliser if et and
    premièrement définir la langueur maximale à traiter puis :
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    with sheets("feuil1")
    for i = 1 to i
    if .range ("A"& i ).value <40 and  .range ("A"& i ).value > 5 then
    .range ("C"& i )= .range ("A"& i ).value * 5
    end if
    next i
    end with

  3. #3
    Membre régulier Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 439
    Points : 116
    Points
    116
    Par défaut
    Merci pour ta réponse,
    Comment remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if .range ("A"& i ).value <40 and  .range ("A"& i ).value > 5 then
    40 et 5 par des cellules qui contiennent ces chiffres, car ils ne seront pas fixes.

    Merci,
    A bientôt

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 935
    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 935
    Points : 5 157
    Points
    5 157
    Par défaut
    bonsoir
    s'il s'agit de remplacer par des valeurs existent respectivement en B5 et C5 alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if .range ("A"& i ).value < .range ("B5").value and  .range ("A"& i ).value > .range ("B5").value then
    si la valeur de comparaison se trouve sur le même ligne alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if .range ("A"& i ).value < .range ("B"& i ).value and  .range ("A"& i ).value > .range ("C"& i ).value then

  5. #5
    Membre régulier Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 439
    Points : 116
    Points
    116
    Par défaut
    J'ai mis un classeur exemple, si ça veut fonctionné

    Merci.
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 935
    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 935
    Points : 5 157
    Points
    5 157
    Par défaut
    bonsoir
    mais cette catégorie (à savoir 20.6 kg) ne figure pas entre les paliers ??
    tu dis que cette valeur doit comprise entre le mini et le maxi alors que c'"est pas le cas dans ton exemple et malgré ça t'a fais des calculs !!
    aussi : ces valeurs sont fixes??
    Ms % UEL
    0.32 0.91
    0.25 0.71
    0.12 0.26
    plus d’éclaircissement svp
    en plus je crois que t'as pas besoin de recours à VBA , les fonctions standard de Excel fait l'affaire, à savoir SI combiné avec ET
    =SI(ET(A6<>"";A6>10;A6<15);"toto";"")

  7. #7
    Membre régulier Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 439
    Points : 116
    Points
    116
    Par défaut
    Non, les 20.6 kg ne sont pas dans les paliers, car le code la laissé passer.
    Les autres valeurs ne sont pas fixes, elles arrivent lorsqu'on sélectionne un nom par la formule recherchev.

    Il faut que les bornes soient prises en compte dans le code, car dans la colonne D il ne peut pas y avoir de formule, normalement on doit pouvoir taper un chiffre.

    Merci.

Discussions similaires

  1. copier le code vba avec sa mise en forme
    Par gritchou dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/06/2008, 09h00
  2. Code VBA avec caractère @
    Par Jacques-Henri dans le forum VBA Access
    Réponses: 4
    Dernier message: 09/11/2007, 21h01
  3. [VBA-E] Countif avec deux conditions
    Par bonilla dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/09/2007, 15h30
  4. Modifier Code VBA avec macro
    Par yadla dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/08/2007, 11h26
  5. Réponses: 2
    Dernier message: 13/09/2006, 00h03

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