Condividi:        

schedario

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

schedario

Postdi granlaura » 22/11/06 15:35

Ciao a tutti ora sto più attenta
Vorrei fare uno schedario con Excel :

un foglio per ogni cliente e poterlo aprire da una rubrica o da un indice
Se è possibile mi potete aiutare
Grazie molte
Laura
granlaura
Utente Junior
 
Post: 72
Iscritto il: 20/05/06 13:15

Sponsor
 

Postdi Anthony47 » 23/11/06 02:00

Beh, la domanda e’ un po’ generica, ma ci provo.

Crei un file excel, e il primo foglio lo chiami “Indice” e intesti le colonne come segue:
A: Cognome
B: Nome
C: Nome Foglio

Il secondo foglio lo chiami “Modello”; in A1 ci scrivi “Cognome”, B1 la lasci libera (qui ci scriverai il cognome), in C1 scrivi “Nome”, D1 la lasci libera (qui ci scriverai il nome).
Dalla riga 2 in poi lo imposti come preferisci.

Poi apri il vba editor (Alt-F11), inserisci un modulo vuoto per macro (Menu ->Inserisci ->Modulo) e ci copi questo codice:

Codice: Seleziona tutto
Sub NuovaSk()
Sheets("Modello").Select
ActiveSheet.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Nome" & Sheets.Count + 1
End Sub


Sub AggListaSk()
Sheets("Indice").Select
Range("A2:D500").Select
Selection.ClearContents
Range("A2").Select
For I = 2 To Sheets.Count
ActiveCell.Value = Sheets(I).Range("B1").Value
Selection.Offset(0, 1).Select
'ActiveCell.Value = Sheets(I).Range("D1").Value
'Selection.Offset(0, 1).Select
ActiveCell.Value = Sheets(I).Range("D1").Value
Selection.Offset(0, 1).Select
ActiveCell.Value = Sheets(I).Name
Selection.Offset(1, -2).Select
Next I
Columns("A:C").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
        , Order2:=xlAscending, Key3:=Range("C2"), Order3:=xlAscending, Header:= _
        xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
        xlSortNormal
Range("A2").Select
End Sub


Sub Apri()
Sheets(Cells(ActiveCell.Row, 3).Value).Select
End Sub


Torna sul foglio Indice, e inserisci 3 pulsanti a cui associ le macro NuovaSk, AggListaSk e Apri; dai ai pulsanti dei nomi congruenti con la funzione.


Uso:
Tramite il pulsante AggListaSk visualizzi quali schede sono presenti, visualizzando Cognome, Nome, e Nome foglio di quell’ utente, in ordine alfabetico di Cognome.

Quando devi creare una nuova scheda, usi il pulsante NuovaSk per copiare un nuovo foglio uguale al “modello”; compila la scheda con Cognome e nome dell’ utente a cui si riferisce e salva il file. Torna su Indice e fai AggListaSk

Quando vuoi aprire la scheda di un utente, da Indice seleziona il cognome di quell’ utente e il foglio associato (colonna C) verra’ aperto.


Trovi degli spunti utili?

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

Schedario

Postdi granlaura » 25/11/06 14:52

Ciao Buon Giono Gent.mo Antony
Prima di tutto grazie molte
sono riuscita a fare quasi tutto solo non mi riesce AggListaSk ti mando quello che mi dice , magari mi spieghi cosa sbaglio
Grazie Laura


Sub NuovaSk()
Sheets("Modello").Select
ActiveSheet.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Nome" & Sheets.Count + 1
End Sub


Sub AggListaSk()
Sheets("Indice").Select
Range("A2:D500").Select
Selection.ClearContents
Range("A2").Select
For I = 2 To Sheets.Count
ActiveCell.Value = Sheets(I).Range("B1").Value
Selection.Offset(0, 1).Select
'ActiveCell.Value = Sheets(I).Range("D1").Value
'Selection.Offset(0, 1).Select
ActiveCell.Value = Sheets(I).Range("D1").Value
Selection.Offset(0, 1).Select
ActiveCell.Value = Sheets(I).Name
Selection.Offset(1, -2).Select
Next I
Columns("A:C").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Key3:=Range("C2"), Order3:=xlAscending, Header:= _
xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
Range("A2").Select
End Sub


Sub Apri()
Sheets(Cells(ActiveCell.Row, 3).Value).Select
End Sub

dopo la riga Next1 e fino a
Range("A2").Select
evidenzia in giallo[/list][/list][/code]
granlaura
Utente Junior
 
Post: 72
Iscritto il: 20/05/06 13:15

Postdi Anthony47 » 25/11/06 18:38

Gent.ma sig.a Laura… No, no; in genere sui forum si va piu’ per le spicce, proviamo una formula intermedia.

Buongiono Laura,
Credo che sia un problema di versione excel; prova a sostituire queste righe (e’ una unica istruzione)
Codice: Seleziona tutto
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Key3:=Range("C2"), Order3:=xlAscending, Header:= _
xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal


con queste:
Codice: Seleziona tutto
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Key3:=Range("C2"), Order3:=xlAscending, Header:= _
xlYes

(e’ la stessa istruzione con meno fronzoli)

Facci sapere se risolve.
A proposito: ma quante schede (=fogli) pensi di dover creare?

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

Schedario

Postdi granlaura » 26/11/06 15:02

Ciao
Funziona perfetto !
Per i fogli penso 50/60 si può ?
Grazie mille
Laura
granlaura
Utente Junior
 
Post: 72
Iscritto il: 20/05/06 13:15

Postdi Anthony47 » 26/11/06 19:56

Il numero di fogli, dall’ help on-line, “e’ limitato dalla dimensione della memoria”.
50-60 credo che non pongano problemi.

Ciao, alla prossima.
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "schedario":

schedario
Autore: granlaura
Forum: Applicazioni Office Windows
Risposte: 0

Chi c’è in linea

Visitano il forum: Marius44 e 44 ospiti