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 :

[VBA-Excel] Automatiser une recherche de valeurs cibles


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 366
    Points : 324
    Points
    324
    Par défaut [VBA-Excel] Automatiser une recherche de valeurs cibles
    Bonjour,

    je cherche à automatiser une recherche de valeurs cibles pour une plage de données, via une macro (ou par une formule mais là si on me trouve une formule pour faire ça sans macro je m'incline !!!)


    Pour trouver la commande macro de Valeur Cible d'Excel, j'ai lancé une macro et voici ce que j'obtiens (j'ai travaillé sur des données en colonne L). Comment faire pour continuer sur la ligne de telle sorte à faire de même pour les colonnes M à BA par exemple ?

    Merci d'avance pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ValeurCibleAuto()
    '
    ' ValeurCibleAuto Macro
     
        Range("L92").GoalSeek Goal:=0, ChangingCell:=Range("L122")
        Range("M122").Select
    End Sub
    Edit : j'ai placé ce sujet dans le forum Excel, peut-être serait-il mieux dans le sous forum consacré au VBA Excel...

  2. #2
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 366
    Points : 324
    Points
    324
    Par défaut
    J'avance, j'avance !! J'ai réussi à faire ça pour une ligne donnée, et pour un nombre de colonnes calculée.

    Maintenant, il ne reste plus qu'à trouver automatiquement la dernière colonne remplie et à pouvoir choisir (boite de dialogue ?) la ligne de début et la colonne de début (ou la première cellule sur laquelle on va faire l'opération) ainsi que la cellule à modifier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub ValeurCibleAuto()
    '
    ' ValeurCibleAuto Macro
     
        Dim i As Integer
     
        For i = 12 To 53
         ActiveSheet.Cells(92, i).GoalSeek Goal:=0, ChangingCell:=ActiveSheet.Cells(122, i)
        Next i
     
    End Sub

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut un peu plus loin
    Bonjour,
    je vous propose la solution suivante pour traiter le nombre de lignes voulu avec une valeur cible unique, dans mon cas, un taux de marge sur les ventes en fonction des frais sachant que les frais varient selon le prix de vente (le chien qui se mord la queue).
    Ensuite, libre à vous d'ajouter un bouton pour l’exécution.

    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
     
    Sub Ebay()
    '
    ' Ebay Macro
    ' Macro enregistrée le 19/04/2012 par Mady
    '
    ' Cellule contenant la valeur cible
        Dim A
        A = Range("C5")
     
    ' Cellules où je donne le numero de la 1ere et derniere ligne à traiter
     
        Dim I As Integer
        For I = Range("C6") To Range("E6")
    ' Traitement - ici la cellule à modifier est dans la colonne L et le résultat en J
    ' Là aussi, on peut utiliser des variables
     
        Range("L" + Trim(Str(I))).GoalSeek Goal:=A, ChangingCell:=Range("J" + Trim(Str(I)))
     
    Next
     
    End Sub

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir,
    ....et à pouvoir choisir (boite de dialogue ?) ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    macellule = Application.InputBox("un message")
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 16
    Dernier message: 11/12/2013, 11h20
  2. [VBA Excel] Appliquer une macro sur une celulle contenant une valeur
    Par tchauviere dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/01/2008, 10h21
  3. [VBA Xl2007] Effectuer une recherche dans l'aide Excel ou VBA
    Par SilkyRoad dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2007, 21h13
  4. [VBA-Excel] Effectuer une recherche dans une liste view
    Par Miles Raymond dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/11/2006, 17h21
  5. [VBA][Excel]Insérer une ligne
    Par loverdose dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2005, 16h27

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