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

[Excel2007]-Macro per selezionare Area filtrata II (risolto, ma...) Opzioni
aetio
Inviato: Wednesday, November 14, 2012 6:48:13 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
devo selezionare una porzione di colonna (di lunghezza variabile) di una tabella filtrata e copiare in altra sede le celle visibili, ma non riesco a venirne fuori...
mi sto ispirando a questa macro
Sub Sel_Filtr_per_copia()
Uriga = Range("A" & Rows.Count).End(xlUp).Row
Set Area = Range("a3", Range("dv" & Uriga)).SpecialCells(xlCellTypeVisible)
Area.Select
End Sub

che anch'essa definisce un'area di lunghezza variabile, ma che include tutte le rghe fino all'ultima...invece dovrei poter selezionare solo una parte (variabile) della colonna, una qualsiasi da col.A a col.DV, e copiarne le celle visibili in altro file...
ho provato a cercare in rete, ma si vedono solo pasticci che nulla hanno a che vedere con le tue splendide creature... mi sembra che avevamo già affrontato un tema simile, ma relativo ad un altro problema (colorare una selezione in base a dei parametri assegnati)
Sub coloraselezione()
Dim rng As Range, rng1 As Range, rng2 As Range, area10 As Range
Dim mysett As Variant, sett As Variant, Itx As Variant
Dim Mval As Variant, Mval2 As Variant, mval3 As Variant
Set rng = Range("B3", Range("B3").End(xlDown))
col = Selection.Column
Ur = Cells(Cells.Rows.Count, col).End(xlUp).Row
Set Area = Range(Cells(3, col), Cells(Ur, col)).SpecialCells(xlCellTypeVisible)
For Each Itx In Area
mysett = Cells(Itx.Row, 2).Value
i = Itx.Row
Do While Cells(i + 1, col).EntireRow.Hidden = True
i = i + 1
Loop
nextItx = Cells(i + 1, col).Value
For Each sett In rng
If sett = mysett Then
riga = sett.Row
Set area10 = Range(Cells(riga - 10, 3), Cells(riga, 7))
Set rng1 = Cells(riga, 3).Offset(-14, 0).Resize(4, 5)
Set rng2 = Cells(riga, 3).Offset(1, 0).Resize(4, 5)
For Each Mval In rng1
If Mval.Value = Itx Then
Itx.Interior.ColorIndex = 34
Exit For
End If
Next Mval
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
Next Itx
fine:
Set area10 = Nothing
Set Area = Nothing
Set rng = Nothing
Set rng1 = Nothing
Set rng2 = Nothing
End Sub


Grazie assai e buona serata
eZio
Sponsor
Inviato: Wednesday, November 14, 2012 6:48:13 PM

 
a10n11
Inviato: Thursday, November 15, 2012 12:48:20 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
quale criterio devi usare per determinare la lunghezza dell'area da selezionare?
saluti
Giap

aetio
Inviato: Thursday, November 15, 2012 2:32:07 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
a10n11 ha scritto:

quale criterio devi usare per determinare la lunghezza dell'area da selezionare?

