Sviluppare funzionalita su Microsoft Office con VBA Posso risolvere con ciclo for?

LoginRegistrati
Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
  • Autore
    Articoli
  • #17280 Risposta

    Carmelo

      Buongiorno a tutti,

      ho un problema in quanto ho una serie di dati inseriti in una tabella che devo ordinare secondo un criterio sequenziale.
      Il criterio può essere considerato in questa maniera facendo un esempio:
      - ho 10 prodotti da poter utilizzare 
      - ogni prodotto ha 2 fasi per le quali impiego un tempo determinato
      - il 2 prodotto potrà iniziare ad essere utilizzato solo dopo che il 1 prodotto avrà terminato la fase 1 (tempo base di attesa) e la fase 2 (tempo di esecuzione per la prontezza del prodotto) del processo 
      Volendo utilizzare dei numeri (inseriti a caso) io ho il primo prodotto per il quale devo aspettare 40 minuti prima di poter passare alla seconda fase che poi durerà 20 minuti...alla luce di questo io il secondo prodotto potrò farlo arrivare alla seconda fase solo dopo 60 minuti (40 minuti prima fase + 20 minuti seconda fase)
      Faccio due esempi per il secondo prodotto e cioè uno nel caso il tempo base di attesa di più alto fosse più alto del della somma delle due fasi del prodotto 1 e l'altro invece nel caso dovesse essere inferiore 
      Primo esempio - il secondo prodotto ha come prima fase 80 minuti e pertanto devo comunque aspettare 80 minuti prima di farlo passare alla seconda fase perchè maggiore dei 60 minuti di completamento del prodoto 1 e sommarlo al tempo della fase 2. 
      Secondo esempio - il secondo prodotto ha come prima fase 50 e pertanto non posso farlo partire dopo 50 minuti in quanto il primo prodotto finirà solo dopo 60 minuti e quindi sommerò la fase 2 del secondo prodotto ai 60 minuti ottenuti in precedenza
      - tramite excel farei sicuramente dei "se" per controllare se il prodotto 2 è più grande del prodotto 1 alla fase 2 (quindi fase 1 + fase 2) ed ho iniziato a scrivere cicli if, ma mi rendo conto che diventa una programmazione lunga che molto probabilmente potrebbe essere risolta con un ciclo for

      In linguaggio Excel sarebbe così per la cella D14 (ad esempio) =SE(D4<C14;C14+D5;D4+D5)... come lo traduco in linguaggio VBA?

      Grazie in anticipo

       

      #17286 Risposta

      vecchio frac
      Senior Moderator
      • Sfida #1
        171 pts

        E' un quesito lungo per il quale ci ho messo un po' ad afferrare il concetto ma credo che alla fine tu ti sia spiegato abbastanza bene 🙂 

        Al momento non ho da dedicarti molto tempo ma credo che (almeno per curiosità) appena posso ci penso un attimo.

        Tradurre la formula in VBA non è difficile ma rischio di darti un'imbeccata sbagliata, non avendo ben padroneggiato lo scenario.

         

        #17287 Risposta
        patel
        patel
        Moderatore
        • Sfida #6
          33 pts

          allega un file di esempio con i dati, il risultato desiderato ed anche il codice che hai scritto

          #17309 Risposta
          PMC77
          PMC77
          Partecipante
            2 pts

            Se alleghi un file xlsm con quello che più o meno hai già imbastito sarebbe davvero più facile!

            #17371 Risposta

            Cecio

              prova con Cells

              mi spiego meglio: la cella A1 è Cells(1,1)

              quindi per selezionare la cella A1 puoi anche scrivere:

              Cella(1,1).select

              ma puoi anche scrivere:

              r=1

              cells(r,1).select

              il comando cells funziona così: cells(riga,colonna)

              spero di esserti stato utile

               

            LoginRegistrati
            Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
            Rispondi a: Posso risolvere con ciclo for?
            Gli allegati sono permessi solo ad utenti REGISTRATI
            Le tue informazioni:



            vecchio frac - 2714 risposte

            albatros54
            albatros54 - 714 risposte

            patel
            patel - 626 risposte

            Marius44
            Marius44 - 542 risposte

            Luca73
            Luca73 - 508 risposte