Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Incremento valori EXCEL

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Incremento valori EXCEL

Postdi seniorG62 » 13/12/09 22:18

Ciao a tutti.
Ogni tanto mi faccio vivo con dei problemini. Ho provato in tutte le maniere. Risultati zero.
Avrei bisogno di incrementare il valore corrispsndente dei numeri da 1 a 90 del "Ritardo massimo realizzato", in una colonna d'appoggio e, del "Ritardo attuale", in altra colonna d'appoggio, rilevando i dati da una matrice contenente 29 colonne per 160 righe.
Io non sono riuscito a trovare la funzione/formula. Ho una esigenza urgente, poichè nel fare ricerca mi occorre la precisione e facendo i rilievi a "manina" spesso commetto errori di digitazione e i tempi sono lunghissimi.
Sprero di riuscire ad allegare un file esplicativo.
Grazie a chi vorrà darmi una mano.
seniorG62 -- in arte Giovanni
Download-Link # 1: http://rapidshare.de/files/48831798/INC ... .xlsx.html
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Sponsor
 

Re: Incremento valori EXCEL

Postdi Flash30005 » 14/12/09 10:35

Prova questa macro
Codice: Seleziona tutto
Sub AnaRit()
UE = Range("C" & Rows.Count).End(xlUp).Row
For Num = 1 To 90
RitM = -1
M_RitM = 0
RitA = -1
Passo = 0
    For RR = UE To 2 Step -1
        RitA = RitA + 1
        For CC = 3 To 22
            If Num = Cells(RR, CC).Value Then
            If Passo = 0 Then M_RitA = RitA
            Passo = 1
            RitM = 0
            End If
        Next CC
        If M_RitM < RitM Then M_RitM = RitM
        RitM = RitM + 1
    Next RR
    Cells(Num + 1, 31).Value = M_RitA
    Cells(Num + 1, 28).Value = M_RitM
Next Num
    Range("AD2").FormulaR1C1 = "1"
    Range("AD3").FormulaR1C1 = "2"
    Range("AD2:AD3").Select
    Selection.AutoFill Destination:=Range("AD2:AD91"), Type:=xlFillDefault
   ' Range("AD2:AD91").Select
    Range("W1").Select

    Columns("AD:AE").Select
    Selection.Sort Key1:=Range("AE2"), Order1:=xlDescending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("W1").Select
For Rc = 2 To 91
Numero = Cells(Rc, 31).Value
Numero = Numero Mod 7
    Cells(Rc, 31).Font.ColorIndex = Numero * 2 + 3
Next Rc

End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Incremento valori EXCEL

Postdi seniorG62 » 14/12/09 18:30

Ciao FLASH,
grazie innanzitutto per la disponibilità e la prontezza nella risposta.
Entro domani la proverò e ti farò sapere.
Su questa scia avrò ancora bisogno del tuo aiuto, e magari nel frattempo riuscire IO ad imparare qualcosa.
Grazie ancora.
seniorG62 in arte Giovanni
A presto.
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Incremento valori EXCEL

Postdi seniorG62 » 15/12/09 23:24

ciao Flash,
la macro del precedente post va bene per quanto riguarda il "Ritardo attuale", mentre per quanto riguarda il "Ritardo Massimo" la macro non ha alcuna influenza.
La mia richiesta originaria riguarda anche l'incremento del valore del "Ritardo Massimo".
Fammi sapere se è possibile fare qualcosa.
Allego il file originario, ove è comprensibile meglio la mia richiesta.
Ancora grazie, per il precedente intervento e per l'ulteriore interessamento comunque sia.
A presto.
seniorG62 in arte Giovanni.

Tuo Download-Link # 1: http://rapidshare.de/files/48843086/INC ... .xlsx.html
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Re: Incremento valori EXCEL

Postdi Flash30005 » 16/12/09 02:19