all'interno di una tabella di lunghezza variabile a seguito degli aggiornamenti (larga da col.A a col.DV), devo poter selezionare una porzione di colonna , anch'essa di lunghezza variabile, di righe filtrate e poter copiare tutto ciò che riguarda SOLO dette celle visibili. La lunghezza della selezione varia in base ai dati che devo copiare, ma riguara una sola colonna.
Purtroppo non sono assolutamente in grado di dare alla macro le istruzioni in modo corretto :(
Grazie assai e buon pomeriggio
eZio
a10n11
Inviato: Friday, November 16, 2012 9:41:51 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
aetio ha scritto:
Ciao,
a10n11 ha scritto:

quale criterio devi usare per determinare la lunghezza dell'area da selezionare?

all'interno di una tabella di lunghezza variabile a seguito degli aggiornamenti (larga da col.A a col.DV), devo poter selezionare una porzione di colonna , anch'essa di lunghezza variabile, di righe filtrate e poter copiare tutto ciò che riguarda SOLO dette celle visibili. La lunghezza della selezione varia in base ai dati che devo copiare, ma riguara una sola colonna.
Purtroppo non sono assolutamente in grado di dare alla macro le istruzioni in modo corretto :(
Grazie assai e buon pomeriggio
eZio


salve
non mi è chiara ancoira la domanda. Se il range da selezionare è variabile (devi selezionare una porzione di colonna) bisogna pur dire alla macro
quanto è estesa la porzione. Forse intendi dire che le colonne interessate hanno lunghezze diverse, quindi l'area da selezionare necessita della scelta della colonna??
saluti
Giap

aetio
Inviato: Friday, November 16, 2012 10:21:51 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
il problema si è risolto da solo... perché in realtà il problema ero IO :))
(della serie la stupidità non ha limite...)
Incollavo il range nella stessa tabella filtrata e chiaramente mi faceva vedere solo la prima cella della selezione, mentre il resto rimaneva OVVIAMENTE nascosto dalle righe nascoste... (era la cosa che mi diceva che c'era qualcosa che non andava nel mio modus operandi e non in excel!!... cerca e cerca finalmente l'ho trovato)
Chiedo scusa, non ho parole...
Grazie assai e buona serata
eZio
aetio
Inviato: Sunday, November 18, 2012 8:13:17 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
d'accordo, in questo caso il problema ero io e mi sono auto-fustigato, ma se si debba lavorare col VBA? ...la mia passione per la Materia mi costringe a chiedere lumi :)

a10n11 ha scritto:

non mi è chiara ancoira la domanda. Se il range da selezionare è variabile (devi selezionare una porzione di colonna) bisogna pur dire alla macro
quanto è estesa la porzione. Forse intendi dire che le colonne interessate hanno lunghezze diverse, quindi l'area da selezionare necessita della scelta della colonna??


beh, anche qui sicuramente il problema sono SOLO io che non riesco a spiegarmi bene. Hai ragione, bisogna pur dire alla macro quanto è estesa la porzione di celle (che, complicazione, devono essere solo quelle visibili): la porzione di celle, appartenenti alla colonna in cui opero la selezione, è quella della selezione stessa. Da profano intuisco che c'è sicuramente un gruppo di semplici istruzioni che indichino alla macro in quale colonna lavorare (es. visto sopra col = Selection.Column) e che porzione di di tale colonna copiare (es. dalla prima cella visibile selezionata all'ultima cella visibile selezionata, ma non conosco il codice appropriato). Esatto, le colonne interessate hanno lunghezze diverse perché appartenenti a tabelle che di volta in volta si allungano a causa dell'aggiornamento dei dati, ma credo che alla macro interessi solo il range in cui debba lavorare (es. copia l'intervallo di celle visibili della colonna di selezione da cella visibile L24 di inizio selezione a cella visibile L52 di fine selezione).
Grazie infinite, buona Domenica
eZio
a10n11
Inviato: Monday, November 19, 2012 5:51:31 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
sperando di aver capito, prova questa: ( prende in considerazione, la colonna della cella selezionata)

Sub seleziona()
colonna = Selection.Column
uriga = Cells(Rows.Count, colonna).End(xlUp).Row
Set Area = Range(Cells(3, colonna), Cells(uriga, colonna)).SpecialCells(xlCellTypeVisible)
Area.Select
End Sub

saluti
Giap

aetio
Inviato: Monday, November 19, 2012 8:27:19 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
innanzi tutto Grazie per l'immensa pazienza nell'assecondarmi... (è immensa davvero)

purtroppo la macro seleziona l'intera colonna, credo che la causa sia da attribuire all'istruzione
uriga = Cells(Rows.Count, colonna).End(xlUp).Row
che invece dovrebbe puntare al solo intervallo di celle visibili dalla prima cella all'ultima selezionate, appoggiandosi a
colonna = Selection.Column
per l'individuazione della colonna.
Grazie assai, buona serata
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.