Contatore Automatico Excel

Anonimo
2019-04-16T15:58:06+00:00

Buonasera, avrei bisogno di una mano per un contatore.

Spiego brevemente le mie necessità..

Ipotizziamo abbia tre codici "PIPPO, PLUTO, PAPERINO", disposti su tre righe diverse (stessa colonna)

per ognuno, è presente una cella subito adiacente con un numero (pezzi totali).

Accanto ai pezzi totali, dovrei avere questo contatore che si incrementa ogni volta che viene "sparato", tramite un lettore ottico di codici a barre, il codice corrispondente.

Come posso fare?

Ho provato con la formattazione condizionale, con altre formule, ma ogni volta che cambio il valore della cella che uso di riferimento dove viene inserita la sparata cambia anche il risultato delle formule nelle celle, quindi non conta..

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

6 risposte

Ordina per: Più utili
  1. Anonimo
    2019-05-03T07:44:11+00:00

    Buongiorno, ciao Sandro.

    Funziona per me, anche con un dato in singola cella.

    Grazie infinite.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-05-03T06:30:27+00:00

    ciao Nicola,

    sostituisci il blocco with...end with come segue.

    Forse un po' ridondante, ma per il momento non mi sovviene nulla di maggiormente efficiente…!

    ciao, Sandro.

        With wsh

            lngLastRow = .Range("A" & .Rows.Count).End(-4162).Row ' xlUp

            lngLastCol = .Cells(1, .Columns.Count).End(-4159).Column ' xlToLeft

            Set RngAddress = .Range(.Cells(1, 1), .Cells(lngLastRow, lngLastCol + 1))

            Select Case lngLastRow

                Case 1

                    .Range("c1").Value = 1

                Case 2

                    .Range("c1").Value = 1

                    .Range("c2").Value = 2

                Case Is > 2

                    .Range("c1").Value = 1

                    .Range("c2").Value = 2

                    .Range("c1:c2").Select

                    .Range("c1:c2").AutoFill _

                            Destination:=.Range("c1:c" & _

                            lngLastRow)

                Case Else

                    ' do nothing

            End Select

    End With

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2019-05-02T18:34:05+00:00

    Buonasera a tutti, ciao Sandro, scusatemi se mi inserisco nella discussione.

    Ho anch'io la stessa necessità  di Gabriele, ho fatto delle prove e dato che il codice va in errore solo se ho solo 2 celle  da numerare, come fare per gestire  questo altro tipo di numerazione progressiva (cioè solo con due celle).

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2019-05-02T14:43:36+00:00

    ciao Gabriele,

    ad esempio, se lo scenario e' questo :

    pippo 500 1
    pluto 1000 2
    paperino 5000 3
    minni 300 4
    gastone 10 5
    paperone 5 6
    qui 43 7
    quo 11 8
    qua 88 9

    Ottieni la numerziona progressiva con il codice che segue :( la colonna con I nomi e' la A quella con la qta e' la B, la numerazione e' la C).

    Sub myPk()

    On Error GoTo errorHandler

    Dim wsh        As Worksheet

    Dim lngLastRow As Long

    Dim lngLastCol As Long

    Dim RngAddress As Range

    Set wsh = ThisWorkbook.Worksheets("foglio1")

        With wsh

            lngLastRow = .Range("A" & .Rows.Count).End(-4162).Row ' xlUp

            lngLastCol = .Cells(1, .Columns.Count).End(-4159).Column ' xlToLeft

            Set RngAddress = .Range(.Cells(1, 1), .Cells(lngLastRow, lngLastCol + 1))

            .Range("c1").Value = 1

            .Range("c2").Value = 2

            .Range("c1:c2").Select

            .Range("c1:c2").AutoFill _

                    Destination:=.Range("c1:c" & _

                    lngLastRow)

    End With

    exitErrorHandler:

        Set wsh = Nothing

        Set RngAddress = Nothing

        Exit Sub

    errorHandler:

        With Err

                VBA.MsgBox "ERR#" & CStr(.Number) _

                    & vbNewLine & .Description _

                    , vbOKOnly Or vbCritical

         End With

         Resume exitErrorHandler

    End Sub

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2019-05-02T14:08:32+00:00

    Ciao Gabriele Campestre, 

    innanzitutto mi scuso per il ritardo nella risposta, ritardo causato da un'anomalia del sistema.

    Per quanto riguarda la tua richiesta in merito al contatore automatico in Excel, avrei bisogno che mi fornissi quale versione esatta di Office stai utilizzando.

    Puoi facilmente scoprirlo seguendo questo link.

    Resto a tua completa disposizione ed in attesa di riscontri.

    Dario

    La risposta è stata utile?

    0 commenti Nessun commento