Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

possibile automatizzare le operazioni

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: possibile automatizzare le operazioni

Postdi luca0202 » 29/08/10 14:34

Perfetto ...grazie ....Luca
luca0202
Utente Junior
 
Post: 56
Iscritto il: 20/08/10 10:56

Sponsor
 

Re: possibile automatizzare le operazioni

Postdi luca0202 » 19/09/10 09:24

Sono di nuovo a chiedere la cortesia di Flash o chi per lui... con una modifica al foglio già fatto sempre fosse possibile...ringrazio anticipatamente Luca
Immagine

Uploaded with ImageShack.us
luca0202
Utente Junior
 
Post: 56
Iscritto il: 20/08/10 10:56

Re: possibile automatizzare le operazioni

Postdi Flash30005 » 19/09/10 11:44

Hai evidenziato il 37 estratto su bari e due valori 37 nel range Y2:AD2 che corrisondono in colonna U ala ruota di bari
quindi si devono evidenziare solo se appartenenti alla stessa ruota oppure tutti i 37 che si incontrano?

Fai sapere

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-

Re: possibile automatizzare le operazioni

Postdi Flash30005 » 19/09/10 12:46

In attesa di risposta invio questa macro

Codice: Seleziona tutto
Sub EvidenziaNumEstratti()
    Worksheets("AnalisiLotto").Range("M2:R12").Interior.ColorIndex = xlNone
UV = Range("U" & Rows.Count).End(xlUp).Row
    Worksheets("AnalisiLotto").Range("Y2:AD" & UV).Interior.ColorIndex = xlNone
Dim VettE(5) As Integer
For RiE = 2 To 12
Ruota = Worksheets("AnalisiLotto").Range("M" & RiE).Value
For VE = 1 To 5
VettE(VE) = Worksheets("AnalisiLotto").Cells(RiE, 13 + VE).Value
Next VE
For RiS = 2 To UV
If Ruota = Worksheets("AnalisiLotto").Range("U" & RiS).Value Then
For CosN = 25 To 30
VS = Worksheets("AnalisiLotto").Cells(RiS, CosN).Value
For VE = 1 To 5
If VS = VettE(VE) Then
Cells(RiE, 13 + VE).Interior.ColorIndex = 3
Cells(RiS, CosN).Interior.ColorIndex = 3
End If
Next VE
Next CosN
End If
Next RiS
Next RiE
End Sub

Puoi avviarla separatamente o richiamarla con la macro precedente

Fai sapere
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-

Re: possibile automatizzare le operazioni

Postdi luca0202 » 19/09/10 12:48

Si devono evidenziare solo quelli che hanno ruota che corrisponda ....Grazie ....Luca
luca0202
Utente Junior
 
Post: 56
Iscritto il: 20/08/10 10:56

Re: possibile automatizzare le operazioni

Postdi luca0202 » 19/09/10 13:00

Provato ora ed è ok ...se si può possibile evidenziare anche la ruota interessata tra le 2 colonne U e V ...Grazie Luca
luca0202
Utente Junior
 
Post: 56
Iscritto il: 20/08/10 10:56

Re: possibile automatizzare le operazioni

Postdi Flash30005 » 19/09/10 13:10

E' possibile evidenziare quanto chiedi ma fai attenzione perché il programma prende come riferimento solo la colonna U e non V
pertanto ti invio la modifica (aggiungi la riga di codice evidenziata con <<<<< da aggiungere)

Codice: Seleziona tutto
If VS = VettE(VE) Then
Cells(RiE, 13 + VE).Interior.ColorIndex = 3
Cells(RiS, CosN).Interior.ColorIndex = 3
Cells(RiS, 21).Interior.ColorIndex = 3 '<<<<<<<<< da aggiungere
End If


Fai sapere
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-

Re: possibile automatizzare le operazioni

Postdi luca0202 » 19/09/10 13:38

