Excel e gli applicativi Microsoft Office Numero Progressivo Alfanumerico

Login Registrati
Stai vedendo 21 articoli - dal 1 a 21 (di 21 totali)
  • Autore
    Articoli
  • #7982 Score: 0 | Risposta

    Dodi
    Partecipante
      2 pts

       

       

      Allegati:
      You must be logged in to view attached files.
      #7984 Score: 0 | Risposta

      Dodi
      Partecipante
        2 pts

        Buon giorno a tutti
        mi son imbattuto in un problemino che non so come risolvere,
        in pratica ho un file con un foglio "Indice"
        se lancio la Userform va a trovare l'ultimo numero della colonna A partendo da Basso e incrementandolo di 1;
        a me occorre invece avere una numerazione progressiva Alfanumerica, e cioè i numeri devono essere preceduti da una Lettera da me impostata,

        esempio (E0001 e così Via)

        e possibile una cosa del genere?

        ringrazio anticipatamente.

        #7985 Score: 0 | Risposta

        vecchio frac
        Senior Moderator
          272 pts

          Prima di risolvere...

          Hai notato che va già in errore appena tenti di far partire l'userform? riesci a capire perchè e come risolvere?

          #7986 Score: 0 | Risposta

          dodi

            si me ne sono accorto, 

            e lo so che va in errore. 

            il controllo dell'ultima riga viene fatta dal basso. 

            se metti un numero qualsiasi vedi che quando lanci la userform funziona. 

            Io ho messo le lettere per farti capire il risultato 

            #7987 Score: 0 | Risposta

            vecchio frac
            Senior Moderator
              272 pts

              Bè l'errore lo devi risolvere 🙂

              Questo è il codice corretto per far sì che all'avvio il tuo userform proponga il numero di ordine corretto:

              Private Sub UserForm_Initialize()
                  Label27.Caption = Worksheets("indice").Cells(Rows.Count, 1).End(xlUp).Row + 1
              End Sub
              

              Dentro il commandbutton invece fai queste modifiche:

              RowCount = Label27.Caption
                  Cells(RowCount, 1) = "E" & Format(Label27.Caption, "0000")
                  Cells(RowCount, 2) = anno.Value
                  Cells(RowCount, 3) = riferimento.Value
                  Cells(RowCount, 4) = ufficio.Value
              eccetera

              Ho fatto modifiche al volo, è l'impianto del codice che ho rivisto in parte (vedi cosa uso al posto degli Offset? se analizzi come ho calcolato RowCount te ne puoi rendere conto facilmente).

              #7989 Score: 0 | Risposta

              dodi

                scusa se ti riscrivo

                ma non è possibile avere la numerazione Alfanumerica all 'avvio della Userform? 

                quindi ;

                UserForm_Initialize

                in pratica mi occorre avere la numerazione Alfanumerica all'avvio e mi deve andare avanti quando registro dati nel comando "Archivia"

                #7992 Score: 0 | Risposta

                dodi

                  ho modificato come mi hai suggerito.

                  e funziona, 

                  ma nella label27 quando la lancio mi va a leggere la riga di excel e non l'ultimo dato nella cella piena.

                  al lancio della Userfom mi compare solo il numero e non la lettera, quallo che chiedevo era avere al lancio della userform alnche nella label27 la numerazione alfanumerica, 

                   

                  forse mi son spiegato male e chiedo scusa, 

                  e fattibile una cosa del genere?

                  #7996 Score: 0 | Risposta

                  vecchio frac
                  Senior Moderator
                    272 pts

                    wrote: fattibile una cosa del genere?

                    Se non ho capito male:

                    Private Sub UserForm_Initialize()
                        Label27.Caption = cells(Worksheets("indice").Cells(Rows.Count, 1).End(xlUp).Row + 1, "A")
                    End Sub
                    #7997 Score: 0 | Risposta

                    albatros54
                    Moderatore
                      89 pts

                      scusate , se ho capito, modificando il codice cosi, compare la numerazione alfanumerica, ho capito male?

                      Private Sub UserForm_Initialize()
                      Label27.Caption = "E" & Worksheets("indice").Cells(Rows.Count, 1).End(xlUp).Row + 1
                      End Sub

                       

                       

                      Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                      Sempre il mare, uomo libero, amerai!
                      ( Charles Baudelaire )
                      #7998 Score: 0 | Risposta

                      albatros54
                      Moderatore
                        89 pts

                        battuto sul filo dei SETTE minuti  

                         

                         

                        Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                        Sempre il mare, uomo libero, amerai!
                        ( Charles Baudelaire )
                        #7999 Score: 0 | Risposta

                        dodi

                          Albatros 

                          grazie per l'intervento

                          e ti ringrazio a priori, 

                          con la tua soluzione ci siamo avviciniti, ma non e ancora il risultato che volevo. 

                          al lancio della userform deve verificare l'ultimo Numero d'ordine nella colonna A e incrementarlo di uno (1)

                          ma vorrei avere un numero d'ordine Alfanumerico 

                           

                          esempio : se nella cella A8 ho E0001, 

                          nel lanciare la userform dovrei vedere nella label E0002 e così via

                           

                          spero di aver spiegato bene 

                          #8000 Score: 0 | Risposta

                          albatros54
                          Moderatore
                            89 pts

                            Prova cosi, se ho capito

                            `Private Sub UserForm_Initialize()
                            riga = Worksheets("indice").Cells(Rows.Count, 1).End(xlUp).Row
                            stringa = Cells(riga, 1)
                            Cont = 0
                            
                            For N = 1 To Len(stringa)
                            If IsNumeric(Mid(stringa, N, 1)) Then
                            Cont = Cont & Mid(stringa, N, 1)
                            Else
                            strn = (Mid(stringa, N, 1))
                            End If
                            Next
                            Cont = Cont + 1
                            MsgBox strn & Cont
                            valore = strn & Cont
                            
                            Label27.Caption = valore
                            End Sub`

                             

                            Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                            Sempre il mare, uomo libero, amerai!
                            ( Charles Baudelaire )
                            #8001 Score: 0 | Risposta

                            dodi

                              Albatros 

                              mi da errore 

                              mi dice "Variabile non definita"  e mi evidenzia (Stringa)

                               

                              potresti gentilmente provarlo sul file che ho allegato? 

                               

                              grazie 

                              e se non ti è di troppo disturbo me lo rigiri corretto. 

                               

                              infinitamente grazie 

                              non riesco ad uscirmene con qsto problemino 

                              #8002 Score: 0 | Risposta

                              albatros54
                              Moderatore
                                89 pts

                                ti va in errore perche non ho dichiarato le variabile,dichiara le variabili o commenta "Option Explicit"

                                 

                                Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                                Sempre il mare, uomo libero, amerai!
                                ( Charles Baudelaire )
                                #8003 Score: 0 | Risposta

                                albatros54
                                Moderatore
                                  89 pts

                                  sostituisci con questo

                                  Private Sub UserForm_Initialize()
                                  Dim stringa As String, strn As String, valore As String
                                  Dim cont As Integer, n As Integer
                                  riga = Worksheets("indice").Cells(Rows.Count, 1).End(xlUp).Row
                                  stringa = Cells(riga, 1)
                                  cont = 0
                                  
                                  For n = 1 To Len(stringa)
                                  If IsNumeric(Mid(stringa, n, 1)) Then
                                  cont = cont & Mid(stringa, n, 1)
                                  Else
                                  strn = (Mid(stringa, n, 1))
                                  End If
                                  Next
                                  cont = cont + 1
                                  valore = strn & cont
                                  
                                  Label27.Caption = valore
                                  End Sub
                                  

                                   

                                  Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                                  Sempre il mare, uomo libero, amerai!
                                  ( Charles Baudelaire )
                                  #8004 Score: 0 | Risposta

                                  dodi

                                    Albatros Grazie mille funziona. 

                                    un ultima cosa e possibile avere come risultato EO e poi il numero in progressione? 

                                    oppure un modo per impostare nel codice VBA quali devono essere le lettere che devono precedere il numero che andrà in progressione? 

                                    questo mi serve per avere un codice commessa più corretto e consono alle procedure qualità aziendali. 

                                    In pratica il risultato dovrebbe essere EO001  ,EO002, EO003 e cosi via? 

                                    e pssibile?

                                     

                                    #8006 Score: 0 | Risposta

                                    dodi

                                      Dim lng As Long
                                      With sh
                                      If lRiga = 1 Then
                                      Me.label27.Caption = "E0001"
                                      Else
                                      lng = CLng(Right(.Range("A" & lRiga).Value, 3)) + 1
                                      Me.label27.Caption = "E" & Format(lng, "000")
                                      End If
                                      End With

                                       

                                      una volta avevo qsto codice che non riesco ad adattare alle mie esigenze. 

                                      mi va in blocco, 

                                      potresti provare ad adattare al mio caso? grazie

                                      e scusa per il disturbo 

                                      #8007 Score: 0 | Risposta

                                      albatros54
                                      Moderatore
                                        89 pts

                                        perche complicarsi, se studi bene il codice che ti ho postato, aggiungendo due righe di codice fa quello che chiedi, comunque , ecco il codice

                                        Private Sub UserForm_Initialize()
                                            Dim stringa As String, strn As String, valore As String, strnbis As String
                                            Dim cont As Integer, n As Integer
                                            riga = Worksheets("indice").Cells(Rows.Count, 1).End(xlUp).Row
                                            stringa = Cells(riga, 1)
                                            cont = 0
                                        
                                            For n = 1 To Len(stringa)
                                                If IsNumeric(Mid(stringa, n, 1)) Then
                                                    cont = cont & Mid(stringa, n, 1)
                                                Else
                                                    strn = (Mid(stringa, n, 1))
                                                    strnbis = strnbis + strn
                                                End If
                                            Next
                                            cont = cont + 1
                                            valore = strnbis & cont
                                        
                                            Label27.Caption = valore
                                        End Sub

                                         

                                        Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                                        Sempre il mare, uomo libero, amerai!
                                        ( Charles Baudelaire )
                                        #8025 Score: 0 | Risposta

                                        vecchio frac
                                        Senior Moderator
                                          272 pts

                                          Gio' mi piace molto questo avatar nuovo   

                                          #8043 Score: 0 | Risposta

                                          dodi

                                            Ho avuto solo ora modo di testare e porvare il codice

                                            il tutto funziona come volevo,  ringrazio sentitamente.

                                             

                                            Risolto

                                             

                                             

                                            #8045 Score: 0 | Risposta

                                            albatros54
                                            Moderatore
                                              89 pts

                                              Bene, se abbiamo risolto, spunta la relativa casella  

                                               

                                              Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                                              Sempre il mare, uomo libero, amerai!
                                              ( Charles Baudelaire )
                                            Login Registrati
                                            Stai vedendo 21 articoli - dal 1 a 21 (di 21 totali)
                                            Rispondi a: Numero Progressivo Alfanumerico
                                            Gli allegati sono permessi solo ad utenti REGISTRATI
                                            Le tue informazioni: