Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 3 123 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Condizioni nella If

  1. #1
    mario26 non è in linea Novello
    salve ragazzi, vorrei sapere se si possono inserire più condizioni all'interno della funzione "if .. then" per vba.
    io ho provato a scrivere la parola "or" tra una condizione e l'altra mi quando eseguo il codice, mi da errore.
    aiutatemi.

  2. #2
    Mario, questa è la sezione per il Visual Basic 6.

    Per Excel e VBA c'è una sezione apposita dove sposterò questa tua richiesta.
    Per il futuro, usa quella sezione per Excel e indica nel titolo qualcosa di più significativo, come da Regolamento.

    Per il tuo problema, a parte il fatto che la If non è una funzione e che le conoscenze di base (come questa) dovresti già averle, mostraci cosa hai scritto esattamente e indicaci cosa vorresti ottenere.
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    mario26 non è in linea Novello
    in realtà stavo realizzando un semplice questionario con parole da tradurre da inglese a italiano con calcolo degli errori comunicato con una msgbox. ne ho già realizzato uno con circa una decina di "if..then ...else" e sembrava un pò obsoleto. così ho cercato di realizzarne uno simile con la struttura enumerativa "for.. to..next" e poi inserendo una struttura di selezione con più condizioni. Questo è il succo della situazione. secondo voi come devo procedere ?

  4. #4
    PaoloTalini non è in linea Scribacchino
    Quote Originariamente inviato da mario26 Visualizza il messaggio
    in realtà stavo realizzando un semplice questionario con parole da tradurre da inglese a italiano con calcolo degli errori comunicato con una msgbox. ne ho già realizzato uno con circa una decina di "if..then ...else" e sembrava un pò obsoleto. così ho cercato di realizzarne uno simile con la struttura enumerativa "for.. to..next" e poi inserendo una struttura di selezione con più condizioni. Questo è il succo della situazione. secondo voi come devo procedere ?
    Per darti una soluzione dovresti allegare il tuo codice.
    Parlando, invece, di teoria:
    La struttura
    If b = 1 Then
        '....
    Else
        If b = 2 Then
            '......
        Else
            '....
        End If
    End If
    
    eccessivamente nidificata,
    rallenta il codice e potrebbe incorrere in soluzioni no volute.
    Valuta altre soluzioni tipo
    Select Case b
        Case Is = 1
            '.....
        Case Is = 2
            '.....
        Case Else
            '.....
    End Select
    
    ℹ️ Leggi di più su PaoloTalini ...

  5. #5
    mario26 non è in linea Novello
    questo è il codice da me utilizzato, solo chi mi è stato chiesto di farlo con l'iterazione enumerativa (for)
    codice:

    Private Sub correzione_2_Click()
    'dichiaro la variabile
    Dim word As Integer
    'imposto la variabile uguale a zero
    word = 0
    'se la parola nella cella è uguale a "foglio" il font sarà di colore verde scuro
    'e la variabile aumenta di uno
    
    If Cells(8, 11) = "foglio" Then
    Cells(8, 11).Font.Color = RGB(0, 194, 0)
    word = word + 1
    'altrimenti il font diventerà rosso
    Else: Cells(8, 11).Font.Color = RGB(225, 0, 0)
    End If
    'se la parola nella cella è uguale a "carta", il font sarà di colore verde scuro
    'e la variabile aumenta di uno
    If Cells(9, 11) = "carta" Then
    Cells(9, 11).Font.Color = RGB(0, 194, 0)
    word = word + 1
    'altrimenti il font diventerà rosso
    Else: Cells(9, 11).Font.Color = RGB(225, 0, 0)
    End If
    'se la parola nella cella è uguale a "automobile", il font sarà di colore verde scuro
    'e la variabile aumenta di uno
    If Cells(10, 11) = "automobile" Then
    Cells(10, 11).Font.Color = RGB(0, 194, 0)
    word = word + 1
    'altrimenti il font diventerà rosso
    Else: Cells(10, 11).Font.Color = RGB(225, 0, 0)
    End If
    'se la parola nella cella è uguale a "penna", il font sarà di colore verde scuro
    'e la variabile aumenta di uno
    If Cells(11, 11) = "penna" Then
    Cells(11, 11).Font.Color = RGB(0, 194, 0)
    word = word + 1
    'altrimenti il font diventerà rosso
    Else: Cells(11, 11).Font.Color = RGB(225, 0, 0)
    End If
    'se la parola nella cella è uguale a "pane", il font sarà di colore verde scuro
    'e la variabile aumenta di uno
    If Cells(12, 11) = "pane" Then
    Cells(12, 11).Font.Color = RGB(0, 194, 0)
    word = word + 1
    'altrimenti il font diventerà rosso
    Else: Cells(12, 11).Font.Color = RGB(225, 0, 0)
    End If
    'se la parola nella cella è uguale a "borsa", il font sarà di colore verde scuro
    'e la variabile aumenta di uno
    If Cells(13, 11) = "borsa" Then
    Cells(13, 11).Font.Color = RGB(0, 194, 0)
    word = word + 1
    'altrimenti il font diventerà rosso
    Else: Cells(13, 11).Font.Color = RGB(225, 0, 0)
    End If
    'se la parola nella cella è uguale a "rosso", il font sarà di colore verde scuro
    'e la variabile aumenta di uno
    If Cells(14, 11) = "rosso" Then
    Cells(14, 11).Font.Color = RGB(0, 194, 0)
    word = word + 1
    'altrimenti il font diventerà rosso
    Else: Cells(14, 11).Font.Color = RGB(225, 0, 0)
    End If
    'se la parola nella cella è uguale a "arma", il font sarà di colore verde scuro
    'e la variabile aumenta di uno
    If Cells(15, 11) = "arma" Then
    Cells(15, 11).Font.Color = RGB(0, 194, 0)
    word = word + 1
    'altrimenti il font diventerà rosso
    Else: Cells(15, 11).Font.Color = RGB(225, 0, 0)
    End If
    'se la parola nella cella è uguale a "parola", il font sarà di colore verde scuro
    'e la variabile aumenta di uno
    If Cells(16, 11) = "parola" Then
    Cells(16, 11).Font.Color = RGB(0, 194, 0)
    word = word + 1
    'altrimenti il font diventerà rosso
    Else: Cells(16, 11).Font.Color = RGB(225, 0, 0)
    End If
    'se la parola nella cella è uguale a "casa", il font sarà di colore verde scuro
    'e la variabile aumenta di uno
    If Cells(17, 11) = "casa" Then
    Cells(17, 11).Font.Color = RGB(0, 194, 0)
    word = word + 1
    'altrimenti il font diventerà rosso
    Else: Cells(17, 11).Font.Color = RGB(225, 0, 0)
    End If
    'se la variabile è uguale a 10, comparirà un messaggio dicendo di non aver fatto nessun errore
    If word = 10 Then
    MsgBox "Complimenti, non hai fatto nessun errore!", vbOKOnly, "Correzione"
    Else
    'se la variabile è uguale a 9, significa che l'utente h afatto un solo errore e comparirà un messaggio che glielo comunicherà
    If word = 9 Then
    MsgBox "Hai fatto " & 1 & " errore", vbOKOnly, "Correzione"
    'se avrà fatto più errori apparirà un messaggio che comunicherà ciò
    Else: MsgBox "Hai fatto " & 10 - word & " errori", vbOKOnly, "Correzione"
    End If
    End If
    End Sub
    
    Ultima modifica di AntonioG; 12-05-2014 16:26  Motivo: Aggiunti tag CODE

  6. #6
    Quote Originariamente inviato da mario26 Visualizza il messaggio
    mi è stato chiesto di farlo
    Scusa, ma da chi ti è stato chiesto? E' un esercizio scolastico?
    ℹ️ Leggi di più su AntonioG ...

  7. #7
    genespos non è in linea Scribacchino
    Ciao Mario,
    la soluzione proposta da Paolo (che saluto) con il Select Case è sicuramente la più appropriata ma se per una qualche ragione sei costretto ad usare If ... Then ... Else allora potresti integrare con ElseIf.

    Ti faccio un esempio:
    Sub IfThenElseIf()
    Dim A As Integer
    A = Cells(1, 1)
    
    If A < 0 Then
        MsgBox "A < 0"
    ElseIf A = 0 Then
        MsgBox "A = 0"
    ElseIf A > 0 And A < 10 Then
        MsgBox "A > 0 And A < 10"
    ElseIf A = 10 Then
        MsgBox "A = 10"
    ElseIf A > 10 Then
        MsgBox "A > 10"
    End If
    End Sub
    
    Ciao

  8. #8
    mario26 non è in linea Novello
    è un lavoro scolastico facoltativo, il prof mi ha chiesto di realizzarlo con l' iterazione enumerativa, e chiedevo se qualcuno di voi mi poteva aiutare.

  9. #9
    genespos non è in linea Scribacchino
    In questo caso ti consiglio vivamente di andare a leggere i tuo testo di riferimento dove sicuramente potrai trovare quello che ti occorre.

    Contemporaneamente ti sconsiglio le scorciatoie SOPRATUTTO SULLE BASI perché se non metabolizzi bene i concetti più semplici quando andrai avanti saranno dolori seri.

    Ciao

  10. #10
    mario26 non è in linea Novello
    intanto nessuno mi ha aitato ad ottenere ciò che chiedevo. grazie lo stesso a tutti quelli che hanno risposto fin ora

+ Rispondi al messaggio
Pagina 1 di 3 123 ultimoultimo

Potrebbero interessarti anche ...

  1. Condizioni multiple
    Da pgft nel forum Microsoft Excel
    Risposte: 15
    Ultimo Post: 13-03-2015, 18:10
  2. [Excel]Piu' condizioni... SE...
    Da ghost69 nel forum Microsoft Excel
    Risposte: 11
    Ultimo Post: 21-01-2009, 07:53
  3. Percorso nella seconda colonna, non nella prima
    Da xnitro nel forum Visual Basic .Net
    Risposte: 5
    Ultimo Post: 13-09-2007, 11:33
  4. If..then....condizioni In Excel
    Da virginiello nel forum Microsoft Excel
    Risposte: 1
    Ultimo Post: 31-01-2007, 14:43
  5. Condizioni multiple
    Da coccobil nel forum PHP
    Risposte: 4
    Ultimo Post: 22-05-2006, 21:14