Risultati da 1 a 7 di 7

Discussione: Modificare valore celle in base ad una condizione esterna ad esse



  1. #1
    L'avatar di ciaociauciao
    Clicca e Apri
    Data Registrazione
    Aug 2016
    Località
    a casa
    Messaggi
    3
    Versione Office
    2016
    Likes ricevuti
    0
    Likes dati
    0

    Modificare valore celle in base ad una condizione esterna ad esse

    Salve,
    sono un nuovo iscritto e premetto che non ne so molto di Excel. Detto questo, vi chiedo aiuto per risolvere il seguente problema :

    Sto cercando di gestire dei turni ( ogni turno è pari ad 1 ora ) di lavoro, ed ho una colonna dove immetto il numero di persone minime nel turno, ed una riga dove immetto il numero di ore per le quali ogni persona lavorerà.
    Mi ritrovo però con il numero di persone minime durante un turno non raggiunto, e la soluzione a cui ho pensato è dare priorità a quel dato, ovvero che se il numero di persone minime non viene raggiunto, la persona che quel giorno ha il numero di ore di lavoro minore lavora un'ora in più, di conseguenza incremento di 1 la cella con le ore riferita a quella persona.

    La prima cosa che viene in mente è un SE, nella cella delle ore, però io voglio quel dato "personalizzabile", nel senso che non ci voglio una formula ma un semplice numero da poter inserire a piacimento. Di conseguenza vorrei che sia un'altra cella a fare il controllo e a modificare le ore, cosa che non so se si possa fare senza macro. Ho già la funzione che mi trova le ore minime, e anche le coordinate della cella corrispondente al numero di ore minimo, però per modificarne il contenuto da una seconda cella non so come fare.

    In poche parole : SE 'ContenutoCella1' < 'ContenutoCella2' ALLORA 'ContenutoCella3'+1 <---- Come???

    Ringrazio in anticipo per le risposte, e chiedo perdono per la confusione ma non sapevo nemmeno tanto bene come porre la domanda.

    D.

  2. #2
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: Modificare valore celle in base ad una condizione esterna ad esse

    ciao
    metti un file di esempio col risultato che si dovrebbe ottenere

  3. #3
    L'avatar di ciaociauciao
    Clicca e Apri
    Data Registrazione
    Aug 2016
    Località
    a casa
    Messaggi
    3
    Versione Office
    2016
    Likes ricevuti
    0
    Likes dati
    0

    Re: Modificare valore celle in base ad una condizione esterna ad esse

    Citazione Originariamente Scritto da Danilo Fiorini Visualizza Messaggio
    ciao
    metti un file di esempio col risultato che si dovrebbe ottenere
    Mmmh.. non credo di aver capito la tua richiesta. Più che altro perché oltre che a parole non saprei come far vedere ciò che vorrei, proprio perché non lo so fare in Excel.

    Provo con un altro esempio :
    In A1 ho '1'. In B1 ho '2'. In D1 ho '5'.
    Se A1 < B1 , allora D1 diventa 6.
    Però D1 dev'essere completamente personalizzabile, non dev'essere una formula. Nel senso che se io voglio scrivere in D1 '5', posso farlo senza cancellare nessuna formula, anche se la formula in qualche altra cella mi riporta D1 a '6'..

  4. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: Modificare valore celle in base ad una condizione esterna ad esse

    Ciao,
    per quel che chiedi serve il vba.

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("A1:B1")) Is Nothing Then
            Application.EnableEvents = False
                If Range("A1") < Range("B1") Then
                   Range("D1") = 6
                End If
            Application.EnableEvents = True
        End If
    End Sub
    Prova il file allegato.
    File Allegati File Allegati
    • Tipo File: xlsm 5&6.xlsm (32.7 KB, 11 Visualizzazioni)
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  5. I seguenti utenti hanno dato un "Like"


  6. #5

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Modificare valore celle in base ad una condizione esterna ad esse

    Visto che sei nuovo del Forum, è gradita una presentazione QUI, ti consiglio anche di leggerti il “Regolamento” e di visitare la sezione “Annunci dello staff”,

  7. #6
    L'avatar di ciaociauciao
    Clicca e Apri
    Data Registrazione
    Aug 2016
    Località
    a casa
    Messaggi
    3
    Versione Office
    2016
    Likes ricevuti
    0
    Likes dati
    0

    Re: Modificare valore celle in base ad una condizione esterna ad esse

    Scusate la mia assenza.

    Allora :
    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Visto che sei nuovo del Forum, è gradita una presentazione QUI, ti consiglio anche di leggerti il “Regolamento” e di visitare la sezione “Annunci dello staff”,
    Fatto!

    Citazione Originariamente Scritto da ges Visualizza Messaggio
    Ciao,
    per quel che chiedi serve il vba.

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("A1:B1")) Is Nothing Then
            Application.EnableEvents = False
                If Range("A1") < Range("B1") Then
                   Range("D1") = 6
                End If
            Application.EnableEvents = True
        End If
    End Sub
    Prova il file allegato.
    Ti ringrazio per la risposta. Il tuo codice mi è stato molto utile, ed ho provato con le mie misere conoscenze ad adattarlo alle mie necessità ed alla mia tabella :

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim nummin As Integer
    Dim colum As Integer
    
    
        If Not Intersect(Target, Range("R2:T16,B18:Q18")) Is Nothing Then
            Application.EnableEvents = False
                If Range("R15") < Range("T15") Then
                    While Range("R15") < Range("T15")
                        nummin = Application.WorksheetFunction.Small(Range("B18:Q18"), Application.WorksheetFunction.CountIf(Range("B18:Q18"), "0") + 1)
                        colum = Application.WorksheetFunction.Index(Range("B18:Q18"), Application.WorksheetFunction.Match(nummin, Range("B18:Q18"), 0) + 1)
                        MsgBox nummin & " " & colum
                        Range("F18") = Range("F18") + 1
                        Range("R15") = Range("R15") + 1
                    Wend
                End If
            Application.EnableEvents = True
        End If
    End Sub
    Come puoi vedere dal codice però, se riesci a capirne qualcosa, sto cercando di recuperare le coordinate, nel senso, la posizione della cella contenente il numero minore ( che sia diverso da 0 ) in quel range di celle, soltanto che ho parecchie difficoltà nel farlo --> non ci sto riuscendo. Sto cercando di recuperare l'indirizzo poiché ho bisogno che nell'istruzione sotto, quella che incrementa di 1 F18, ci sia l'indirizzo della cella con il numero minore e non una cella specifica.
    Sapreste aiutarmi?
    Anche perché ho cercato in internet ed ho trovato questa fantomatica funzione .Address, che però non esce fuori tra i suggerimenti ed infatti mi da errore scrivendola.

    PS: Sapresti spiegarmi brevemente a cosa servono le righe :
    Codice: 
    If Not Intersect(Target, Range("R2:T16,B18:Q18")) Is Nothing Then
            Application.EnableEvents = False
    ??
    Grazie!!

  8. #7

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: Modificare valore celle in base ad una condizione esterna ad esse

    Citazione Originariamente Scritto da ciaociauciao Visualizza Messaggio
    ....
    PS: Sapresti spiegarmi brevemente a cosa servono le righe :
    Codice: 
    If Not Intersect(Target, Range("R2:T16,B18:Q18")) Is Nothing Then
            Application.EnableEvents = False
    ??
    Grazie!!
    Servono a limitare l'esecuzione del codice solo se si si modifica (Change) l'intervallo specificato .. nel tuo caso Range("R2:T16,B18:Q18") in modo che se modifichi qualsiasi altra parte del foglio non si scatena l'evento, in pratica non succede nulla.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

Discussioni Simili

  1. eliminare riga in base al valore delle celle
    Di alex_drastic nel forum Domande su Excel VBA e MACRO
    Risposte: 1
    Ultimo Messaggio: 16/02/17, 11:44
  2. [Risolto] Numerazione celle in base a valore
    Di lizz1183 nel forum Domande su Excel VBA e MACRO
    Risposte: 6
    Ultimo Messaggio: 09/02/17, 10:19
  3. Spostare Celle in base al valore di una cella stessa
    Di ShLomo nel forum Domande su Excel in generale
    Risposte: 11
    Ultimo Messaggio: 22/07/16, 18:38
  4. vba che selezione celle in base a condizione e applica formattazione condizionale
    Di Francesco2 nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 15/04/16, 13:04
  5. Copia contenuto celle in base a valore di una cella
    Di James nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 04/03/16, 21:42

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •