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

Battaglia Navale... un po' più complessa!

Ultimo Aggiornamento: 13/09/2022 12:22
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)
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 03:37. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com