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

MACRO - FOGLIO TAB

Postdi Lucio Peruggini » 13/11/14 16:45

Ciao a tutti, inserisco nuovo foglio Excel a completamento di questo lavoro (Numeri determinati) che altrimenti non avrei potuto fare senza il prezioso aiuto di questo superlativo forum e di coloro che si prodigano nell’accontentare chi, come me, capisce ben poco di Visual B. e formule. INFINITAMENTE RINGRAZIO!

La macro allegata è quella fatta da Anthony, laddove ci sarebbero aggiunte da fare per questo foglio sui numeri determinati “Globali”.

Codice: Seleziona tutto
'Questa macro di Anthony aggiorna gli storici nel foglio "Tab" (DETERMINATI) quando nella cella "D1" foglio At e con > di 0 in "J"
's'inserisce un numero che è sortito in Prima posizione su Bari.



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")
    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


In questa, inserivo all’occorrenza un solo numero da processare in “D1” ma, poiché ora il foglio At e Tab contengono nella loro totalità sia (storici che attuali) di tutte le posizioni e ruote, occorrerebbe processare le cinque caselle E1:I1 del foglio “At” tutte insieme, qualora vengono inseriti in ognuna d’esse dei numeri.
Il numero potrebbe anche essere solamente uno immesso naturalmente in una delle cinque celle. A questo proposito, però, la macro interviene esclusivamente per quei numeri colonna “D” che subiscono la condizione della colonna “J” che viene sempre impostata con >=0.

L’esempio riportato sotto vale per tutti:

Il primo numero che abbiamo in “D5” è il 68 quale fa riferimento a “C5” | “F5”.
Supponendo d’inserire questo numero in “F1” dovremmo aggiornare il Tab con il nuovo ritardo storico che esso ha acquisito nella colonna “G” Ritardi.
Lo troviamo 70 volte con medesima posizione nella colonna “F” ma con posizioni e ruote diverse (di partenza) colonna “C”.

Nel Tab, quindi, il primo 68 lo troviamo: anzitutto nella colonna “B” posizione 5 che in fondo al foglio e, nella colonna “A233” il corrispondente della ruota; in questo caso “CA 5”.
Colorato di giallo vi è lo storico che sarà sostituito con il nuovo del foglio At “G5” = 409.

Il secondo 68 di At “D7” con ruota e posizione in “C7” FI 2 lo troviamo nel Tab in “A207” con valore che sarà sostituito da 246 a 447 del foglio At “G7”.

Piuttosto lungo e difficile da spiegare ma penso anche da costruire.

https://dl.dropboxusercontent.com/u/182 ... ale%202.7z


Confido come sempre nella bravura di chi si cimenta con il VB.
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 Lucio Peruggini » 14/11/14 01:03

Scusate la dimenticanza ma è molto importante, come specificato quando è stata eseguita l'altra macro.

https://dl.dropboxusercontent.com/u/182 ... IMMAG..PNG

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 » 14/11/14 15:54

Mi pare che stai chiedendo due modifiche rispetto a quanto elaborato sull’ altro quesito (viewtopic.php?f=26&t=103120)
1-Cercare nel foglio Tab non solo in base al contenuto di colonna C (Pos-Par) di foglio At ma anche di colonna F (Pos-Gio) sempre di At
2-Elaborare non il solo contenuto di D1 ma di 5 numeri caricati in E1:I1

E’ cosi’?

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

Postdi Lucio Peruggini » 14/11/14 23:47

Ciao Anthony

La risposta è si per la num. 1

1-Cercare nel foglio Tab non solo in base al contenuto di colonna C (Pos-Par) di foglio At ma anche di colonna F (Pos-Gio) sempre di At


per la nun. 2

Volendo, se più semplice, possiamo adoperare anche solo una cella. Vorrà dire che, se il-i numeri da processare sono più d'uno, l'inserisco uno per volta e faccio ripartire la macro.

Oppure utilizzare la riga 2 come riferimento alle 5 posizioni della colonna "F" (vedi immagine).

https://dl.dropboxusercontent.com/u/182 ... izioni.PNG

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 » 15/11/14 02:39

Prova:
Codice: Seleziona tutto
Sub lpMulti()
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 = tTVAL                                '**
'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)
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 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 Then .Cells(myMatch, 2 + TVal).Value = VArr(I, LB2 + 4)
                    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
End Sub

Lavora con 5 numeri in E1:I1 (non tutti devono essere compilati).
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: MACRO - FOGLIO TAB

Postdi Lucio Peruggini » 15/11/14 18:40

Ciao Anthony

Per un momento ho pensato: questo è un vero rompi capo! Chissà se si riuscirà nell'impresa.

Ho controllato ed è MAGNIFICAMENTE PERFETTO IN TUTTO!!!
Non saprei trovare un'appellativo appropriato se non quello di dirti: INFINITISSIMAMENTE GRAZIE!!!!!!!!!!!!!!!!!!!!!!!

SEI UN GRANDE!

Ciao e buona serata
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 » 15/11/14 21:02

Ciao Anthony,se non troppo complicato si potrebbe aggiungere una funzione?
Vedi immagine.

https://dl.dropboxusercontent.com/u/182 ... difica.PNG
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - FOGLIO TAB

Postdi Anthony47 » 16/11/14 01:38

La richiesta e’ cosi’ descritta:
Immagine
hostare immagini
(ti chiedo pero’ per il futuro di inserirle in forma testuale nel corpo del messaggio, non in un allegato)

:?: :undecided: :?:
Scusa, ma non e’ quello che la macro gia' fa??
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: MACRO - FOGLIO TAB

