| | Post: 40 | Registrato il: 12/04/2011
| Città: BOVOLONE | Età: 51 | Utente Junior | OFFICE 365 | | OFFLINE | |
|
12/09/2022 14:27 | |
Buongiorno a tutti/e!
E' da un po' che non chiedo il Vostro aiuto, ma stavolta ne ho proprio bisogno, forse la testa non è più concentrata
come una volta! Boh!
Avrei un quesito: nel file che allego c'è una tabella, uno schema chiamatelo come volete e dovrei generare
un codice articolo che è la risultante degli incroci delle "X" presenti sulle caselle.. una sorta di battaglia navale un po' più complessa.
Sicuramente c'è una soluzione (non VBA per favore) e sicuramente qua la trovo, visto che siete fortissimi!
Vi ringrazio sin d'ora
Excel 2003 |
|
| | Post: 1.273 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
12/09/2022 16:56 | |
Mi dispiace ma la vedo dura con le formule. Non mi ero accorto prima della richiesta 'no macro' ma visto che ormai l'ho creata te la metto a disposizione come 'piano B'. I codici creati vanno a finire nel Foglio2 che deve esistere al momento del lancio della macro ed il focus deve stare nel Foglio1. La macro va incollata in un modulo standard.
Attenzione: il codice è stato modificato rispetto alla prima stesura dato che non avevo considerato il dettaglio: "* TIPOLOGIA SOLO SE SELEZIONATA" Option Explicit
Sub CreaCombinazioneCodice()
Dim nom As Long
Dim tip As Long
Dim var As Long
Dim riga As Long
Dim codice As String
Dim codNom As String
Dim codTip As String
Dim flagTip As Boolean
riga = 1 'prima riga da cui inserire i codici in Foglio2
For nom = 10 To Cells(Rows.Count, 3).End(xlUp).Row 'da riga 10 a ultimo nome
codNom = Cells(nom, 3).Value
codice = codNom
flagTip = False
For tip = 6 To 13 'da colonna F a M per tipologia
If Cells(nom, tip) = "" Then GoTo saltaTip
flagTip = True 'segnala che vi sono tipologie
codTip = codice & Cells(9, tip).Value
codice = codTip
noTip:
For var = 15 To 19 'da colonna O a S per variante
If Cells(nom, var) = "" Then GoTo saltaVar
Sheets("Foglio2").Range("A" & riga) = codice & Cells(9, var).Value
riga = riga + 1
codTip = codNom 'regredisci per nuova variante
saltaVar:
Next var
codice = codTip 'regredisci per nuova tipologia
saltaTip:
Next tip
If flagTip = False Then
flagTip = True
GoTo noTip 'continua con le varianti
End If
codice = "" 'azzera codice per nuovo nome
Next nom
MsgBox "Fatto!"
End Sub [Modificato da rollis13 12/09/2022 17:28]
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 40 | Registrato il: 12/04/2011
| Città: BOVOLONE | Età: 51 | Utente Junior | OFFICE 365 | | OFFLINE | |
|
13/09/2022 09:14 | |
Grazie dell'aiuto!
Ho incollato e provato a fare (premetto che non sono capace con il VBA, ma ho provato)
Quando lancio la macro, mi viene fuori la finestrella "Fatto!" ma i risultati della macro?
Dove li trovo?
Nel Foglio1 non c'è nulla... nel Foglio2 neanche... boh!
Excel 2003 |
| | Post: 3.347 | Registrato il: 06/04/2013
| Utente Master | 2010 | | OFFLINE |
|
13/09/2022 09:51 | |
ciao
non entro nel merito della discussione, ma solo per dire che ho testato il codice di Rollis (cari saluti) che riporta correttamente nel Foglio2 una lista di 71 sigle.
Prova ad inviare il tuo file con la macro inserita e si vedrà cos'è che non va
saluti.
Domenico
Win 10 - Excel 2016 |
| | Post: 41 | Registrato il: 12/04/2011
| Città: BOVOLONE | Età: 51 | Utente Junior | OFFICE 365 | | OFFLINE | |
|
13/09/2022 10:15 | |
Buongiorno!
Non metto in dubbio che non funzioni, anzi sono sicuro che funzioni, sono io che "non sono buono" 😀
Vi allego il file che ho fatto copiando e incollando il codice...
Grazie comunque a tutti! 🙏🙏🙏 Excel 2003 |
| | Post: 1.274 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
13/09/2022 11:40 | |
Un saluto a tutti.
Hai saltato un passaggio fondamentale; come avevo scritto la macro va in un modulo standard pertanto quando sei nel VBE dal suo menu clicca 'Inserisci' e poi scegli 'Modulo'. Poi sposta la macro dal modulo del Foglio2 a questo nuovo Modulo1, posizionati nel Foglio1 di Excel e rilancia la macro e vedi se il risultato rispecchia la tua richiesta.
Puoi cambiare questa riga così sai quanti codici ha creato: MsgBox "Fatto! creati " & riga - 1 & " codici." [Modificato da rollis13 13/09/2022 11:52]
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 42 | Registrato il: 12/04/2011
| Città: BOVOLONE | Età: 51 | Utente Junior | OFFICE 365 | | OFFLINE | |
|
13/09/2022 12:06 | |
Al solito funziona tutto!
Grazie mille per l'aiuto e il supporto.
🙏🙏 Excel 2003 |
| | Post: 1.275 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
13/09/2022 12:22 | |
Grazie per il riscontro positivo, sono contento che siamo stati in grado di aiutare.
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
|
|