Risultati da 1 a 13 di 13

Discussione: Come attribuire un codice prodotto ai prodotti con formula o VBA



  1. #1
    ProgrammD69
    Ospite L'avatar di ProgrammD69

    Come attribuire un codice prodotto ai prodotti con formula o VBA

    Dato che le cose difficili le penso di notte, ma anche di giorno (scherzo !!), ecco un nuovo caso.


    In colonna A c'è la numerazione progressiva, da 1 in poi.
    In colonna B ci sono le categorie.
    In colonna C ci sono i nomi dei prodotti.
    In colonna D c'è il codice prodotto con una formula come la seguente:
    =SE(B18="LIBRO";A18&"-"&"0"&" "&SINISTRA(B18;3)&" - "&DESTRA(C18;3);SE(B18="FERRAMENTA";A18&"-"&"1"&" "&SINISTRA(B18;3)&" - "&DESTRA(C18;3);A18&"-"&"2"&" "&SINISTRA(B18;3)&" - "&DESTRA(C18;3)))


    Questo codice prodotto è univoco, però quando viene digitato lo stesso prodotto in colonna C per tre volte in C10, C11 e C20, voglio che compaia in automatico, in colonna D in D20 (dove c'è già la formula indicata sopra), il codice prodotto già comparso in colonna D in D10 e D11.
    Tenete presente che in un elenco di 1000 righe, lo stesso codice prodotto si può ripetere anche 400 volte.


    Buona serata.

  2. #2

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7164
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1304

    Re: Come attribuire un codice prodotto ai prodotti con formula o VBA

    Ciao,
    vedo che la tua formula ha come riferimento la riga 18? Perchè? = SE(B18="LIBRO";A18&...........

    Comunque per evitare equivoci , dovresti sapere che nella richiesta è meglio allegare un file excel di esempio.

    Attendiamo file allegato.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  3. #3
    ProgrammD69
    Ospite L'avatar di ProgrammD69

    Re: Come attribuire un codice prodotto ai prodotti con formula o VBA

    La formula parte dalla riga 2.
    La riga 18 è solo un caso. Ho copiato quella, ma parte dalla riga 2.

    Il file lo posso caricare domani mattina.

    Buona serata.

  4. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7164
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1304

    Re: Come attribuire un codice prodotto ai prodotti con formula o VBA

    Forse ho capito, si tratta del seguito dell'altra richiesta.

    Allora potresti fare a meno di far riempire tre celle contemporaneamente, usando solo il vba senza formule.

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim uRiga As Long, y as integer
            uRiga = Cells(Rows.Count, 2).End(xlUp).Row
                If Not Intersect(Target, Range(Cells(2, 2), Cells(uRiga, 2))) Is Nothing Then
                    Target.Offset(0, 1) = ""
                 End If
            For y = 2 To uRiga
                     If Cells(y, 3) = "" Then
                         Cells(y, 3).Interior.ColorIndex = 6
                         Cells(y, 4) = ""
                              Else
                          Cells(y, 3).Interior.ColorIndex = xlNone
                          Cells(y, 4) = Cells(y, 1) & "-" & " " & 2 & " " & Left(Cells(y, 3), 3) & " - " & Right(Cells(y, 3), 3)
                     End If
               Next
    End Sub
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  5. #5
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    820
    Versione Office
    2016 64bit
    Likes ricevuti
    148
    Likes dati
    55

    Re: Come attribuire un codice prodotto ai prodotti con formula o VBA

    @ges , il tuo codice ha bisogno della gestione dell' "EnableEvents" altrimenti succedono cose strane ad Excel dato che si va a modificare celle durante la gestione dell'evento "Worksheet_Change".
    Codice: 
        Application.EnableEvents = False
        ....
        ....
        Application.EnableEvents = True

  6. #6

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7164
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1304

    Re: Come attribuire un codice prodotto ai prodotti con formula o VBA

    Grazie Rollis per la segnalazione ... questo mi sfugge spesso poiché il mio Mac ha gli eventi disabilitati di default.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  7. #7
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    820
    Versione Office
    2016 64bit
    Likes ricevuti
    148
    Likes dati
    55

    Re: Come attribuire un codice prodotto ai prodotti con formula o VBA

    Domanda off-topic da profano di Office x Mac, ma se gli eventi sono disabilitati di default come fa ad attivarsi il "Worksheet_Change" ?

  8. #8

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7164
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1304

    Re: Come attribuire un codice prodotto ai prodotti con formula o VBA

    Presumo che la risposta stia nella stessa domanda, come fa a attivarsi il "Worksheet_Change", così:

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim uRiga As Long, y As Integer
        Application.EnableEvents = False
            uRiga = Cells(Rows.Count, 2).End(xlUp).Row
                If Not Intersect(Target, Range(Cells(2, 2), Cells(uRiga, 2))) Is Nothing Then
                    Target.Offset(0, 1) = ""
                 End If
            For y = 2 To uRiga
                     If Cells(y, 3) = "" Then
                         Cells(y, 3).Interior.ColorIndex = 6
                         Cells(y, 4) = ""
                              Else
                          Cells(y, 3).Interior.ColorIndex = xlNone
                          Cells(y, 4) = Cells(y, 1) & "-" & " " & 2 & " " & Left(Cells(y, 3), 3) & " - " & Right(Cells(y, 3), 3)
                     End If
               Next
        Application.EnableEvents = True
    End Sub
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  9. #9
    ProgrammD69
    Ospite L'avatar di ProgrammD69

    Re: Come attribuire un codice prodotto ai prodotti con formula o VBA

    Il codice VBA funziona, c'è solo una piccola cosa, in colonna D, rimane fisso il triangolo del menu a tendina. Non dovrebbe esserci.
    Inoltre, si potrebbe fare in modo che se c'è un doppione di prodotto, il codice prodotto del secondo prodotto sia uguale a quello precedente anche se il numero progressivo di colonna A è diverso ?

  10. #10
    ProgrammD69
    Ospite L'avatar di ProgrammD69

    Re: Come attribuire un codice prodotto ai prodotti con formula o VBA

    E' opportuno spostare questa discussione nella sezione Excel VBA ?

  11. #11

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7164
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1304

    Re: Come attribuire un codice prodotto ai prodotti con formula o VBA

    La tendina della colonna D l'ho tolta ma non ho capito cosa intendi " se c'è un doppione di prodotto, il codice prodotto del secondo prodotto sia uguale a quello precedente anche se il numero progressivo di colonna A è diverso"

    Intanto sposto in macro.

    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  12. #12
    ProgrammD69
    Ospite L'avatar di ProgrammD69

    Re: Come attribuire un codice prodotto ai prodotti con formula o VBA

    Citazione Originariamente Scritto da ges Visualizza Messaggio
    La tendina della colonna D l'ho tolta ma non ho capito cosa intendi " se c'è un doppione di prodotto, il codice prodotto del secondo prodotto sia uguale a quello precedente anche se il numero progressivo di colonna A è diverso"

    Intanto sposto in macro.

    Preciso meglio, se in colonna C, dove ci sono i prodotti, compare per la seconda volta lo stesso prodotto già registrato con codice 100100, il secondo prodotto che ha lo stesso nome e categoria del primo, deve avere anche lui il codice prodotto 100100.
    Così com'è impostato il codice, anche con due prodotti uguali si crea sempre un codice univoco.
    Come lo si può modificare ?

    Inoltre, sempre per questo codice, ed in attesa delle modifiche chieste prima:
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)    Dim uRiga As Long, y As Integer
        Application.EnableEvents = False
            uRiga = Cells(Rows.Count, 2).End(xlUp).Row
                If Not Intersect(Target, Range(Cells(2, 2), Cells(uRiga, 2))) Is Nothing Then
                    Target.Offset(0, 1) = ""
                 End If
            For y = 2 To uRiga
                     If Cells(y, 3) = "" Then
                         Cells(y, 3).Interior.ColorIndex = 6
                         Cells(y, 4) = ""
                              Else
                          Cells(y, 3).Interior.ColorIndex = xlNone
                          Cells(y,4)=left(day(cells(y,1),2))&" "&left(month(cells(y,1),2))&" "&left(cells(y,2),4)&" "&left(cells(y,3),4)
                     End If
               Next
        Application.EnableEvents = True
    End Sub
    ho provato ad inserire il testo rosso per crearmi un codice prodotto, ma il codice non funziona più. Dov'è l'errore ?

  13. #13
    ProgrammD69
    Ospite L'avatar di ProgrammD69

    Re: Come attribuire un codice prodotto ai prodotti con formula o VBA

    Come modificare questo codice per ottenere dei codici prodotto non univoci quando si inseriscono gli stessi prodotti più volte ?

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)    Dim uRiga As Long, y As Integer
        Application.EnableEvents = False
            uRiga = Cells(Rows.Count, 4).End(xlUp).Row
                If Not Intersect(Target, Range(Cells(4, 2), Cells(uRiga, 4))) Is Nothing Then
                    Target.Offset(0, 1) = ""
                 End If
            For y = 4 To uRiga
                     If Cells(y, 3) = "" Then
                         Cells(y, 3).Interior.ColorIndex = 6
                         Cells(y, 4) = ""
                              Else
                          Cells(y, 3).Interior.ColorIndex = xlNone
                          Cells(y, 4) = Cells(y, 1) & "-" & " " & 2 & " " & Left(Cells(y, 3), 3) & " - " & Right(Cells(y, 3), 3)
                     End If
               Next
        Application.EnableEvents = True
    End Sub
    Buona serata.

Discussioni Simili

  1. Aiuto su assegnazione link URL immagine a riga prodotto e codice
    Di brumadu nel forum Domande su Excel VBA e MACRO
    Risposte: 1
    Ultimo Messaggio: 25/01/17, 15:07
  2. [Risolto] Evidenziare articoli con descrizione uguale data di carico uguale ma codice prodotto disverso
    Di ginofamilio nel forum Domande su Excel VBA e MACRO
    Risposte: 18
    Ultimo Messaggio: 29/12/16, 11:06
  3. Formula o VBA per attribuire M o F a seconda del finale del nome
    Di ProgrammD69 nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 06/09/16, 17:27
  4. Controllo formula MATR.SOMMA.PRODOTTO bis
    Di G.Bove nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 26/06/16, 08:06
  5. Controllo formula MATR.SOMMA.PRODOTTO
    Di G.Bove nel forum Domande su Excel in generale
    Risposte: 13
    Ultimo Messaggio: 21/06/16, 09:57

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •