Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

istruzioni per creare nuovi fogli di lavoro

Ultimo Aggiornamento: 15/02/2018 14:58
Post: 1
Registrato il: 15/02/2018
Città: SENIGALLIA
Età: 54
Utente Junior
exel 2010
OFFLINE
15/02/2018 10:41

buongiorno a tutti...
sono nuovo del forum e mi rivolgo a voi per un problemino...
sto creando una tabella per consegnare dei materiali ed avrei bisogno di creare nuovi fogli di lavoro e rinominarli nel momento in cui, nella tabella principale, aggiungo il nome di un dipendente.
come posso fare?
ho cercato nel forum ed ho provato ad applicare altre soluzioni... ma son sempre incappato in errori di debug...
allego il file...

grazie in anticipo!
Post: 3.168
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
15/02/2018 11:38

Ciao, quanti dipendenti ci sono?
Comunque sarebbe tramite VBA
C'è proprio bisogno di creare il foglio (OK per stamparlo)
Dopo Ti ritrovi tanti fogli da gestire
Una specie di DataBase non è sufficente?
Excel 2013
Post: 2.683
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
15/02/2018 11:49

Buona giornata, a.moro;
consentimi un caro saluto a Raffaele.
Fatto ciò credo potresti provare con questo Codice VBA inserito in:
- Microsoft Excel Oggetti:
- Foglio1 (INSERIMENTO DATI)

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim NFg As Long
Dim Fgl As Long

    NFg = Range("C" & Rows.Count).End(xlUp).Row
    NFgl = Target.Value
    If Target.Address = "$C$" & NFg Then
        Fgl = Sheets.Count + 1
        Sheets.Add after:=ActiveSheet
        ActiveSheet.Move after:=Sheets(Fgl)
        ActiveSheet.Name = NFgl
    End If
Application.ScreenUpdating = True
End Sub


Inserendo un nuovo Nominativo nel Foglio di lavoro "INSERIMENTO DATI" verrà inserito un nuovo Foglio di lavoro il cui nome sarà il nuovo Nominativo.
Considera che modificando un nominativo esistente non avrà alcun effetto sui Fogli di lavoro esistenti; ovviamente non potrai inserire omonimi.




A disposizione.

Buona serata.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 3.648
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
15/02/2018 11:51

Ciao a.moro

Sono d'accordo con Raffaele (un saluto).

Creare un foglio per ogni dipendente è inutile (e dispendioso).

Se ho capito bene forse non è neanche necessario il VBA; basta il database dei dipendenti ed un unico modulo da popolare con con un CERCA.VERT()

Alfredo
Post: 3.649
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
15/02/2018 12:13

Giuseppe ma il nuovo foglio aggiunto non andrebbe poi popolato di tutte le relative formule?

Con un CERCA.VERT() non si fa prima?

Alfredo
Post: 2.684
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
15/02/2018 12:36

Alfredo, mi sono limitato a seguire "bovinamente" la richiesta di @a.moro.

@a.moro, chiede:


sto creando una tabella per consegnare dei materiali ed avrei bisogno di creare nuovi fogli di lavoro e rinominarli nel momento in cui, nella tabella principale, aggiungo il nome di un dipendente.



Pensa che non ho nemmeno tolto le "Celle unite" anche se non ne vedo l'utilità ma "il Cliente ha sempre ragione!"

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 1
Registrato il: 15/02/2018
Città: SENIGALLIA
Età: 54
Utente Junior
exel 2010
OFFLINE
15/02/2018 13:19

Re:
raffaele1953, 15/02/2018 11.38:

Ciao, quanti dipendenti ci sono?
Comunque sarebbe tramite VBA
C'è proprio bisogno di creare il foglio (OK per stamparlo)
Dopo Ti ritrovi tanti fogli da gestire
Una specie di DataBase non è sufficente?



ciao Raffaele,
effettivamente hai ragione...
basterebbe un solo foglio da stampare...
potrei mettere al fianco del dipendente un "tastino" che selezionato mi copia i dati relativi a quella riga nel foglio di consegna dei materiali...
devo però capire come fare.... [SM=x423024]


Post: 2
Registrato il: 15/02/2018
Città: SENIGALLIA
Età: 54
Utente Junior
exel 2010
OFFLINE
15/02/2018 13:22

Re:
alfrimpa, 15/02/2018 11.51:

Ciao a.moro

Sono d'accordo con Raffaele (un saluto).

Creare un foglio per ogni dipendente è inutile (e dispendioso).

Se ho capito bene forse non è neanche necessario il VBA; basta il database dei dipendenti ed un unico modulo da popolare con con un CERCA.VERT()




Alfrimpa... gentilmente potresti spiegarmi come si fa?
Post: 3.650
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
15/02/2018 13:47

Re: Re:
a.moro, 15/02/2018 13.22:




Alfrimpa... gentilmente potresti spiegarmi come si fa?



Beh per questo non c'è bisogno del forum basta leggere la guida in linea di Excel sul CERCA.VERT() perchè non potrei dire nulla di più di quello che trovi nella guida.


[Modificato da alfrimpa 15/02/2018 13:49]

Alfredo
Post: 3.170
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
15/02/2018 13:53

Per prima cosa serve la lista esatta dei prodotti e scrivi anche l'ulteriore descrizione(taglia e misura sono similari ...e Tipo serve?)
Ex guanti in gomma>>>quantità, taglia e Tipo
Ex tappi auricolari>>>quantità (forse il Tipo), perchè non esiste la taglia per loro
Tutti questi dati verrano immessi in DB

Per finire compila esattamente il VERBALE DI CONSEGNA
Intendo (Il Sottoscritto datore di lavoro) serve? (dato che A1:A3 ci sono già i dati?)
Casomai si dovrà mettere "pippo" oppure "ditta fratacchia"? Oppure il Tuo nome che consegni
Excel 2013
Post: 3
Registrato il: 15/02/2018
Città: SENIGALLIA
Età: 54
Utente Junior
exel 2010
OFFLINE
15/02/2018 13:53

Re:
GiuseppeMN, 15/02/2018 11.49:

Buona giornata, a.moro;
consentimi un caro saluto a Raffaele.
Fatto ciò credo potresti provare con questo Codice VBA inserito in:
- Microsoft Excel Oggetti:
- Foglio1 (INSERIMENTO DATI)

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim NFg As Long
Dim Fgl As Long

    NFg = Range("C" & Rows.Count).End(xlUp).Row
    NFgl = Target.Value
    If Target.Address = "$C$" & NFg Then
        Fgl = Sheets.Count + 1
        Sheets.Add after:=ActiveSheet
        ActiveSheet.Move after:=Sheets(Fgl)
        ActiveSheet.Name = NFgl
    End If
Application.ScreenUpdating = True
End Sub


Inserendo un nuovo Nominativo nel Foglio di lavoro "INSERIMENTO DATI" verrà inserito un nuovo Foglio di lavoro il cui nome sarà il nuovo Nominativo.
Considera che modificando un nominativo esistente non avrà alcun effetto sui Fogli di lavoro esistenti; ovviamente non potrai inserire omonimi.




A disposizione.

Buona serata.

Giuseppe



Grazie Giuseppe...
ho inserito il codice da te creato... ma qualcosa non va...
cosa ho sbagliato?



Post: 2.687
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
15/02/2018 14:58

Buon pomeriggio, a.moro;
hai ragione, manca la definizione della Variabile "NFgl".
La variabile va definita come:
Dim NFgl As String 

dopo le altre due Istruzioni Dim

Non mi ero accorto del problema perchè avevo definito la Variabile in altro Modulo come:
Option Explicit
Public NFgl As String


Mi scuso per il refuso.


Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 07:07. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com