Premetto che va bene e che sono piuttosto ingnorante ...ma ho provato cambiando in un foglio nuovo e la macro (nuova) per evidenziare numeri e ruote la devo avviare entrando in sviluppo macro evidenziare la macro ed eseguirla non lo fa pigiando il tasto INIZIO .... forse ho sbagliato qualcosa ...sei un grande Flash ....grazie ...
luca0202
Utente Junior
 
Post: 56
Iscritto il: 20/08/10 10:56

Re: possibile automatizzare le operazioni

Postdi Flash30005 » 20/09/10 01:23

La macro l'ho realizzata con una propria routine perché non sapevo se la volevi integrata al programma precedente.
Per far sì che funzioni premendo il tasto inizia non devi far altro che richiamarla alla fine della prima routine
"CompilaTab"
Codice: Seleziona tutto
esci:     '<<<< esistente
        End With     '<<<< esistente
Next Vs1     '<<<< esistente
Call Evidenzia     '<<<< esistente
Call EvidenziaNumEstratti   '<<<<<  aggiungere chiamata routine
End Sub  '<<<< esistente  Fine routine CompilaTab


Però, facendo così la rotine EvidenziaNumEstratti cancellerà i numeri evidenziati dalla macro precedente (Evidenzia) pertanto dovrai apportare una modifica alla macro EvidenziaNumEstratti in questa maniera

Codice: Seleziona tutto
Sub EvidenziaNumEstratti()
    Worksheets("AnalisiLotto").Range("M2:R12").Interior.ColorIndex = xlNone  '<<<< lascia qui questo codice
UV = Range("U" & Rows.Count).End(xlUp).Row       '<<<< lascia qui questo codice
    Worksheets("AnalisiLotto").Range("Y2:AD" & UV).Interior.ColorIndex = xlNone   '<<<< sposta questo codice (con taglia e incolla come spiegherò al passo successivo
Dim VettE(5) As Integer        '<<<< lascia qui questo codice


Codice: Seleziona tutto
Sub CompilaTab()
Num = 0                   '<<<<<<<<< esistente
Dim VettN(90) As Integer               '<<<<<<<<< esistente
Dim VettRA(90) As String              '<<<<<<<<< esistente
UE = Range("U" & Rows.Count).End(xlUp).Row              '<<<<<<<<< esistente
 Worksheets("AnalisiLotto").Range("U2:X" & UE).Clear              '<<<<<<<<< esistente
Worksheets("AnalisiLotto").Range("Y2:AD" & UV).Interior.ColorIndex = xlNone     '<<<<<<<<< incolla in questo punto quella riga ma vedi nota (*)
 For Vs1 = 1 To 90                 '<<<<<<<<< esistente
 ...


(*) Devi fare un'ultima modifica nella riga incollata va modificata la variabile UV contenuta nel codice con UE
quindi avrai
Codice: Seleziona tutto
Worksheets("AnalisiLotto").Range("Y2:AD" & UE).Interior.ColorIndex = xlNone     


Se non è chiaro posta ancora
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-

Re: possibile automatizzare le operazioni

Postdi luca0202 » 20/09/10 06:02

Ci sono riuscito al primo colpo grazie alle tue dritte e anche se si tratta di semplice copia e incolla per me grande traguardo ti assicuro ....e poi trovo sarebbe molto utile per quando sia possibile almeno nelle funzioni principali APICE con la descrizione di quello che va fare quello che va a fare quella riga o operazione....questo giusto per riuscire ad entrare un pò in quello che si stia facendo ....se no è perfetto anche cosl ....
Se posso aprofittarne io dopo che ho fatto fare l'analisi al foglio ANALISILOTTO apro un altro foglio e copio i risultati (solo come valori e senza formule ) per avere visualizzazione in una sola pagina per non doverla fare scorrere e solo con le cose mi interessano carico immagine ....ma anche questa di operazioni puo' essere automatizzata ...? Non vorrei approfittarne ...e sempre grazie Luca
Immagine

Uploaded with ImageShack.us
luca0202
Utente Junior
 
