Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Formula o Macro

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

Re: Formula o Macro

Postdi Lucio Peruggini » 06/11/14 15:04

Ciao Anthony, chiedo scusa!
Il mio primo foglio funziona perfettamente con la macro così fatta. Evidentemente nel foglio che ti ho inviato ora devo aver inserito la nuova estrazione e quindi i dati non corrispondevano con il foglio precedente e comunque i dati non sono quelli del primo foglio.

Il tutto è semplicemente armonioso e perfetto! Devo solamente controllare le altre ruote ma penso siano corrette; non può essere diversamente.

Un GRANDISSIMO GRAZIEEEEEEEE e buona giornata
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Sponsor
 

Re: Formula o Macro

Postdi Lucio Peruggini » 06/11/14 15:52

Ciao Anthony, ultimissima cosa:

Ho notato che, indipendentemente dall'inserire o meno un numero in D1 foglio "At" la macro parte ugualmente.
Non so cosa combini, ripeto pur non avendo inserito alcun numero. Allora chiedo se è possibile neutralizzare la macro quando non vi è alcun numero inserito.

Grazie
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: Formula o Macro

Postdi Anthony47 » 06/11/14 23:57

Non ho capito se ora ti funziona oppure no; comunque c' era un errore [TVal = Range("D5"), mentre deve essere TVal = Range("D1")]; come pure ho aggiunto una riga per controllare che D1 contenga qualcosa di valido. Il nuovo codice e':
Codice: Seleziona tutto
Sub lpzzzz()
Dim VArr, I As Long, CPos As Long, TVal As Long, LB2 As Long, myMatch, MErr As String
Sheets("At").Select
CPos = Application.WorksheetFunction.CountIf(Range("J:J"), ">=0")
TVal = Range("D1")
'
If TVal <= 0 Or TVal > 90 Then Beep: Exit Sub
'
VArr = Range("C5").Resize(CPos, 8).Value
'etc etc


Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Formula o Macro

Postdi Lucio Peruggini » 07/11/14 05:50

E' vero, neanch'io mi ero accorto che [TVal = Range("D5") conteneva il 5 anziché l'1 ma, gli storici inseriti nel Tab erano giusti perché comunque avevo esaminato il numero 5 che era contenuto casualmente in D5.

Funziona tutto e per il momento, fintanto che dovrò inserire un nuovo numero, non pastrocchio il foglio per altre verifiche.

GRAZIE MOLTE PER LA GRANDISSIMA CORTESIA, CIAO
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: Formula o Macro

Postdi Lucio Peruggini » 09/11/14 00:18

Ho provato l'inserimento con altra estrazione, FUNZIONA TUTTO BENISSIMO!
Grazie e buona domenica a tutto il forum
ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: Formula o Macro

Postdi Lucio Peruggini » 11/11/14 00:07

Ciao Anthony, una delucidazione sull'ultima macro.

Se nel foglio “Tab” elimino le righe che riguardano la ruota NZ (Nazionale) che sono:
A17; A28; A39; A50; A61 e nel foglio “At” altre sì elimino tale ruota (colonna “C”), la macro svolge comunque il suo lavoro oppure no?

Nel codice vedo solo questo riferimento che riguarda il foglio Tab della colonna "A" oppure sbaglio?
Codice: Seleziona tutto
Sub lpzz()
Dim VArr, I As Long, CPos As Long, TVal As Long, LB2 As Long, myMatch, MErr As String
Sheets("At").Select
CPos = Application.WorksheetFunction.CountIf(Range("J:J"), ">=0")
TVal = Range("D1")
If TVal <= 0 Or TVal > 90 Then Beep: Exit Sub          'Aggiunta - affinché D1 contenga qualcosa di valido
VArr = Range("C5").Resize(CPos, 8).Value
LB2 = LBound(VArr, 2)
With Sheets("Tab")                                     '<<<<<<<<<<<<<  Questo è lunico riferimento al foglio Tab?
    For I = LBound(VArr, 1) To UBound(VArr, 1)
        If VArr(I, LB2 + 1) = TVal Then
            myMatch = Application.Match(VArr(I, LB2), .Range("A1:A200"), 0)
            If Not IsError(myMatch) Then
If VArr(I, LB2 + 4) > .Cells(myMatch, 2 + TVal).Value Then .Cells(myMatch, 2 + TVal).Value = VArr(I, LB2 + 4)
            Else
                MErr = MErr & "; " & VArr(I, LB2)
            End If
        End If
    Next I
End With
If Len(MErr) > 0 Then
    MsgBox ("Ci sono stati errori nell' identificazione di Ruo-Pos" & vbCrLf & Left(mess, 100))
End If
End Sub



https://dl.dropboxusercontent.com/u/182 ... T%203A.PNG

https://dl.dropboxusercontent.com/u/182 ... T%203B.PNG

Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: Formula o Macro

Postdi Anthony47 » 11/11/14 03:36

La macro dovrebbe funzionare; al massimo, se non trova in Tab dei valori invece presenti in At, lo segnala con un messagebox.

Nella macro, dalla riga With Sheets("Tab") in avanti i riferimenti sono al foglio Tab, se non diversamente indicato.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Formula o Macro

Postdi Lucio Peruggini » 11/11/14 07:44

Grazie Anthony e buona giornata.
Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Formula o Macro":


Chi c’è in linea

Visitano il forum: Marius44 e 19 ospiti