• T4CH
  • NEWS
  • VIDEO
Forum > Software

Problema con macro vba

Discussione inserita in 'Software' da Joshua, 30 Ottobre 2011.

  1. Joshua techUser

    Ciao ragazzi!
    Devo programmare una macro in VBA che accetti 20 numeri in entrata e ne faccia la somma.
    Io ho scritto questo codice:
    Sub Compito ()
    Dim x, y, z as integer
    For y=1 to 20
    x= Inputbox("Dammi un numero")
    z=x+x
    Next
    MsgBox("La somma è " & z)
    End Sub
    Il problema è che se ad esempio inserisco 20 volte 1 mi da come somma 11 e non 20. Qualcuno può aiutarmi?
    Grazie in anticipo :D
    Joshua, 30 Ottobre 2011
    #1
  2. luke1996 techUser

    Premetto che io conosco solo il c++, ma mi sembra che il problema fondamentale sia un po' di confusione tra y ed x, infatti tu dai come valore y conpreso tra 1 e 20, il valore che inserisci tu è x e poi tu gli dici di sommare due x che sono uguali... tutto questo non ha senso!
    luke1996, 30 Ottobre 2011
    #2
  3. Falko techBoss

    setta z con valore 0 all'inizio, poi la formula falla diventare z=z+x, il valore 'z=0' iniziale serve per non avere un potenziale errore di "valore indefinito" e comunque è sempre buona abitudine settare le variabili (esattamente come nel C dove invece sei obbligato a farlo).

    Ps: 'y' non serve a nulla se usi la sintassi giusta
    Pps: comunque dovresti farli tu i compiti di scuola, non farli fare ad altri :D
    Falko, 31 Ottobre 2011
    #3
    A luke1996 piace questo elemento.
  4. Joshua techUser

    Infatti li faccio io, solo che non riesco a venirne fuori, ora provo a fare come dici tu e poi vi faccio sapere.
    Joshua, 31 Ottobre 2011
    #4
  5. Joshua techUser

    Scusate ma qual è la formula per trovare il valore massimo che inserisco nell' inputbox? Nel senso, se inserisco: 1,2,3 nell' inputbox come faccio a fare un msgbox che mi riporta il numero più alto (in questo caso 3)?
    Joshua, 1 Novembre 2011
    #5
  6. Falko techBoss

    Puoi fare in 1000 modi, ad esempio fare un array e quindi comparare altrimenti (il modo in cui farei io se ne avessi bisogno) puoi creare una variabile che volta per volta raccoglie il numero più alto e che ad ogni inserimento confronta il valore introdotto con quello memorizzato.
    Questo ultimo sistema personalmente lo preferirei nel caso non sapessi quanti numeri devessi inserire effettivamente e non mi interessasse tenere uno storico senza contare che utilizza pochissime variabili, viceversa il primo sistema sarebbe comodo se volessi successivamente fare altre operazioni (ad esempio dovessi volter riciclare determinati valori per qualche motivo).
    Falko, 2 Novembre 2011
    #6
  7. Joshua techUser

    Ma come faccio ad inserire un array?
    Joshua, 2 Novembre 2011
    #7
  8. Falko techBoss

    Ci sono degli esempi chiarissimi sui manuali, tipo questo linkato
    Falko, 2 Novembre 2011
    #8
  9. magoo49 techAdvanced

    Il codice è sbagliato.
    Prova a scrivere z = z + x, anzichè z = x + x
    Non ricordo bene la sintassi di Msgbox, però prova a metterlo prima di next, e vedi come si comporta ad ogni inserimento
    magoo49, 2 Novembre 2011
    #9
  10. Joshua techUser

    Grazie! Ho un' altra domanda, dopo aver imparato a costruire un sito web in html secondo voi posso cominciare con il javascript?
    Joshua, 2 Novembre 2011
    #10
  11. Falko techBoss

    Decisamente si
    Falko, 3 Novembre 2011
    #11
  12. luke1996 techUser

    Forse faresti meglio a fare un po' di php/css prima
    luke1996, 4 Novembre 2011
    #12
Password dimenticata?
SU TERMINI DI SERVIZIO CONTATTACI