Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

cicli e macro, mi servirebbe un aiutino :D

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

cicli e macro, mi servirebbe un aiutino :D

Postdi fra1110 » 21/04/11 09:35

Premettiamo che io e i cicli quasi mai siamo andati d'accordo. :P
il mio problema è il seguente:

ho un foglio excel con dei dati (ordini) provenienti da un DB simile ad access (dinamic navigator) tutti ben messi impostati con le proprie colonne, senza formule.
In questo foglio dati ho una colonna "Posizione voce" con un numero (integer) che mi identifica se è una descrizione o un articolo dell'ordine.
Es.

Articolo 1 4010058559 CILINDRO SPEC. X CONT. 33,7 MM
........vuoto............2 KIT SECURVITE CON PERSONALIZZAZIONE COM

Quello che vorrei fare è questo:
Utilizzando come discriminante il numeretto della colonna "posizione voce" (Q) vorrei copiare tutte le righe contenenti questo numeretto in un altro foglio, creando un elenco senza righe vuote.

1- Controlla se il range di riga alla colonna Q contiene un numero o è vuoto
2- se trovi qualcosa <> da "" copia da A:Y (penso sia opportuno dimensionare un intervallo in quanto copiare 1*10^6 celle per 25 colonne è esagerato e rallenterebbe, quindi A1:Y20000)
3- incolla(normale) su un altro foglio "foglio1" andando alla riga vuota successiva ogni volta così da non sovrascrivere.
end sub

per andare all'ultima riga del foglio1 ho inventato questo:
Codice: Seleziona tutto
Dim NuovaRiga As Long
NuovaRiga = Sheets("foglio1").Range("A1048576").End(xlUp).Offset(1, 0).Row


posso chiedere gentilmente una mano?
:D grazie!!!
fra1110
Utente Junior
 
Post: 15
Iscritto il: 03/11/10 09:23

Sponsor
 

Re: cicli e macro, mi servirebbe un aiutino :D

Postdi Anthony47 » 21/04/11 14:56

E perche' non usi semplicemente un "Filtro automatico" in colonna Q?
Selezioni col. Q, imposti il filtro (Menu /Dati /Filtro /Filtro automatico), scegli nel menu' a discsa che viene creato in Q1 la voce "non vuoto", oppure "1"; selezioni le colonne A:Y, Copia, Incolli nel foglio che ti interessa (su A1).

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: cicli e macro, mi servirebbe un aiutino :D

Postdi fra1110 » 21/04/11 15:03

Perchè mi serve una tabella per poi lavorare su un report, e una volta fatta la macro posso adattarla a vari problemi :)

con il filtro e il comando .autofilter ci ho già lavorato, siccome però vorrei impararare cercavo aiuto nel ciclizzare questo comando.
fra1110
Utente Junior
 
Post: 15
Iscritto il: 03/11/10 09:23

Re: cicli e macro, mi servirebbe un aiutino :D

Postdi fra1110 » 21/04/11 15:04

ma per caso sei anche su Yahoo answer?
fra1110
Utente Junior
 
Post: 15
Iscritto il: 03/11/10 09:23

Re: cicli e macro, mi servirebbe un aiutino :D

Postdi Anthony47 » 21/04/11 15:05

No.
Ma le risposte semplici spesso si trovano anche su Yahoo Answer.
E anche col filtro ottieni la tabella su cui lavorare.

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: cicli e macro, mi servirebbe un aiutino :D

Postdi fra1110 » 21/04/11 15:18

il problema del filtro nel mio caso è questo:
i filtri sono soggetti a sballare su excel.
con il filtro dovrei comunque fare manualmente.
- filtro l'elenco dei dati,
- copio e incollo sull'altro foglio selezionando incolla speciale salta celle vuote.

se volessi mettere un bottone sul report finale, dove clicco e mi parte una macro.
Il codice mi cerca le righe con un valore numerico alla colonna Q e me le copia sul foglio 1 utilizzando dopo la copia la stringa postata in alto da me per andare alla successiva riga vuota.

operazioni = 2
incollo i dati originali e premo un bottone

una parte di codice sono riuscito a farla, ma per quanto riguarda il trovare il modo di dire al VBA nella colonna Q cercami i numeri e riportami l'indice di riga, buio totale...
Codice: Seleziona tutto
c.EntireRow.copy Destination:=Sheets(foglio1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
fra1110
Utente Junior
 
Post: 15
Iscritto il: 03/11/10 09:23

Re: cicli e macro, mi servirebbe un aiutino :D

Postdi fra1110 » 21/04/11 15:29

Provando a utilizzare il filtro ottengo questo, ma la prima cosa che vedo è quel 17 al campo criterio del filtro:
se non è più 17 devo cambiare la macro?

Codice: Seleziona tutto
Sheets("DATI").select
    Range("A1:Y1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$Y$20000").AutoFilter Field:=17, Criteria1:="<>"
    Range("A2").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.copy
    Sheets("Foglio1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        True, Transpose:=False
End Sub
fra1110
Utente Junior
 
Post: 15
Iscritto il: 03/11/10 09:23

Re: cicli e macro, mi servirebbe un aiutino :D

Postdi Anthony47 » 21/04/11 21:11

Sono contento che hai colto che anche usando il filtro riesci ad automatizzare.

Quel "Field:=17", avendo tu selezionato le colonne A:Y, corrisponde alla colonna Q (A=1, B=2, etc); quindi se devi filtrare per colonna H dovresti cambiare in " Field:=8".

Per applicare correttamente il filtro al tuo elenco devi pero' selezionare tutte le colonne, non solo riga1; quindi userai Range("A:Y").Select (oppure condenserai selezione e filtro in una unica riga, scrivendo Range("A:Y").AutoFilter)

Puo' essere utile, dopo Sheets("Foglio1").Select, inserire anche una Range("A1").Select; se invece vuoi accodare a un elenco pre-esistente userai Cells(rows.count,1).End(Xlup).Offset(1,0).Select
Come pure potrebbe essere utile azzerare Foglio1 inserendo, prima del blocco di codice che hai postato, la riga Sheets("Foglio1").Cells.Clearcontents (se non vuoi accodare, ovviamente).

Sarebbe possibile introdurre altri perfezionamenti al codice, ma sono finezze che imparerai a inserire con la pratica (e seguendo il forum).

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


Torna a Applicazioni Office Windows


Topic correlati a "cicli e macro, mi servirebbe un aiutino :D":


Chi c’è in linea

Visitano il forum: saxas e 12 ospiti