Sviluppare funzionalita su Microsoft Office con VBA errore se foglio è nascosto

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

    AmmoN
    Partecipante

      buongiorno

      ho un problema con qst codice che mi inserisce un ID in una tabella da userform.

      ma mi da errore se il foglio "aa" è nascosto

      come posso risolvere.

      graziee

      Private Sub CommandButton1_Click()
      
          Dim tabella As Range
          
          Application.ScreenUpdating = False
      Sheets("aa").Select
      Dim iRow As Integer
      
      iRow = 2
      While Cells(iRow, 1).Value <> ""
      iRow = iRow + 1
      Wend
      #28380 Score: 0 | Risposta

      Luca73
      Partecipante
        58 pts

        Ciao Evita di selezionare il folgio, non serve.

        #28381 Score: 0 | Risposta

        AmmoN
        Partecipante

          se non lo selezione, mi inserisce ID nel foglio dove c'è il pulsante..mentre me lo deve inserire nel goglio "aa" dove c'è la tabella!

          #28382 Score: 0 | Risposta

          Luca73
          Partecipante
            58 pts

            Ciao

            Basta identificare la cella o il range con il foglio

            Sheets("aa").Cells(....)
            oppure 

            Sheets("aa").Range(....)

            se hai tante istruzioni puoi usare with

            with Sheets("aa")

            .cells(...)

            .range(....)

            end with

             

             

             

            #28383 Score: 0 | Risposta

            AmmoN
            Partecipante

              non funziona.

              qst è il codice. e funziona solo se il foglio aa non è nascosto..

              Private Sub CommandButton1_Click()
              
                  Dim tabella As Range
                  
                
                  Dim iRow As Integer
                  
                  
                  
                  
                  Application.ScreenUpdating = False
              Sheets("aa").Select  'si seleziona un'altro foglio
              
              
              iRow = 2
              While Cells(iRow, 1).Value <> ""
              iRow = iRow + 1
              Wend
              
                  
                  
                  With Foglio9
                      Set tabella = Range(.Range("B1"), .Cells(.Rows.Count, 2).End(xlUp).Offset(0, 18))
                  End With
                  
                  
              
                  Dim record As Range
                  
                  
                  
                  If Me.CommandButton1.Caption = "AGGIUNGI VOCE" Then
                      Set record = tabella.Rows(tabella.Rows.Count).Offset(1, 0)
                  Else
                      Set record = tabella.Rows(Me.nominativo.ListIndex + 1)
                      
              
              
                  End If
                  
                  With record
                  Cells(iRow, 1) = Cells(iRow, 1).Offset(-1, 0) + 1
                      .Cells(1) = Me.qualifica
                      .Cells(2) = Me.NOME.Text
                      .Cells(3) = Me.destinazione
                      .Cells(4) = Me.data
                      .Cells(5) = Me.dataal
              
              
                  End With
                  
                  
                  MsgBox ("Dati inseriti correttamente.")
               Sheets("TURNI").Select
                  Range("A1").Select
                  Unload Me
              End Sub
              #28384 Score: 0 | Risposta

              patel
              Moderatore
                51 pts

                Cerca sempre di NON usare Select, è una pessima abitudine suggerita dal Registratore

                #28385 Score: 0 | Risposta

                AmmoN
                Partecipante

                  se non lo seleziono il foglio "aa" mi inserisce id nel foglio dove c'è il pulsante e non in "aa" dove c'è tabella

                  #28386 Score: 0 | Risposta

                  patel
                  Moderatore
                    51 pts

                    allega un file di esempio

                    #28387 Score: 0 | Risposta

                    AmmoN
                    Partecipante

                      se si nasconde il foglio "a" da errore" 

                      se elimino la parte di codice

                      Application.ScreenUpdating = False Sheets("a").Select

                      mi inserisce ID nel foglio del pulsante

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

                      Marius44
                      Moderatore
                        58 pts

                        Ciao

                        Come già detto, NON è necessario usare .Select

                        Nascondi il Foglio("A") e sostituisci la tua macro con questa

                        Private Sub CommandButton1_Click()
                        Application.ScreenUpdating = False
                        'Sheets("A").Select  'si seleziona un'altro foglio
                        Dim iRow As Long 'riga e colonna SEMPRE Long e non Integer, per evitare blocco)
                        iRow = 2
                        While Sheets("A").Cells(iRow, 1).Value <> ""
                          iRow = iRow + 1
                        Wend
                        With Sheets("A")
                          .Cells(iRow, 1) = Cells(iRow, 1).Offset(-1, 0) + 1
                          .Cells(iRow, 2) = Textnome.Text
                          .Cells(iRow, 3) = Textdestinazione.Text
                          .Cells(iRow, 4) = TextdataDAL
                          .Cells(iRow, 5) = TextDATAAL
                        End With
                        Unload Me
                        Application.ScreenUpdating = True 
                        End Sub

                        Ho anche aggiunto il ripristino dell'Updating

                        Fai sapere. Ciao,

                        Mario

                        #28393 Score: 0 | Risposta

                        AmmoN
                        Partecipante

                          Applicandolo a qst codice non va..mi continua a dare sempre il numero dell'ID sul foglio dove c'è il pulsante

                          Private Sub CommandButton1_Click()
                          
                              Dim tabella As Range
                              Dim iRow As Integer
                              Application.ScreenUpdating = False
                          Sheets("DISCONTINUI").Select  'si seleziona un'altro foglio
                          iRow = 2
                          While Cells(iRow, 1).Value <> ""
                          iRow = iRow + 1
                          Wend
                              With Foglio9
                                  Set tabella = Range(.Range("B1"), .Cells(.Rows.Count, 2).End(xlUp).Offset(0, 18))
                              End With
                                  Dim record As Range
                                  If Me.CommandButton1.Caption = "AGGIUNGI VOCE" Then
                                  Set record = tabella.Rows(tabella.Rows.Count).Offset(1, 0)
                              Else
                                  Set record = tabella.Rows(Me.nominativo.ListIndex + 1)
                              
                              End If
                              
                              With record
                              Cells(iRow, 1) = Cells(iRow, 1).Offset(-1, 0) + 1
                                  .Cells(1) = Me.qualifica
                                  .Cells(2) = Me.NOME.Text
                                  .Cells(3) = Me.destinazione
                                  .Cells(4) = Me.data
                                  .Cells(5) = Me.dataal
                              End With
                                  MsgBox ("Dati inseriti correttamente.")
                           Sheets("TURNI").Select
                              Range("A1").Select
                              Unload Me
                          End Sub
                          #28396 Score: 0 | Risposta

                          Marius44
                          Moderatore
                            58 pts

                            Ciao

                            Se applichi la macro che t'ho aggiustato io, vedrai che funziona anche col Foglio nascosto.

                            Se, invece, continui a perseverare negli errori, beh non so che dirti.

                            Nota due cose:

                            nella mia macro il Foglio("A") NON E' SELEZIONATO però, ovviamente, devo dire ad Excel dove andare a scriverlo ed infatti ho creato With Sheets("A") .... End With al cui interno ho indicato le celle nella quali è da scrivere il valore. Dette celle DEVONO essere precedute da un punto ( . )

                            E' chiaro adesso?

                            Confronta le due macro è nota dove sono le differenze.

                            Ciao,

                            Mario

                            #28400 Score: 0 | Risposta

                            AmmoN
                            Partecipante
                              Private Sub CommandButton1_Click()
                              
                                  Dim tabella As Range
                                 
                                  Application.ScreenUpdating = False
                                  
                                  
                                  
                              Dim iRow As Long
                              iRow = 2
                              While Sheets("A").Cells(iRow, 1).Value <> ""
                                iRow = iRow + 1
                              Wend
                              
                                  With Sheets("A")
                                      Set tabella = Range(.Range("B1"), .Cells(.Rows.Count, 2).End(xlUp).Offset(0, 18))
                                  End With
                                      Dim record As Range
                                      If Me.CommandButton1.Caption = "AGGIUNGI VOCE" Then
                                      Set record = tabella.Rows(tabella.Rows.Count).Offset(1, 0)
                                  Else
                                      Set record = tabella.Rows(Me.nominativo.ListIndex + 1)
                                  
                                  End If
                               With Sheets("A")
                                  .Cells(iRow, 1) = Cells(iRow, 1).Offset(-1, 0) + 1
                                      .Cells(2) = Me.qualifica
                                      .Cells(3) = Me.NOME.Text
                                      .Cells(4) = Me.destinazione
                                      .Cells(5) = Me.data
                                      .Cells(6) = Me.dataal
                                  End With
                                      MsgBox ("Dati inseriti correttamente.")
                               Sheets("TURNI").Select
                                  Range("A1").Select
                                  Unload Me
                              End Sub

                              ho modificato il codice. l'unico problema è che ho dovuto mantenere il set tabella..

                              in ogni caso mi inserisce i dati nella riga 1 (quando invece deve partire dalla 2° riga) e l'ID nella riga sottostante

                               

                              #28403 Score: 0 | Risposta

                              AmmoN
                              Partecipante

                                buon pomeriggio..

                                allora premesso che sto impazzendo..

                                non riesco a combinare il codice che mi hai suggerito, perchè ho inserito una chekbox e non mi funziona con il tuo codice..(nel senso che mi da vero o falso,  mentre dovrebbe restituirmi "AUT" o "")

                                detto questo, non rieco a far funzionare il tutto se il foglio è nascosto.

                                vi allego il file.. ditemi che pasticcio ho fatto!!!

                                Allegati:
                                You must be logged in to view attached files.
                              Login Registrati
                              Stai vedendo 14 articoli - dal 1 a 14 (di 14 totali)
                              Rispondi a: errore se foglio è nascosto
                              Gli allegati sono permessi solo ad utenti REGISTRATI
                              Le tue informazioni: