Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

MACRO - FOGLIO TAB

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: MACRO - FOGLIO TAB

Postdi Lucio Peruggini » 20/11/14 13:23

Ma non è ciò che ho fatto?
Nella immagine allegata come si evince, ho messo l'apice sul vecchio codice e, sotto, vi è la correzione; dove sto sbagliando?
Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Sponsor
 

Re: MACRO - FOGLIO TAB

Postdi Anthony47 » 20/11/14 15:14

Azz... hai ragione!
Sicuro che le scritte in E2:I2 siano uguali a come compaiono in colonna F? Compreso spazio tra BA e numero.

Comunque si, a me funziona come mi aspetto; cioe' la macro esegue gli aggiornamenti su Tab solo se in col F compare il valore sottostante al numero in esame (oltre alle condizioni precedenti).

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: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: MACRO - FOGLIO TAB

Postdi Lucio Peruggini » 20/11/14 19:44

Si, le scritte sono identiche sia in riga 2 che colonna F, ma a me non funziona.
Puoi mandarmi il tuo file o comunque allegarmi la macro completa?
Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - FOGLIO TAB

Postdi Anthony47 » 20/11/14 21:47

Il file che ho usato, con la macro inserita, e' qui:
https://www.dropbox.com/s/kkhwqd5u5purf ... .xlsm?dl=0

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: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: MACRO - FOGLIO TAB

Postdi Lucio Peruggini » 21/11/14 00:51

Ciao Anthony, questo penultimo tentativo è andato in porto magnificamente!!!
Ho messo la macro presa dal tuo foglio e, inserita nel mio che è poi il medesimo, a funzionato benissimo. Non sono riuscito, però, a capire dove si annidava la mancanza ma è evidente che qualcosa non era in quadro.

A ogni modo l'importante è che tutto funzioni bene; che dirti:
GRAZIE MILLE PER IL TEMPO CHE MI HAI DEDICATO!!!

Un caro saluto

P.S.
Una domanda:
La macro lavora correttamente quando la colonna "J" è in ordine decrescente oppure ora è cambiato qualcosa e lavora anche con un ordine sparso?
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - FOGLIO TAB

Postdi Anthony47 » 21/11/14 13:20

Meno male…
La macro si aspetta che i numeri >=0 siano in testa all' elenco; questo consente di limitare la ricerca, nel caso del file pubblicato, a circa 450 record invece dei 19mila dell' elenco, con qualche benefici sui tempi di esecuzione.
Se vuoi eliminare il vincolo ci sono un paio di modifiche da fare, la nuova penultima versione di macro diventa:
Codice: Seleziona tutto
Sub lpMultiDisord()
'Versione B41121;  per cerca su tutto l' elenco
Dim VArr, I As Long, CPos As Long, TVal As Long, LB2 As Long, myMatch, MErr As String
Sheets("At").Select
myTim = Timer
'''CPos = Application.WorksheetFunction.CountIf(Range("J:J"), ">=0")
CPos = Application.WorksheetFunction.Count(Range("J:J"))
'
VArr = Range("C5").Resize(CPos, 8).Value
LB2 = LBound(VArr, 2)
Application.Calculation = xlCalculationManual
'
For Each mynum In Range("E1:I1")
    If mynum.Value > 0 And mynum.Value <= 90 Then
    TVal = mynum.Value
        With Sheets("Tab")
            For I = LBound(VArr, 1) To UBound(VArr, 1)
                If VArr(I, LB2 + 1) = TVal And VArr(I, LB2 + 7) >= 0 Then
                    myMatch = Evaluate("=min(if((Tab!A9:A500=""" & VArr(I, LB2) & """)*(Tab!B9:B500=""" & VArr(I, LB2 + 3) & """),row(Tab!A9:A500),""""))")
                    If Not IsError(myMatch) Then
                        If VArr(I, LB2 + 4) > .Cells(myMatch, 2 + TVal).Value And _
                            VArr(I, LB2 + 3) = mynum.Offset(1, 0).Value Then
                                .Cells(myMatch, 2 + TVal).Value = VArr(I, LB2 + 4)
                            End If
                    Else
                        MErr = MErr & "; " & VArr(I, LB2)
                    End If
                End If
            Next I
        End With
    End If
Next mynum
Application.Calculation = xlCalculationAutomatic
'
If Len(MErr) > 0 Then
    MsgBox ("Ci sono stati errori nell' identificazione di Ruo-Pos" & vbCrLf & Left(mess, 100))
End If
MsgBox ("Terminato in (sec): " & Format(Timer - myTim, "0.00"))
End Sub
Ne ho approfittato per mettere un messaggio di "Completato".

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: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: MACRO - FOGLIO TAB

Postdi Lucio Peruggini » 21/11/14 13:33

Ciao Anthony, la mia era solo una domanda ma sono contento anche per questa modifica che elimina per quanto ho capito, la condizione descritta; la provo e ti farò sapere.

Scusami ma ho ancora una domanda:

Poiché ho la necessità di aggiungere due o tre righe sopra, basta solo modificare il range di inizio?

(VArr = Range("C6").Resize(CPos, 8).Value

Che passerebbe dall'attuale C6 a C8, oppure vi è qualche altra cosa da fare?

GRAZIE MILLE
Ciao

Mi edito

I tempi non sono un grande problema con il PC che ora ho! Almeno: non credo in questo caso.
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - FOGLIO TAB

Postdi Lucio Peruggini » 21/11/14 13:48

Ho provato in breve tempo la modifica apporta, funziona che è una meraviglia! (0,42 secondi)

Gentilmente mi dai risposta (quando puoi), sulla domanda del post precedente?

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

Re: MACRO - FOGLIO TAB

Postdi Lucio Peruggini » 21/11/14 14:36

Scusami ma ho ancora una domanda:

Poiché ho la necessità di aggiungere due o tre righe sopra, basta solo modificare il range di inizio?

(VArr = Range("C6").Resize(CPos, 8).Value

Che passerebbe dall'attuale C6 a C8, oppure vi è qualche altra cosa da fare?


Errore:

Passerebbe da C5 a C8

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

Re: MACRO - FOGLIO TAB

Postdi Anthony47 » 22/11/14 02:43

Si, bisogna modificare la sola riga VArr = Range("C5").Resize(CPos, 8).Value

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: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: MACRO - FOGLIO TAB

Postdi Lucio Peruggini » 22/11/14 12:51

Ok, GRAZIE.
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 "MACRO - FOGLIO TAB":


Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti