Aiutamici Forum
Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

[Excel 2007]- Studio di una macro Opzioni
aetio
Inviato: Monday, August 01, 2011 8:45:56 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
sto cercando di capire le istruzioni contenute nella stupenda macro di QUESTO 3d... In particolare vorrei capire bene quali variazioni dovrei scrivere per fare lavorare la macro su -5/ +5 righe anziché sulle -4/ +4 della variabile Area10...
Non capisco bene fino in fondo il significato delle coordinate che ho scritto in rosso, mentre ho evidenziato in verde quelli che secondo me sono i puntamenti delle nuove istruzioni:

For Each sett In rng
If sett = mysett Then
riga = sett.Row
'-----
blk1 = riga - 10
blk2 = riga - 15
blk3 = 5
If blk1 <= 4 Then blk1 = 4
If blk2 < 4 And blk1 > 4 Then
blk2 = 4
ElseIf blk1 <= 4 Then

Ctrl = True
End If
'------
Set area10 = Range(Cells(blk1, 3), Cells(riga, 7))
If Not Ctrl Then
Set rng1 = Cells(blk2, 3).Resize(4, 5)
For Each Mval In rng1
If Mval.Value = Itx Then
Itx.Interior.ColorIndex = 34
Exit For
End If
Next Mval
End If
Set rng2 = Cells(riga, 3).Offset(1, 0).Resize(blk3, 5)
For Each Mval2 In rng2
If Mval2 = Itx And Itx.Interior.ColorIndex = xlNone Then
Itx.Interior.ColorIndex = 4
End If
Next Mval2
If nextItx = "" Then GoTo fine
For Each mval3 In area10
If mval3 = nextItx Then
With Cells(i + 1, col).Borders
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 3
End With
Exit For
End If
Next mval3
Exit For
End If
Next sett
Ctrl = False
Next Itx

Siccome sono stra-sicuro di avere scritto almeno una castroneria, chiedo una verifica prima di spegnere momentaneamente le luci della ribalta delle mie tabelle...non riuscirei a distogliere la mente e la mia curiosità continuerebbe ad arrovellarmi :)))
Grazie infinite, e buona serata
eZio

Sponsor
Inviato: Monday, August 01, 2011 8:45:56 PM

 
aetio
Inviato: Tuesday, August 02, 2011 9:02:39 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
e dai e dai "forse" ho capito... (in fondo "forse" non era proprio così difficile da ragionare...)
ecco i passaggi per far lavorare la macro entro i -5/ +5 dell'Area10
(evidenziati in rosso)

(omissis)
For Each sett In rng
If sett = mysett Then
riga = sett.Row
'-----
blk1 = riga - 10
blk2 = riga - 15
blk3 = 5
If blk1 <= 4 Then blk1 = 4
If blk2 < 4 And blk1 > 4 Then
blk2 = 4
ElseIf blk1 <= 4 Then

Ctrl = True
End If
'------
Set area10 = Range(Cells(blk1, 3), Cells(riga, 7))
If Not Ctrl Then
Set rng1 = Cells(blk2, 3).Resize(5, 5)
For Each Mval In rng1
If Mval.Value = Itx Then
Itx.Interior.ColorIndex = 34
Exit For
End If
Next Mval
End If
Set rng2 = Cells(riga, 3).Offset(1, 0).Resize(blk3, 5)
For Each Mval2 In rng2
If Mval2 = Itx And Itx.Interior.ColorIndex = xlNone Then
Itx.Interior.ColorIndex = 4
End If
Next Mval2
If nextItx = "" Then GoTo fine
For Each mval3 In area10
If mval3 = nextItx Then
With Cells(i + 1, col).Borders
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 3
End With
Exit For
End If
Next mval3
Exit For
End If
Next sett
Ctrl = False
Next Itx
(omissis)
Spero di avere capito il giusto... in caso contrario un sonoro calcioink*** me lo merito....... e lo esigo!! :)))))))
Grazie assai e buona giornata,
eZio
a10n11
Inviato: Tuesday, August 02, 2011 9:46:37 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
interpretazione solo parzialmente corretta.
se la tua tabella parte sempre da riga 3 le seguenti istruzioni
f blk1 <= 4 Then blk1 = 4
If blk2 < 4 And blk1 > 4 Then
blk2 = 4
ElseIf blk1 <= 4 Then
Ctrl = True

che hai modificato, puntano non alla prima riga della tabella ma alla seconda.
il parametro di riga (3) rimane uguale.

saluti
Giap

aetio
Inviato: Tuesday, August 02, 2011 10:11:11 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
a10n11 ha scritto:
salve
interpretazione solo parzialmente corretta.
se la tua tabella parte sempre da riga 3 le seguenti istruzioni
f blk1 <= 4 Then blk1 = 4
If blk2 < 4 And blk1 > 4 Then
blk2 = 4
ElseIf blk1 <= 4 Then
Ctrl = True

che hai modificato, puntano non alla prima riga della tabella ma alla seconda.
il parametro di riga (3) rimane uguale.

saluti
Giap

... si, il mio "malloppone" di tabelle che devo processare in questo caso parte sempre (per fortuna) da riga3: in riga1 vi sono le intestazioni "ufficiali", in riga2 quelle "interne" e in riga 3 parte tutto l'ambaradan... :))
Quindi il gruppo di istruzioni
If blk1 <= 3 Then blk1 = 3
If blk2 < 3 And blk1 > 3 Then
blk2 = 3
ElseIf blk1 <= 3 Then
Ctrl = True
End If

dev'essere mantenuto identico... (se finalmente ho ben capito il senso del gruppo...)
Il calcio nella parte preposta anche a tali scopi fà sempre male, ma se uno ci tiene veramente a ciò che sta facendo... serve, ECCOME!! E io aggiungo che è doveroso !! :))))
Grazie assai e buona giornata, chissà che bella brezza tira dalle tue parti... mmm... la adoro...
eZio

Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.