Condividi:        

indice elementi file excel

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

indice elementi file excel

Postdi Alessia* » 28/01/09 22:19

Buonasera a tutti,
è la prima volta che accedo a questo forum e ho trovato molto interessante la sezione dedicata ad Excel. Ho fatto una ricerca tra i vari topic ma non son riuscita a risolvere il mio problema, quindi eccomi qua. ;)
Ho un listino creato su di un file excel che riporta i vari codici vendibili suddivisi non in ordine numerico di codice ma secondo le diverse tipologie di prodotto. C'è però la necessità di creare un indice da allegare a questo listino che riporti l'elenco numerico progressivo dei codici presenti con l'indicazione della pagina di stampa in cui si trovano. Insomma dovrei creare un vero e proprio indice!
Premetto che purtroppo non so nulla di VB e non ho la minima idea di come si possa risolvere il problema.
Confido nell'aiuto e nei suggerimenti di qualcuno di voi esperti!
Grazie mille per ora!
Alessia
Alessia*
Newbie
 
Post: 7
Iscritto il: 28/01/09 22:11

Sponsor
 

Re: indice elementi file excel

Postdi pietrol » 28/01/09 23:10

Ciao Alessia
io ti consiglio questa procedura:
Definisci nei dettagli come dovrà essere stampato il listino e accertati in anteprima di stampa di quanti articoli verranno stampati per pagina, ci servirà per il calcolo del numero pagina.
Poi copia tutte le colonne che ti servono per fare l'indice in un altro foglio ed ordinale per codice,
supponiamo tu abbia i codici del listino sulla colonna A del Foglio1, righe da 2 a 700, e voglia creare l'indice nel Foglio2 con il codice sempre nella colonna A e il numero pagina nella colonna C dove dovrai inserire questa formula:
Codice: Seleziona tutto
esempio per cella C4
=ARROTONDA.ECCESSO(CONFRONTA(A4;Foglio1!$A$2:$A$700;0)/XXX;1)
dove "XXX" è il numero di articoli stampati per pagina sul listino


Ciao e buon lavoro
pietrol
il lupo ululà, il castello ululì
pietrol
Utente Senior
 
Post: 270
Iscritto il: 07/01/09 14:34

Re: indice elementi file excel

Postdi Alessia* » 01/02/09 18:44

Grazie Pietro, ma ho una complicazione in più. Ogni pagina ha un numero variabile di codici che dipende dalla presenza o meno di titoli, sottotitoli etc.
Questo ridimensiona un po' il problema. Riesci lo stesso a darmi qualche suggerimento?
Grazie mille per la tua disponibilità!
Alessia
Alessia*
Newbie
 
Post: 7
Iscritto il: 28/01/09 22:11

Re: indice elementi file excel

Postdi Anthony47 » 02/02/09 00:40

Allora dovrai andare su una macro, ad esempio questa:
Codice: Seleziona tutto
Sub Indice()
'
TocCol = "B"   '<<< Colonna dove sara' generato l' indice
StrR = 2        '<<< Riga da cui partono i codici
AShN = "Foglio1" '<<<< Foglio da cui creare l' indice; i codici DEVONO essere in Col. A
'
MaxR = Cells(Rows.Count, 1).End(xlUp).Row
'
I = StrR
Sheets(AShN).select
Activesheet.Copy After:=Worksheets(Worksheets.Count)
Range(TocCol & ":" & TocCol).Range("A:Z").ClearContents
Range("A1").Select
ActiveWindow.View = xlPageBreakPreview
For Each PB In ActiveSheet.HPageBreaks
PCount = PCount + 1
NextPRow = PB.Location.Row
Do While I < NextPRow
Cells(I, TocCol).Select
ActiveCell.Value = PCount: I = I + 1
Application.ScreenUpdating = False
Loop
Application.ScreenUpdating = True
Next PB
'
Cells(I, TocCol).Select
ActiveCell.Value = PCount + 1
If ActiveCell.Row < MaxR Then
Cells(I, TocCol).Range("A1:A" & MaxR - I + 1).FillDown
End If
ActiveWindow.View = xlNormalView
'
Columns("A:" & TocCol).Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
   OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
   DataOption1:=xlSortNormal
End Sub

