Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[excel] macro copia celle che soddisfano un parametro

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

[excel] macro copia celle che soddisfano un parametro

Postdi amil » 12/06/14 18:54

Ciao a tutti,
vi sottopongo una nuova questione:
1) questa è la formula che, partendo dal foglio 2, va a prendere dal foglio 1 le celle della colonna H che hanno nella colonna F un segno ">", altrimenti, se non hanno quel segno di fianco, non copia il contenuto della cella H, e scrive "__"
Codice: Seleziona tutto
=SE('Foglio1'!F12=">";'Foglio1'!H12;"__")

2) Dopo di che, siccome non voglio che nel Foglio2 si vedano le righe "__", c'è una macro che agisce su un filtro e deseleziona la voce "__"
Codice: Seleziona tutto
ActiveSheet.Range("$F$9:$F$57").AutoFilter Field:=1, Criteria1:=Array( _
        "voce1", "voce2", "voceN"), Operator:=xlFilterValues

Bene... e fino a qua più o meno ci siamo... il problema è che se al posto di voce1, voce2, voceN (contenuto delle celle della colonna H), l'utente ne cabia il contenuto e scrive, anziché "voce1", "rosso"... a questo punto la macro non riconosce più la voce "rosso" come contenuto della colonna H e non la visualizzo più, anche se nella cella della vicina colonna F ha il suo bel segno ">".

Qualcuno mi può dare una mano nell'aggirare la questione?

Grazie!!!!!
amil
Utente Junior
 
Post: 22
Iscritto il: 05/06/14 10:04

Sponsor
 

Re: [excel] macro copia celle che soddisfano un parametro

Postdi amil » 13/06/14 01:59

Trovatooo! (ovviamente sul forum... forse un codice di Ricky?)
Della serie: "Fatti la domanda e datti la risposta"

Al posto del "__" di prima, per comodità di comprensione ho messo "NO PRIORITY" sulle righe che voglio nascondere

Quindi le celle su cui agisce la macro hanno questa formula:
Codice: Seleziona tutto
=SE('Foglio1'!F11=">";'Foglio1'!H11;"NO PRIORITY")


E la macro sul Foglio2 è questa:
Codice: Seleziona tutto
                Ur = Range("F" & Rows.Count).End(xlUp).Row

For RR = Ur To 1 Step -1 
If Range("F" & RR).Value = "NO PRIORITY" Then   
Rows(RR & ":" & RR).Hidden = True
End If
If Range("F" & RR).Value <> "NO PRIORITY" Then   '
Rows(RR & ":" & RR).Hidden = False
End If
Next RR


Unico problemino sfarfalla un po'... ma va bene eh!
amil
Utente Junior
 
Post: 22
Iscritto il: 05/06/14 10:04

Re: [excel] macro copia celle che soddisfano un parametro

Postdi ricky53 » 13/06/14 11:43

Ciao,
Sfarfalla ... ????

Se chiarisci forse potremo togliere lo "sfarfallamento" !!!



P.S.: dal nome delle variabili e dal modo in cui è scritto potrebbe essere qualcosa di mio ma l'If non l'avrei scritto così. Il codice lo hai adattato?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [excel] macro copia celle che soddisfano un parametro

Postdi amil » 13/06/14 21:52

Sì Ricky il tuo era un cancella, io ho messo un nascondi e poi uno scopri.

Sì, faceva una specie di "sfarfallamento"... sembra che si "accendano e spengano" le intesazioni di colonna più volte... come se ripetesse più volte una stessa routine.
Sarà per quell' RR che fa fare il conto di tutte le righe?
A me in realtà bastava fare l'operazione su un certo intervallo ("F11:F48") ma quando ho provato a cambiare il tuo Range non ha più funzionato la macro... Sigh...
amil
Utente Junior
 
Post: 22
Iscritto il: 05/06/14 10:04

Re: [excel] macro copia celle che soddisfano un parametro

Postdi Flash30005 » 14/06/14 00:08

Prova a usare questa macro
Codice: Seleziona tutto
Sub Prova()
Application.ScreenUpdating = False
Ur = Range("F" & Rows.Count).End(xlUp).Row

For RR = Ur To 1 Step -1
    If Range("F" & RR).Value = "NO PRIORITY" Then
        Rows(RR & ":" & RR).Hidden = True
    Else
        Rows(RR & ":" & RR).Hidden = False
    End If
Next RR
Application.ScreenUpdating = True
End Sub


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: [excel] macro copia celle che soddisfano un parametro

Postdi Anthony47 » 14/06/14 00:57

Guarda sopra il messaggio di Flash con l' uso di Application.ScreenUpdating = False /True per eliminare lo sfarfallamento.

Pero'...
2) Dopo di che, siccome non voglio che nel Foglio2 si vedano le righe "__", c'è una macro che agisce su un filtro e deseleziona la voce "__"
Codice: Seleziona tutto
ActiveSheet.Range("$F$9:$F$57").AutoFilter Field:=1, Criteria1:=Array( _
        "voce1", "voce2", "voceN"), Operator:=xlFilterValues


dovrebbe bastare filtrare usando l' istruzione
Codice: Seleziona tutto
ActiveSheet.Range("$F$9:$F$57").AutoFilter Field:=1, Criteria1:="<>__", _
        Operator:=xlAnd


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: [excel] macro copia celle che soddisfano un parametro

Postdi amil » 14/06/14 07:22

Flash... Grazie! Col codice modificato da te va che è una meraviglia! Liscia come l'olio...

Grazie anche ad Anthony, ottima soluzione anziché dover inserire le voci di filtro che poi cambiavano!

Che dire? Grazie a tutti!!!!
amil
Utente Junior
 
Post: 22
Iscritto il: 05/06/14 10:04


Torna a Applicazioni Office Windows


Topic correlati a "[excel] macro copia celle che soddisfano un parametro":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti