Macro cerca obiettivo variabile se



  • Macro cerca obiettivo variabile se
    di Loto (utente non iscritto) data: 26/02/2016 11:59:41

    Salve a tutti,
    sto cercando di creare un modellino che trovi il prezzo di un prodotto tale da darmi un margine di 5%.

    Ho creato a tale proposito un tasto per la formula cerca obiettivo, così ogni volta che lo schiaccio mi trova il prezzo corretto per farmi arrivare al 5% di margine.

    Ora vorrei che il margine del 5% potesse essere diverso in base a quanti volumi di prodotto ipotizzo di vendere => ad esempio se i volumi sono aumentano del 30% allora cercherò l'obiettivo di margine del 10%, se invece aumentano del 50% allora l'obiettivo di margine sarà 15%, etc.

    Sapete quale linguaggio devo usare nella macro?

    Questo è il testo che per ora appare nella macro con obiettivo del 5% fisso:


     
    Sub PriceSetting1()
    '
    ' PriceSetting1 Macro
    '
    
    '
        Range("M50").Select
        Range("M50").GoalSeek Goal:=0.05, ChangingCell:=Range("M34")
    End Sub



  • di Luca73 data: 26/02/2016 12:15:09

    Ciao
    No è assolutamente chiaro come vuoi passare al programma questo obiettivo variabile:
    1) tramite inserimento manuale (tipo inputbox)
    2) tramite scrittura in una cella
    3) tramite formula calcolata in una cella
    4) Tramite formula calcolata da VBA?
    5) altro
    Ciao
    Luca








  • di loto (utente non iscritto) data: 26/02/2016 13:36:25

    Vorrei far dipendere il cambio di % sulla base del'aumento volumi.

    La formula sarebbe: se i volumi anno(x)/volumi anno(x-1) compreso tra 20% e 40% allora 6%; se anno(x)/volumi anno(x-1)>40% allora 5%

    Spero di averlo descritto in modo comprensivo



  • di Luca73 data: 26/02/2016 13:47:33

    Dove sono archiviati i dati di volumi anno(x) e volumi anno(x-1) ?
    Non puoi inviare un file (semplificato senza dati sensibili)?






  • di loto (utente non iscritto) data: 26/02/2016 14:00:06

    Non riesco ad allegare un file excel in questo sito

    Vorrei che in base all'aumento dei volumi cambiasse anche la % da raggiungere.



  • di Luca73 data: 26/02/2016 14:16:53

    La Sub sotto riportata fa quello che chiedi con le seguenti assunzioni:
    - che il Volume anno precedente sia in cella A1
    - che il Volume anno corrente sia in cella A2
    - che il valore si basato su anno(x)/volumi anno(x-1) e non su " esempio se i volumi sono aumentano del" altrimenti bisogna cambiare la formula di controllo.

    Per allegare il file in alto a destra trovi "allega file"

    Ciao
    Luca
     
    Option Explicit
    
    Sub PriceSetting1()
    Dim VolumeAnno
    Dim VolumeAnnoPrec
    Dim Percent
    
    ' PriceSetting1 Macro
    '
    'Assumo che il Volume anno precedente sia in cella A1
    VolumeAnnoPrec = Range("A1")
    'Assumo che il Volume anno corrente sia in cella A2
    VolumeAnno = Range("A2")
    'La formula sarebbe: se i volumi anno(x)/volumi anno(x-1) compreso tra 20% e 40% allora 6%; se anno(x)/volumi anno(x-1)>40% allora 5%
    Select Case (VolumeAnno / VolumeAnnoPrec * 100)
        Case 0 To 20
            Percent = 0.07
        Case 20 To 40
            Percent = 0.06
        Case Is > 60
            Percent = 0.05
        
    
    Range("M50").Select
        Range("M50").GoalSeek Goal:=Percent, ChangingCell:=Range("M34")
    End Sub