Post: 56
Iscritto il: 20/08/10 10:56

Re: possibile automatizzare le operazioni

Postdi Flash30005 » 20/09/10 08:46

Penso ti occorra qualcosa del genere
Codice: Seleziona tutto
Sub CopiaAna()
CS1 = ""
CS2 = ""
UE = Worksheets("AnalisiLotto").Range("U" & Rows.Count).End(xlUp).Row
UC = Worksheets("Confronto").Range("IV2").End(xlToLeft).Column
If UC > 1 Then UC = UC + 2
For CC = 21 To 30
    CS1 = CS1 & Worksheets("AnalisiLotto").Cells(2, CC)
Next CC
For CC = UC - 9 To UC
    CS2 = CS2 & Worksheets("Confronto").Cells(1, CC)
Next CC

If CS1 <> CS2 Then
    Worksheets("AnalisiLotto").Range("U2:AD" & UE).Copy
    Sheets("Confronto").Select
    Cells(1, UC).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
     Range(Columns(UC), Columns(UC + 10)).EntireColumn.AutoFit
    Range("K1").Select
    Worksheets("AnalisiLotto").Select
    Range("T2").Select
    Application.CutCopyMode = False
End If
End Sub


E' una routine che richiamerai (alla fine della prima macro) con
Call CopiaAna
Devi solo aggiungere un foglio di lavoro con nome "Confronto"

La macro, prima di copiare l'intera tabella, verificherà che non sia già stata eseguita questa operazione per evitare di riportare più volte la stessa analisi.

Fai sapere
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-

Re: possibile automatizzare le operazioni

Postdi luca0202 » 20/09/10 19:54

Non so se ho sbagliato qualcosa ma nell'esecuzione si interrompe e con Debug viene evidenziata la riga
CS2 = CS2 & Worksheets("Confronto").Cells(1, CC)
Forse ho sbagliato qualcosa io ....Luca
luca0202
Utente Junior
 
Post: 56
Iscritto il: 20/08/10 10:56

Re: possibile automatizzare le operazioni

Postdi Flash30005 » 20/09/10 23:28

No, non hai sbagliato ma la fretta... ha fatto sbagliare me :oops:
Avevo provato la macro che copia la tabella
poi ho aggiunto il controllo ed infatti funzionava ma senza ricontrollare se avesse funzionato anche con questo controllo, insomma non ho fatto un test completo. :evil:
quindi ora ho apportato le modifiche alla macro, sostituiscila alla precedente

Codice: Seleziona tutto
Sub CopiaAna()
CS1 = ""
CS2 = ""
UE = Worksheets("AnalisiLotto").Range("U" & Rows.Count).End(xlUp).Row
UC = Worksheets("Confronto").Range("IV2").End(xlToLeft).Column
If UC > 1 Then UC = UC + 2
For CC = 21 To 30
    CS1 = CS1 & Worksheets("AnalisiLotto").Cells(2, CC)
Next CC
If UC = 1 Then
    CS2 = ""
Else
    For CC = UC - 9 To UC
        CS2 = CS2 & Worksheets("Confronto").Cells(1, CC - 2)
    Next CC
End If

If CS1 <> CS2 Then
    Worksheets("AnalisiLotto").Range("U2:AD" & UE).Copy
    Sheets("Confronto").Select
    Cells(1, UC).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
     Range(Columns(UC), Columns(UC + 10)).EntireColumn.AutoFit
    Range("K1").Select
    Worksheets("AnalisiLotto").Select
    Range("T2").Select
    Application.CutCopyMode = False
End If
End Sub


Prova e fai sapere
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-

Re: possibile automatizzare le operazioni

Postdi luca0202 » 21/09/10 05:55

Provato velocemente e sembra tutto ok ...GRAZIE FLASH ....Luca
luca0202
Utente Junior
 
Post: 56
Iscritto il: 20/08/10 10:56

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "possibile automatizzare le operazioni":


Chi c’è in linea

Visitano il forum: papiriof e 15 ospiti

cron