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

help excels 2007 da excels 2003 Opzioni
maxxtro
Inviato: Monday, February 07, 2011 2:29:11 PM
Rank: Newbie

Iscritto dal : 2/7/2011
Posts: 9
Salve, ho un problema relativo ad un programma con excels 2003 passato a 2007 adesso vi spiego il mio problema:
con office 2003 quando filtravo i dati ed andavo ad incollarli bastava incollare solo valore è la macro mi incollava solo i dati filtrati ma con il 2007 mi incolla tutta la colonna. Ho provato ad inserire la stringa prima di copia selection.specailcells(xlcellTypevisibile). select ma il problema nasce quando il filtro è vuoto mi incolla tutta la colonna e mi da errore interrompendo la macro.Mi potete aiutare??
GRazie.
Sponsor
Inviato: Monday, February 07, 2011 2:29:11 PM

 
a10n11
Inviato: Monday, February 07, 2011 6:11:07 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
puoi mostrare la macro intera?
saluti
Giap

maxxtro
Inviato: Monday, February 07, 2011 8:48:09 PM
Rank: Newbie

Iscritto dal : 2/7/2011
Posts: 9

Grazie per il tuo interessamento .

macro excel 2003
Sheets("Giovanni").Select
Selection.AutoFilter Field:=4, Criteria1:="neg."
Range("A6:b2000").Select
Selection.Copy
Sheets("Foglio5").Select
Range("S6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Giovanni").Select
Range("f6:g2000").Select
Selection.Copy
Sheets("Foglio5").Select
Range("t6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


macro excel 2007

Sheets("Giovanni").Select
Selection.AutoFilter Field:=4, Criteria1:="=n*"
Range("A6:b2000").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Foglio5").Select
Range("S6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Giovanni").Select
Range("f6:g2000").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Foglio5").Select
Range("t6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

naturalmente sulla stessa colonna devo filtrare altri dati come ad esempio alto,basso,medio ma se sono assenti la macro mi da errore.
Ti sarei veramente grato se riuscissi a risolvere il problema.
Michele
maxxtro
Inviato: Monday, February 07, 2011 9:00:22 PM
Rank: Newbie

Iscritto dal : 2/7/2011
Posts: 9
Mi sono dimenticato di scrivere il messaggio di errore: Errore di run-time '1004' non è stata trovata alcuna cella.
Buona serata.
Grazie
a10n11
Inviato: Monday, February 07, 2011 10:35:44 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
il tuo problema è che quando lanci la macro, la cella selezionata nel foglio è al di fuori dello spazio occupato dalla
tabella e la macro non sa a che range applicare il filtro.
prova con questa modifica:

Sheets("Giovanni").Select
Range("a6").Select
Selection.AutoFilter Field:=4, Criteria1:="=n*"
Range("A6:b2000").SpecialCells(xlCellTypeVisible).Copy
Sheets("Foglio5").Select
Range("S6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Giovanni").Select
Range("f6:g2000").SpecialCells(xlCellTypeVisible).Copy
Sheets("Foglio5").Select
Range("t6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

saluti
Giap

maxxtro
Inviato: Tuesday, February 08, 2011 11:44:36 AM
Rank: Newbie

Iscritto dal : 2/7/2011
Posts: 9
Grazie Giap proverò. Scusa se aproffitto della tua generosità , come posso filtrare sulla stessa colonna altri dati come ad esempio =n*,=a*;=b*,=m* quando non trova una lettera passa alla successiva.
Michele
maxxtro
Inviato: Tuesday, February 08, 2011 12:14:06 PM
Rank: Newbie

Iscritto dal : 2/7/2011
Posts: 9
Macro non funzionante si blocca su Range("A6:b2000").SpecialCells(xlCellTypeVisible).Copy colore giallo. La cosa mi fa incavolare, ho usato il programma per 1 anno senza problemi ma adesso che mi hanno sostituito il pc ho excel 2007 che mi da problemi con i filtri.
Grazie Giap
a10n11
Inviato: Tuesday, February 08, 2011 6:50:25 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
non credo sia un problema di versione di Excel, se nel range filtrato non ci sono celle visibili è normale che nell'istruzione copy venga scaturito l'errore.
In questo caso necessita gestire l'errore. in base alla tua seconda richiesta passare il criterio del filtro ad una altro carattere, è risolvibile creando un array con l'elenco dei caratteri che si vogliono filtrare.
La macro che segue fa ( meglio.. dovrebbe fare questo) se il filtro non trova riscontri, passa al carattere successivo e si ferma quando trova un criterio valido.

in questa riga con la sintassi che vedi devi elencare i tuoi valori di criterio: myarray = Array("z*", "n*", "e*")


Sub filtra()
On Error Resume Next
myarray = Array("z*", "n*", "e*")
Sheets("Giovanni").Select
Range("a1").Select
For n = LBound(myarray) To UBound(myarray)
Selection.AutoFilter Field:=4, Criteria1:="=" & myarray(n), Operator:=xlAnd
Set rng = Range(("C2"), Range("C29")).SpecialCells(xlCellTypeVisible)
If Err.Number = 1004 Then
Resume
Else
Selection.AutoFilter Field:=4, Criteria1:="=n*"
Range("A6:b2000").SpecialCells(xlCellTypeVisible).Copy
Sheets("Foglio5").Select
Range("S6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Giovanni").Select
Range("f6:g2000").SpecialCells(xlCellTypeVisible).Copy
Sheets("Foglio5").Select
Range("t6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Exit For
End If
Next n
End Sub

saluti
Giap

maxxtro
Inviato: Tuesday, February 08, 2011 7:23:50 PM
Rank: Newbie

Iscritto dal : 2/7/2011
Posts: 9
Grazie Giap poverò la tua macro, ma ti posso garantire che nella versione 2003 i dati filtrari venivano copiati solo quelli a video , ripeto ho usato questa macro per 1 anno.
maxxtro
Inviato: Tuesday, February 08, 2011 7:39:32 PM
Rank: Newbie

Iscritto dal : 2/7/2011
Posts: 9
Non ho provato però leggendo la macro non credo che funzioni perchè non è detto che ci sia per forza un valore di criterio: myarray , pertanto ti chiedo se partiamo solo da un dato nel primo caso n* (la macro iniziale) si potrebbe mettere un criterio che controlli la colonna filtrata (C) se contiene il dato n* magari con If / elseif facendo partire la macro solo se trova n* oppure uscire. Che cosa ne pensi? Potrebbe Funzionare, il mio programma filtrava n* in colonna C poi copiava i dati della colonna A:B ecc. incollandoli nel foglio dove avevo un resoconto.
Grazie ancora Michele.
maxxtro
Inviato: Tuesday, February 08, 2011 7:43:01 PM
Rank: Newbie

Iscritto dal : 2/7/2011
Posts: 9
Con l'impostazione iniziale macro excel 2007 riesco a copiare i dati a video ma quando manca il valore la macro si blocca.
a10n11
Inviato: Tuesday, February 08, 2011 10:48:41 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
la differenza tra le due macro che hai postato è nell'aggiunta dell'istruzione "Specialcells"
che nel caso di nessun riscontro nel filtro manda in errore.
La differenza strana tra 2003-2007 è che il comando copy di celle filtrate copia solo le celle visibili nel 2003 mentre strano ma vero non funge con il 2007

vedi se la modifica alla macro può andarti bene.

Sub filtra()
On Error Resume Next
Sheets("Giovanni").Select
Range("a1").Select
Selection.AutoFilter Field:=4, Criteria1:="=x*", Operator:=xlAnd
Set rng = Range(("C2"), Range("C2000")).SpecialCells(xlCellTypeVisible)
If Err.Number = 1004 Then
MsgBox ("nessun risultato per il filtro")
Resume
Else
Selection.AutoFilter Field:=4, Criteria1:="=n*"
Range("A6:b2000").SpecialCells(xlCellTypeVisible).Copy
Sheets("Foglio5").Select
Range("S6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Giovanni").Select
Range("f6:g2000").SpecialCells(xlCellTypeVisible).Copy
Sheets("Foglio5").Select
Range("t6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If

End Sub

saluti
Giap

maxxtro
Inviato: Thursday, February 10, 2011 6:41:26 PM
Rank: Newbie

Iscritto dal : 2/7/2011
Posts: 9
Grazie Giap, con qualche modifica la macro funziona ma la cosa stranissima che inserendo Range("A6:b2000").SpecialCells(xlCellTypeVisible).Copy
la folmula se non trova il valore cancella l'origine, ho dovuto mettere la stringa intera Selection.SpecialCells(xlCellTypeVisible).Select
altra stranezza se non trova il valore incolla tutti i dati, comunque ho risolto il problema.
Grazie mille per la tua pazienza, solo così sono riuscito a far funzionare di nuovo il programma.
Michele
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.