La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Buona sera a tutti quanti!
Sto tribolando da diverse settimane con delle formule...
Vi spiego cosa voglio fare:
"Nel mio magazzino ho:
- 218 utensili
- 10 utensili speciali
In sostanza nella pagina “Lista Prestiti” segno a chi è stato assegnato l'attrezzo (es. Casella 5C - questa avviene con una convalida dati con cui ho un elenco che fa riferimento alla pagina “Operai”). Sostanzialmente voglio avere la possibilità di sapere “in diretta” quali attrezzi abbiano sull’immediato vedendolo nella pagina “Operai” (Quindi 3D, 3F, 3H, 3J, 3L – presi nella colonna A del foglio “Lista Prestiti”, quindi dall’1 al 218 e poi dall’1-C al 10-C).
Ho questo parametro da rispettare:
Siccome nel foglio “Lista Prestiti” presto e poi recupero (è sequenziale, oggi lo presto, domani lo recupero e dopodomani lo ripresto) ho bisogno che mi dica solo l’utensile in uscita nell’istante e che poi chiaramente quando lo recuperi scompaia"
Vi ringrazio per la lettura, se non sono stato chiaro ditemelo pure
Ciao
Sarebbe utile avere uno stralcio del tuo file per capirne la struttura e dare consigli mirati. Bastano poche righe/colonne e le casistiche ipotizzate.
Ciao,
Mario
Ciao
Dopo aver formattato le colonne di destinazione dei dati come Generale o Numero, prova questa macro (che, comunque, ritengo si dovrà calibrare meglio)
Option Explicit
Sub disponi()
Dim ur As Long, i As Long, j As Long, k As Long
Dim sh1 As Worksheet, sh2 As Worksheet
Dim ope As String
Set sh1 = Sheets("Operai")
Set sh2 = Sheets("Lista prestiti")
ur = sh1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 3 To ur
ope = sh1.Cells(i, 1).Value
For j = 5 To 441 Step 2
If sh2.Cells(j, 3) = ope Then
For k = 2 To 10 Step 2
If sh1.Cells(i, k) = "" Then
sh1.Cells(i, k) = sh2.Cells(j, 1)
Exit For
End If
Next k
End If
Next j
Next i
Set sh1 = Nothing
Set sh2 = Nothing
End Sub
Fai sapere. Ciao,
Mario
Ciao
Poichè le celle unite sono gestibili con difficoltà in VBA, ti suggerisco di modificare il tuo tracciato come da allegato.
Quando un Operaio restituisce un utensile basta cancellarlo e non viene riportato.
Vai al Foglio 2 e clicca sul pulsante blu in alto a sinistra.
Dimmi cosa te ne pare.
Ciao,
Mario
@marius44 sto avendo qualche difficoltà... appena ho tempo ti scrivo il perché
Nel frattempo grazie per il tuo aiuto e al tua tempestività 👍
