| | 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 | |
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....
|
| | Post: 2 | Registrato il: 15/02/2018
| Città: SENIGALLIA | Età: 54 | Utente Junior | exel 2010 | | OFFLINE | |
|
15/02/2018 13:22 | |
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 | |
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 | |
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:
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 |
|
|