Guarda le istruzioni marcate <<<, modifica se i parametri non sono quelli; non avendo dato la struttura dei tuoi dati ho assunto che il "codice" sia in col A; se non e' cosi' devi modificare la macro. Se se pratica lo fai da sola, altrimenti posta la struttura dei dati, in particolare quale e' la colonna Codice.
La macro crea una copia del tuo foglio dato, azzera le colonne a dx della colonna Indice, poi con pazienza inserisce su ogni riga il numerino; infine ordina la tabella prodotta.

Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: indice elementi file excel

Postdi Alessia* » 04/02/09 21:50

Grazie Anthony, ma ho ancora bisogno del tuo aiuto.
Non ho la minima idea di come si faccia una macro, potresti indicarmi qualche manuale semplice giusto per impostare quella che mi hai suggerito tu?
Mi faresti una enorma cortesia.
Inoltre ti giro la struttura dei miei dati. Ho una intestazione per le prime righe che si ripete freezata su ogni pagina del listino (nel file i codici partono effettivamente dalla riga 14). Poi dalla colonna A alla E ho descrizione, in F ho il codice, in G il prezzo e in H l'IVA. Tra le varie righe del listino ci sono titoli di sottogruppi di prodotti, per cui ho ulteriori raggruppamenti. Non so se sono stata sufficientemente chiara, ma spero di sì.
In particolare il codice viene inserito nella cella non come numero, ma come formato testo perché alcuni codici inziano per 0: quindi con il formato numero si perderebbe parte del codice. Penso che questa sia una info molto utile nel trattamento dei dati e perdonami se non ho pensato prima di farla notare.
Attendo qualche tua indicazione.
Grazie mille ancora!
Alessia
Alessia*
Newbie
 
Post: 7
Iscritto il: 28/01/09 22:11

Re: indice elementi file excel

Postdi Anthony47 » 05/02/09 15:39

Per gestire la macro che ti ho dato non e' necessario un libro, bastano poche informazioni:
-da excel, col tuo file aperto, premi Alt-F11 e ti si aprira' l' editor delle macro;
-Menu /Inserisci /Foglio
-copia la macro e incollalo nel frame bianco a dx
-torna su excel, sul foglio in cui esiste il tuo elenco
-lancia la macro:
--Alt-F8, ti si presenta l' elenco delle macro disponibili
--selezioni "Indice" e premi Esegui

La macro prepara una copia dei tuoi dati, in un nuovo foglio, e su questo inserisce il numero di pagine; poi ordina per codice crescente.

Ho variato la macro per adattarla ai dati che hai fornito; il nuovo codiec e' questo:
Codice: Seleziona tutto
Sub Indice()
'
TocCol = "G"
StrR = 14
'
AShN = ActiveSheet.Name
MaxR = Cells(Rows.Count, 1).End(xlUp).Row
'
I = StrR
Sheets(AShN).Copy After:=Worksheets(Worksheets.Count)
Range(TocCol & ":" & TocCol).Range("A:Z").ClearContents
Range("A1").Select
ActiveWindow.View = xlPageBreakPreview
For Each PB In ActiveSheet.HPageBreaks
PCount = PCount + 1
NextPRow = PB.Location.Row
Do While I < NextPRow
Cells(I, TocCol).Select
ActiveCell.Value = PCount: I = I + 1
Application.ScreenUpdating = False
Loop
Application.ScreenUpdating = True
Next PB
'
Cells(I, TocCol).Select
ActiveCell.Value = PCount + 1
If ActiveCell.Row < MaxR Then
Cells(I, TocCol).Range("A1:A" & MaxR - I + 1).FillDown
End If
ActiveWindow.View = xlNormalView
'   
Columns(TocCol & ":" & TocCol).NumberFormat = "0"
Columns(TocCol & ":" & TocCol).EntireColumn.AutoFit
'
Columns("A:" & TocCol).Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
   OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
   DataOption1:=xlSortNormal
'
If Cells(1, TocCol).Column > 2 Then
 Range("A1").Resize(1, Cells(1, TocCol).Column - 2).EntireColumn.Delete Shift:=xlToLeft
 Range("A1").Select
 End If
End Sub
Prova e fai sapere; ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: indice elementi file excel

Postdi Alessia* » 05/02/09 17:46

Ciao, allora ho seguito tutti i passaggi!
Mi viene segnalato l'errore 400, a cosa si riferisce?
Cosa avrò sbagliato ancora?
Grazie!
Alessia
Alessia*
Newbie
 
Post: 7
Iscritto il: 28/01/09 22:11

Re: indice elementi file excel

Postdi Anthony47 » 05/02/09 18:35

Un piccolo aiutino me lo puoi dare dicendomi il codice esatto di errore e, premendo Debug, quale linea e' evidenziata.
Dimmi anche se per la macro hai fatto copia / incolla o l' hai riscritta.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: indice elementi file excel

Postdi Alessia* » 05/02/09 18:42

Purtroppo nella casellina dell'errore compare solo 400 con titolo: Microsoft Visual Basic. Niente di più.
Cosa posso fare d'altro?
Grazie mille!
Alessia
Alessia*
Newbie
 
Post: 7
Iscritto il: 28/01/09 22:11

Re: indice elementi file excel

Postdi Anthony47 » 05/02/09 19:22

Che versione di excel hai? in che momento esce l' errore? Se mentre sei nell' editor delle macro, metti il cursore sull' istruzione I = StrR (un click del mouse) e poi premi F8, che cosa succede?

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: indice elementi file excel

Postdi Alessia* » 22/02/09 11:51

Ciao Anthony, scusami per il ritardo con cui rispondo.
Allora ho excel 2003 parte di office professional edition in inglese.
Ho seguito i tuoi consigli: l'errore compare quando si svolge la macro e mi riporta da excel alla schermata di visaul basic. Poi ho fatto il controllo che mi consigliavi: mi si evidenziano tutte le linee in giallo con una freccia fino a "Range(TocCol & ":" & TocCol).Range("A:Z").ClearContents" quando compare questo errore "Run-time error '1004' Application-defined or object-defined error".
Inoltre, nel file excel eseguendo la macro che va po in errore mi si duplicano fogli identici a quello esistente, è normale?
Grazie mille e scusa ancora per il ritardo!
Alessia
Alessia*
Newbie
 
Post: 7
Iscritto il: 28/01/09 22:11

Re: indice elementi file excel

Postdi Anthony47 » 22/02/09 20:55

Riepiloghiamo.
Lanci la macro; ti esce l' indicazione di "Run-time error '1004' Application-defined or object-defined error"; premi Debug; va all' editor delle macro e trovi delle righe colorate di gialle.
E' esattamente cosi'? Quale e'/sono la/le riga/righe colorate di giallo? Dovrebbe essere una unica riga e sullo spazio subito a sx dovrebbe esserci una freccina anche lei gialla.
Insomma non mi torna quando scrivi che "mi si evidenziano tutte le linee in giallo".

Aspetto tuoi chiarimenti...

Per quanto riguarda la duplicazione di fogli, si e' normale; da un messaggio precedente: "La macro crea una copia del tuo foglio dato, azzera le colonne a dx della colonna Indice, poi con pazienza inserisce su ogni riga il numerino; infine ordina la tabella prodotta". Abortendosi la macro il foglio rimane e deve essere eliminato a mano.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: indice elementi file excel

Postdi Alessia* » 23/02/09 11:10

Scusa Anthony, mi son spiegata male.
Eseguendo la macro compare l'errore "400" che mi riporta alla schermata di VB.
Quindi seguo le tue istruzioni succede questo:
- mi metto su I = StrR e premo F8
- si evidenzia in giallo Sub() Indice con freccina gialla accanto
- premo F8 e si evidenzia la riga successiva, fino a che arrivo alla riga "Range(TocCol & ":" & TocCol).Range("A:Z").ClearContents"
- premo F8 e compare l'errore che ti ho menzionato nel post precedente.
Son proprio un disastro! :)
Grazie e buon inizio di settimana!
Alessia
Alessia*
Newbie
 
Post: 7
Iscritto il: 28/01/09 22:11

Re: indice elementi file excel

Postdi Anthony47 » 23/02/09 15:38

Humm... nell' intestazione della finestra del vba, quella parte in genere blu dove si legge il nome del programma in esecuzione, che cosa leggi esattamente?
Puoi postare un' immagine della videata quando ti compare l' errore 400? La puoi fare con il tasto "Stampa" di tastiera, poi vai su Paint (in genere e' tra gli Accessori) e fai "Incolla", quindi salvi (meglio se come .jpg) e alleghi il file al tuo messaggio; trovi il tab per inserire un allegato subito sotto il frame in cui inserisci il testo del messagio.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "indice elementi file excel":


Chi c’è in linea

Visitano il forum: Nessuno e 47 ospiti