Perché dici che non ha alcuna influenza? (meglio che avere l'H1N1 :D )

La macro funziona ma sfalsava di 2 valori modificando opportunatamente due righe di codice (vedi nota) dovrebbe funzionare bene
Codice: Seleziona tutto
Sub AnaRit()
UE = Range("C" & Rows.Count).End(xlUp).Row
For Num = 1 To 90
'If Num = 4 Then MsgBox Num
RitM = 0   '<<<< avvio a 0 invece che a -1
M_RitM = 0
RitA = -1
Passo = 0
    For RR = UE To 2 Step -1
        RitA = RitA + 1
        For CC = 3 To 22
            If Num = Cells(RR, CC).Value Then
            If Passo = 0 Then M_RitA = RitA
            Passo = 1
            RitM = 0
            End If
        Next CC
        RitM = RitM + 1   '<<<<< spostata qui
        If M_RitM < RitM Then M_RitM = RitM
    Next RR
    Cells(Num + 1, 31).Value = M_RitA
    Cells(Num + 1, 28).Value = M_RitM
Next Num
    Range("AD2").FormulaR1C1 = "1"
    Range("AD3").FormulaR1C1 = "2"
    Range("AD2:AD3").Select
    Selection.AutoFill Destination:=Range("AD2:AD91"), Type:=xlFillDefault
    Range("W1").Select

    Columns("AD:AE").Select
    Selection.Sort Key1:=Range("AE2"), Order1:=xlDescending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("W1").Select
For Rc = 2 To 91
Numero = Cells(Rc, 31).Value
Numero = Numero Mod 7
    Cells(Rc, 31).Font.ColorIndex = Numero * 2 + 3
Next Rc

End Sub


Fai sapere
Ciao


Macro modificata il 17/12/2009 - commentata riga MsgBox
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Incremento valori EXCEL

Postdi seniorG62 » 16/12/09 22:10

Ciao FLASH,
provata e tutto funziona perfettamente.
Mi appare un "MsgBox" con l'indicazione del n°4. Non capisco la funzione di un tale messaggio.
Per quanto riguarda la colorazione dei numeri, potresti, per cortesia darmi una "spiega" di come funziona tale sommatoria. Ho fatto delle prove ma ci ho capito poco. Scusa l'eccesso di curiosità.
Nei prossimi giorni ti farò una ulteriore richiesta consequenziale a questa. Devo predisporre l'esempio per rendere comprensibile la richiesta.
Grazie ancora di tutto.
Cordialmente e a presto.
seniorG62 ... in arte ...Giovanni
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Re: Incremento valori EXCEL

Postdi Flash30005 » 17/12/09 08:53

il messaggio n. 4 era un test durante le mie prove ed è causato dalla riga che dovrai togliere secondo quanto riporterò di seguito.
Codice: Seleziona tutto
For Num = 1 To 90 '<<< riga esistente (da lasciare)
If Num = 4 Then MsgBox Num  '<<<<<<<<<<<< cancellare questa riga
RitM = 0    '<<< riga esistente (da lasciare)


Comunque modificherò la macro del post precedente in maniera tale che potrai copiarla di nuovo e utilizzarla correttamente (e avere una macro corretta ad uso anche di altri utenti).

Per quanto riguarda la colorazione dei numeri e sommatoria dovresti essere più preciso specificando a cosa ti riferisci.

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Incremento valori EXCEL

Postdi seniorG62 » 17/12/09 19:50

Ciao FLASH,
non finirò mai di ringraziarti per l'assistenza a me ed al forum.
Avevo intuito che tale riga, non fosse pertinente. Nel dubbio ho chiesto.
Tolta la riga e provato il funzioanmento!! Tutto OK.
Relativamente al colore dei numeri, la riga di cui vorei capire il funzionamento è la seguente:

Cells(Rc, 31).Font.ColorIndex = Numero * 2 + 3

se ti va di darmi una spiegazione su cosa determina è gradita.
Grazie e cordialità.
A presto.
seniorG62... in arte ... Giovanni
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Re: Incremento valori EXCEL

Postdi Flash30005 » 18/12/09 03:49

Non ha nessun significato teorico ma solo pratico...
quando colori i font (i colori disponibili sono 56) con numero sequenziale 1;2;3;4 etc, per il fatto che devi distinguere differenziando le combinazioni, e hai un fondo della cella bianco, capitano sicuramente dei colori molto chiari che non si distinguono con il fondo (esempio il giallo o addirittura il bianco) quindi, in quel caso, se non ricordo male, la variabile "numero" non aveva un valore molto alto da uscire fuori dal range (dei 56 colori) anche se moltiplicato per 2, inoltre aggiungere 3 al prodotto ottenuto evita di imbattersi nel bianco che corrisponde al valore 2.

Un'altra possibiltà, se non hai molte combinazioni, è quella di definire i colori da utilizzare, in questo caso, però, devi mettere tante condizioni quante sono le combinazioni oppure un "Select Case" che condiziona ogni caso ma sono sempre più righe di quelle da me postate (una sola) ;)

Se vuoi fare una prova apri un nuova cartella di excel e scrivi un testo nella cella A1 e copiala fino alla 56ª riga poi incolla questa macro nel VBA e avvia la macro....

Codice: Seleziona tutto
Sub Colora()
For colore = 1 To 56
    Range("A" & colore).Font.ColorIndex = colore
Next colore
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Incremento valori EXCEL

Postdi seniorG62 » 18/12/09 17:43

Ciao Flash
ho provato quanto suggeritomi circa la "macro colori". Funziona. Non mi sono reso conto come posso utilizzarla; comunque ho imparato una novità.
Probabilmente più avanti ti disturberò per altre cose.
Grazie, cordialmente.
A presto.
seniorG62 ... in arte ... Giovanni
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37


Torna a Applicazioni Office Windows


Topic correlati a "Incremento valori EXCEL":


Chi c’è in linea

Visitano il forum: fabrizio2001, Marius44 e 6 ospiti