Postdi Lucio Peruggini » 16/11/14 02:06

Ok per l'inserimento nel corpo del messaggio.

Hai ragione, la macro fa già questo lavoro. In realtà se i numeri inseriti in E1:I1 non sono presenti nel range preso in considerazione, non vengono processati e quindi non agiscono nel Tab.
Ho preso una cantonata!

Grazie molte, notte
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 » 16/11/14 02:51

Ciao Anthony, ho rivisto la situazione e, purtroppo la mia cantonata è diversa da quanto descritto.
Avevo fatto riferimento in questo post

https://dl.dropboxusercontent.com/u/182 ... izioni.PNG[/url]

alle posizioni che avevano un fondamento ben preciso ma poi non ho completato come si deve l'intenzione; mi sono perso per strada.

Domani sera riprendo questo post per spiegare meglio cosa mi è sfuggito. Si tratta di una modifica legata per l'appunto alle posizioni della colonna "F". Non complicata ma essenziale ai fini preposti. Chiedo scusa!
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 » 16/11/14 08:19

Ciao Anthony, chiedo scusa!
Ieri sera evidentemente ero un pochino stanco.
E' tutto Ok! Ciao e buona Domenica
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 » 17/11/14 22:42

Ciao Anthony abbi pazienza, a mente fresca sono ritornato sul foglio che già conosci e, quello che mi sfuggiva cui mi ha creato un vero e proprio grattacapo, ora mi è completamente chiaro e lo spiego sinteticamente.

Le celle E1:I1 devono essere processate esclusivamente quando il numero corrisponde alla medesima posizione di E2:I2 che dev’essere conforme alla posizione della colonna “F”.

Esempio pratico:

In E1:I1 ho inserito, il 37.68.26.39.82; di questi cinque il 37.68.26.82 sarebbero quelli che la macro ora aggiorna nel Tab; presenti nel range >=0 della colonna “J”.
Purtroppo (mia mancanza cui non trovavo soluzione), non è questo che deve fare. Anche il 37 e 68 nella fattispecie non saranno presi in considerazione poiché le posizioni (riga 2) non sono conformi alla colonna “F”.

Di questi cinque, due sono quelli buoni il 26 e 82. Essi hanno corrispondenza sia in riga 2 che colonna “F”.

Chiedo scusa per non esserci arrivato prima!
La questione su questo tipo di (numeri determinati) è una delle più complesse nel mondo Lotto.
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 » 18/11/14 01:44

Se la domanda e’ processare i numeri in E1:I1 solo se lo stesso valore e’ presente nella cella sottostante a ognuno di essi, allora modifica
If mynum.Value > 0 And mynum.Value <= 90 Then
in
If mynum.Value > 0 And mynum.Value <= 90 And mynum.Value = mynum.Offset(1, 0).Value Then

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

Postdi Lucio Peruggini » 18/11/14 15:59

Ciao Anthony, non è proprio così!
Nel foglio ora allegato ho processato i due numeri coinvolti (26 e 82) era l'unico modo per spiegarlo in dettaglio.

E' piuttosto complesso ma non per te nel tradurlo in VBA (quando si è capito il meccanismo).
Peraltro ho lanciato la macro con la sostituzione del codice (modifica) ma non è successo nulla; non so......

Ora, con questo file si dovrebbe giungere alla conclusione, con infiniti ringraziamenti.

Ciao e buona giornata

Scusa, mi sono accorto per tempo che vi era un errore nel foglio allegato che ho eliminato.
Non appena mi sarà possibile, pongo rimedio e invio di nuovo il file.
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 » 18/11/14 16:17

https://dl.dropboxusercontent.com/u/182 ... e%202.1.7z

Ho rimediato in breve tempo, ora è giusto!
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - FOGLIO TAB

Postdi Anthony47 » 19/11/14 13:16

Le celle E1:I1 devono essere processate esclusivamente quando il numero corrisponde alla medesima posizione di E2:I2 che dev’essere conforme alla posizione della colonna “F”

Mi sono perso…
Non riesco a capire, guardando il file, il significato di quella frase, visto che in E2:I2 ci sono i numeri 1, 2, 3, 4, 5 e in colonna F ci sono scritte tipo BA1, BA2, BA3.

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

Postdi Lucio Peruggini » 19/11/14 15:12

https://dl.dropboxusercontent.com/u/182 ... ICA/At.PNG

Hai ragione, mi è sfuggito d'inserire davanti ai numeri in E2:I2 la sigla della ruota
Vedi immagine allegata che è quanto riporto di seguito:

E2=BA 1
F2=BA 2
G2=BA 3
H2=BA 4
I2=BA 5

Ciao

Note: non tener conto del foglio (schema) ma solamente dell'At laddove ho processato i due numeri coinvolti, 26 terza pos. e 82 quinta pos.
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 03:18

Faccio ancora un "penultimo" tentativo..
Ho modificato l’ istruzione tra If Not IsError /Else:
Codice: Seleziona tutto
                    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)
                    Else

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

Postdi Lucio Peruggini » 20/11/14 10:32

https://dl.dropboxusercontent.com/u/182 ... 0macro.PNG

Ma a te funziona?

A me non parte!

Ciao

Probabilmente ho sbagliato a incollare? In tal caso mi posti la macro completa?
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 12:46

Devi sostituire le tre righe che hai commentato (apostrofo in testa) col codice che ti avevo suggerito ieri sera; ovviamente cosi' come e' adesso la macro si esegue ma non conclude niente.

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

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "MACRO - FOGLIO TAB":


Chi c’è in linea

Visitano il forum: Francesco53 e 21 ospiti