Excel e gli applicativi Microsoft Office IF semplice per calcolare il doppio di un numero

Login Registrati
Stai vedendo 13 articoli - dal 1 a 13 (di 13 totali)
  • Autore
    Articoli
  • #20021 Score: 0 | Risposta

    Damiano
    Partecipante

      Ciao, sto facendo queso esercizio in cui la Macro mi deve calcolare il doppio di un numero solo se questo è > 10.

      Io ho scritto così:

      Però niente da fare, mi scrive sempre "Il numero scritto è < 10". Non è corretto il controllo che faccio?

      Grazie

       

      #20022 Score: 0 | Risposta

      vecchio frac
      Senior Moderator
        272 pts

        Il controllo è corretto (if numero > 10 then). Però manca qualcosa... nella tua mente, ripercorri passo passo il flusso delle operazioni. Ti salterà agli occhi subito!

        Immagina di essere tu un computer quantistico che esegue pedissequamente le istruzioni con i dati *forniti*. Cosa osservi?

        #20023 Score: 0 | Risposta

        albatros54
        Moderatore
          89 pts

          Tu scrivi "calcolo del numero doppio solo se il numero inserito è > 10" si pero il Numero dove lo inserisci?

           

          Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
          Sempre il mare, uomo libero, amerai!
          ( Charles Baudelaire )
          #20024 Score: 0 | Risposta

          vecchio frac
          Senior Moderator
            272 pts

            Suggerimento aggiuntivo: accanto ad ogni istruzione (o subito prima) scrivi qualche parola di commento sullo scopo dell'istruzione  scritta sulla riga (o quella immediatamente seguente se scrivi il commento subito prima).

            Anche facendo così, l'errore (concettuale, non di sintassi) salterà subito fuori.

            #20025 Score: 0 | Risposta

            Damiano
            Partecipante

              Numero non è assegnato a nessuna cella!

              #20026 Score: 0 | Risposta

              patel
              Moderatore
                51 pts

                se ci pensi bene non hai neppure bisogno della variabile numero, basta usare le celle

                #20028 Score: 0 | Risposta

                Damiano
                Partecipante

                  patel ha scritto:

                  se ci pensi bene non hai neppure bisogno della variabile numero, basta usare le celle

                  Eh, non riesco ancora a ragionare a così livelli "bassi", sto molo più in superficie...

                  Per esempio, sto cercando di capire come assegnare a Numero il valore della cella che ho selezionato..

                  Numero = Range.Select

                  Perchè mi dà errore? Cos'è che sbaglio?

                  #20029 Score: 0 | Risposta

                  vecchio frac
                  Senior Moderator
                    272 pts

                    Damiano ha scritto:

                    Numero = Range.Select

                    Perchè mi dà errore? Cos'è che sbaglio?

                    Non utilizzi in modo corretto l'oggetto Range, che richiede di essere valorizzato con un riferimento a (nel caso più semplice)  una cella del foglio. Il riferimento si fa tipicamente con una stringa che identifica la riga e la colonna. Il Range così costruito rappresenta una cella del foglio: Range("C10") punta alla cella che si torva all'intersezione della colonna C e della riga 10.

                    Tu stesso nel tuo esempio iniziale lo hai utilizzato correttamente. Fai il ragionamento analogo e capirai.

                    Nota finale: quando alleghi del codice, fallo utilizzando il pulsante "(codice VBA)", non allegare un'immagine.

                    #20033 Score: 0 | Risposta

                    Marius44
                    Moderatore
                      58 pts

                      Ciao a tutti

                      Per Damiano

                      Oltre a quanto hanno detto i miei autorevoli colleghi, visto che sei alle prime armi, ti consiglio di imparare sin da subito ad a evitare il .Select - E' dispendioso.

                      Per esempio: la due righe di codice

                      Range("c3").Select

                      ActiveCell.Value = " eccetera "

                      Andrebbe meglio scritta così

                       

                      Range("c3") = " eccetera "

                      Ciao,

                      Mario

                      #20036 Score: 0 | Risposta

                      Damiano
                      Partecipante

                        vecchio frac ha scritto:
                        Non utilizzi in modo corretto l'oggetto Range, che richiede di essere valorizzato con un riferimento a (nel caso più semplice) una cella del foglio. Il riferimento si fa tipicamente con una stringa che identifica la riga e la colonna. Il Range così costruito rappresenta una cella del foglio: Range("C10") punta alla cella che si torva all'intersezione della colonna C e della riga 10.

                        Ok, compreso, grazie..

                        Nel mio caso però non ho una stringa a cui riferirmi, vorrei che la cella selezionata dal mouse venisse comparata al numero 10.

                        Quindi in testa mia viene da scrivere appunto:

                        Numero = Range.Select
                        'Assegno alla variabile il valore della cella selezionata
                            If Numero > 10 Then

                        ..ma non funziona, non riesco ad assegnare ad una variabile il valore della cella selezionata dal mouse.

                        Ricordo sempre che sto imparando la sintassi e la grammatica del VBA, per cui....abbiate pietà  

                        #20037 Score: 0 | Risposta

                        vecchio frac
                        Senior Moderator
                          272 pts

                          Damiano ha scritto:

                          vorrei che la cella selezionata dal mouse

                          Allora devi documentarti un pochino meglio sull'utilizzo del modello a oggetti di Excel. 

                          Scoprirai che esiste un metodo dell'oggetto Application chiamato "Activecell" che restituisce un riferimento alla cella correntemente selezionata (in generale, Application espone altri oggetti che sono in quel momento "Active": ActiveSheet, ActiveWorkbook, ecc.). Per esempio, inserisci "active" nel Visualizzatore Oggetti e vedi cosa restituisce (per restringere, puoi filtrare solo sulla libreria Excel lasciando perdere le altre).

                          In questo caso particolare poi Application (che è l'oggetto "padre") può essere omesso:

                          Numero = Activecell
                          'Assegno alla variabile il valore della cella selezionata
                              If Numero > 10 Then

                           

                          #20038 Score: 0 | Risposta

                          Damiano
                          Partecipante

                            Mitico!!! Davvero, per me è come nel film Matrix, voi vedete già tutto in verde, io invece per farlo devo andare a modificare il colore delle celle.... ...oppure attivare qualche formattazione condizionale  

                             

                            Ottimo, ora passo a qualche altro argomento!!

                            Grazie a tutti

                             

                            #20041 Score: 0 | Risposta

                            vecchio frac
                            Senior Moderator
                              272 pts

                              Damiano ha scritto:

                              voi vedete già tutto in verde

                               

                            Login Registrati
                            Stai vedendo 13 articoli - dal 1 a 13 (di 13 totali)
                            Rispondi a: IF semplice per calcolare il doppio di un numero
                            Gli allegati sono permessi solo ad utenti REGISTRATI
                            Le tue informazioni: