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

    ambrovba
    Partecipante
      Ciao a tutti,
      vorrei che da un file di svariate migliaia di righe fossero eliminate tutte quelle che nella colonna 3 non hanno il valore 61.
      Io ho scritto il seguente codice:

      Private Sub CommandButton1_Click()

      Dim numero_riga_stat0483 As Integer
      Dim contatore_righe_stat0483 As Integer
      Dim valore_aree As Range
      Dim Renta As Integer
      Renta = 61
      numero_riga_stat0483 = 5

      'conto il numero di righe di stat0483
      While (Workbooks("stat0483.xls").Worksheets("Worksheet").Cells(numero_riga_stat0483, 1) <> "")
      contatore_righe_stat0483 = contatore_righe_stat0483 + 1
      numero_riga_stat0483 = numero_riga_stat0483 + 1
      Wend
      'assegno alla variabile valore_aree tutti i valori contenuti nella colonna 3 dalla riga 5 all'ultima pari al valore di contatore_righe_stat0483
      With Workbooks("stat0483.xls").Worksheets("Worksheet")
      Set valore_aree = Workbooks("stat0483.xls").Worksheets("Worksheet").Range(.Cells(5, 3), .Cells(contatore_righe_stat0483, 3))
      End With
      Nel passaggio sopra mi dà l'errore "Erroe di Runtime 91: Variabile oggetto o variabile del blocco With non impostata"
      'per ogni riga partendo dal fondo elimino la riga se valore_aree non è uguale a 61 (ma questa parte non l'ho ancora verificata perché mi si blocca al passaggio prima)
      For numero_riga_stat0483 = contatore_righe_stat0483 To 1 Step -1
      Set valore_aree.Find(Cells(numero_riga_stat0483, 3)) = 61
      If Not valore_aree Is Nothing Then Cells(numero_riga_stat0483, 3).EntireRow.Delete
      Next numero_riga_stat0483
      End Sub
      Grazie per l'aiuto
      #2225 Score: 0 | Risposta

      albatros54
      Moderatore
        81 pts

        la prossima volta che devi inserire il codice, inseriscilo nella finestra che si apre sul pulsante code

        Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?( Alan Turing)

        #2226 Score: 0 | Risposta

        Luca73
        Partecipante
          54 pts
          Allegheresti il tuo file?
          Renderesti più semplice l'analisi.
          io proverei con sostituire la linea
          Set valore_aree = Workbooks(“stat0483.xls”).Worksheets(“Worksheet”).Range(.Cells(5, 3), .Cells(contatore_righe_stat0483, 3))
          con
          Set valore_aree = Range(.Cells(5, 3), .Cells(contatore_righe_stat0483, 3))
          Ciao
          Luca
          #2237 Score: 0 | Risposta

          ambrovba
          Partecipante
            Scusa Albatros54
            Luca73 ho provveduto a cambiare la stringa come hai detto tu ma ora mi dice "Errore di Runtime 1004 - Errore definito dall'oggetto o dall'applicazione".
            Allego il file, grazie
            #2239 Score: 0 | Risposta

            Marius44
            Moderatore
              51 pts
              Ciao
              il file non è stato caricato perchè supera i limiti consentiti. Utilizza un sito tipo Dropbox
              Ciao,
              Mario
              #2254 Score: 0 | Risposta

              ambrovba
              Partecipante
                Ops, ora dovrebbe esserci
                Allegati:
                You must be logged in to view attached files.
                #2256 Score: 0 | Risposta

                Mister_x
                  ciao
                  tua domanda
                  cit:   vorrei che da un file di svariate migliaia di righe fossero eliminate tutte quelle che nella colonna 3 non hanno il valore 61.
                  quindi a mio parere una sub() molto semplice e' questa
                  [code]
                  Sub elimina_no_61()
                  Dim i As Long
                  For i = Cells(Rows.Count, 3).End(xlUp).Row To 1 Step -1
                  If Cells(i, 3) <> 61 Then
                  Rows(i & ":" & i).Delete
                  End If
                  Next i
                  End Sub
                  [/code]
                  da inserire nel modulo del foglio in questione
                  ciao
                  #2257 Score: 0 | Risposta

                  ambrovba
                  Partecipante
                    Ciao Mister_x,
                    mi dà errore in questa stringa
                    [code]
                    Rows(i & “:” & i).Delete
                    [\code]
                    Se metto la virgola lo risolvo ma comunque mi dà l'errore "Errore di run-time 1004"
                    #2260 Score: 0 | Risposta

                    Mister_x
                      ciao
                      non saprei dirti il perché ti da errore in quanto
                      e qui mi rivolgo a  ( Mauro ) se puo darmi delucidazioni in quanto non riesco ad iscrivermi nel nuovo sito
                      non riesco a scaricare nessun allegato da visionare, prima era molto più semplice trovarli
                      se il problema nel mio caso sara' risolto vedro' il file e ti sapro dire
                      ciao
                      #2264 Score: 0 | Risposta

                      Luca73
                      Partecipante
                        54 pts
                        Ciao
                        Io (usando la tua base semplificherei così
                        Private Sub CommandButton1_Click()
                        'Workbooks.Open ("V:\Ambrogio\Renta\Analisi SALES vs BDG dryer\stat0483.xls")
                        Dim numero_riga_stat0483 As Integer
                        Dim contatore_righe_stat0483 As Integer
                        contatore_righe_stat0483 = 0
                        numero_riga_stat0483 = 5
                        
                        'conto il numero di righe di stat0483
                        
                        While (ThisWorkbook.Worksheets("Worksheet").Cells(numero_riga_stat0483, 3) <> "")
                            ThisWorkbook.Worksheets("Worksheet").Cells(numero_riga_stat0483, 3).Select
                            If ThisWorkbook.Worksheets("Worksheet").Cells(numero_riga_stat0483, 3) = 61 Then
                                ThisWorkbook.Worksheets("Worksheet").Cells(numero_riga_stat0483, 3).Select
                                ThisWorkbook.Worksheets("Worksheet").Cells(numero_riga_stat0483, 3).EntireRow.Delete
                                contatore_righe_stat0483 = contatore_righe_stat0483 + 1
                            Else
                                numero_riga_stat0483 = numero_riga_stat0483 + 1
                            End If
                        Wend
                        
                        ThisWorkbook.Worksheets("Worksheet").Cells(1, 1) = contatore_righe_stat0483
                        
                        End Sub
                        #2268 Score: 0 | Risposta

                        Marius44
                        Moderatore
                          51 pts

                          Salve a tutti

                          @ambrovba
                          nel codice suggerito da Mister_x (finalmente ti si ... risente! Ciao) sostituisci quella riga con Rows(i).Delete

                          .

                          @Mister_x e Luca73

                          a quanto ho capito il problema del richiedente è (anche) il tempo. I codici suggeriti soddisfano la richiesta ma, probabilmente, per oltre 20mila righe impiegherebbero tanto tempo. Assegnando, invece, i valori della colonna C ad un array si potrebbe fare in meno. O sbaglio qualcosa?

                           

                          Ciao,

                          Mario

                           

                           

                          #2271 Score: 0 | Risposta

                          Mister_x
                            ciao
                            ciao Mario ( seguo sempre ) per la tua domanda non saprei in quanto come accennato prima in questa
                            nuova veste del forum non riesco a scaricare file allegati, anche perché prima erano ben visibili,
                            quando tento questo procedimento mi manda alla sezione di immettere la mio nominativo o imail e
                            la relativa password , metto quella che uso normalmente per gli altri forum e penso che in precedenza
                            avevo inserita questa nell'altro forum , ma mi dice pass errata , faccio la richiesta di modifica a essa
                            arriva la imail dal sito che mi indica dove collegarmi per la modifica, mi collego , mi appare una maschera di
                            immissione dei dati ma alla conferma non ho nessun riscontro di questo cambio avvenuto
                            faccio una prova di Login ma mi dice che la pass e' errata
                            ora la mia domanda e' . come fare a superare questo ostacolo???
                            2 e' possibile scaricare o caricare un file senza fare il Login ???   come facevo in precedenza ???
                            in attesa di risposta
                            ciao a tutti
                            #2275 Score: 0 | Risposta

                            Marius44
                            Moderatore
                              51 pts
                              Ciao Mister_x
                              Tiro ad indovinare: ma ti sei iscritto a questo nuovo Forum? No, te lo chiedo perchè (da quel somaro che sono) credevo che valesse la precedente iscrizione e la medesima password. Ma mi sbagliavo.
                              Occorre iscriversi e mettere la password (va bene anche la precedente; penso che tutti usiamo la stessa password per tutti i Forum). Solo dopo potrai scaricare i file che ti interessano. I file allegati si trovano in basso sempre entro la finestra della discussione.
                              Spero di esserti stato utile.
                              Ciao,
                              Mario
                              #2276 Score: 0 | Risposta

                              Mister_x
                                ciao Mario
                                mi sono gia iscritto , in quanto se cerco di eseguire una nuova iscrizione, col mio nome e il mio indirizzo mail
                                mi dice che questi e' gia presente e mi attiva ( password dimenticata )
                                attivo questi e ricevo una mail di collegarmi per efettuare la modifica della pass
                                immetto la nuava pass , ma quando vado a fare il Login mi dice che la pass e' errata
                                -------  questa e la mail
                                Qualcuno ha richiesto la reimpostazione della password per il seguente account.
                                Nome del sito: Forum Excel VBA
                                Nome utente: silvano montani
                                Se si è trattato di un errore, ignorare questa email e non accadrà nulla.
                                Per reimpostare la tua password visita il seguente indirizzo:
                                cambiato nome
                                ------
                                riprovo ad esequire questi , ma gradirei che un amministratore di sistema mi dica che pass ho inserito
                                ciao da Mister_x
                                #2291 Score: 0 | Risposta

                                Mister_x
                                Partecipante
                                  11 pts
                                  ciao
                                  finalmente con calma sono riuscito a modificare la pass e scaricare il file
                                  ho aggiunto alcuni comandi alla sub() e sul file proposto il tempo impiegato e' stato di 105 secondi
                                  Option Explicit
                                  Sub elimina_no_61()
                                  Dim i As Long
                                  Dim tempo As Double
                                  tempo = Timer
                                  Application.EnableEvents = False
                                  Application.ScreenUpdating = False
                                  For i = Cells(Rows.Count, 3).End(xlUp).Row To 1 Step -1
                                  If Cells(i, 3) <> 61 Then
                                  Rows(i).Delete
                                  End If
                                  Next i
                                  Application.ScreenUpdating = True
                                  Application.EnableEvents = True
                                  MsgBox Timer - tempo
                                  End Sub
                                  ciao
                                  #2296 Score: 0 | Risposta

                                  Oscar
                                  Partecipante
                                    32 pts
                                    Ciao Mister_x,
                                    mi dà errore in questa stringa
                                    [code]
                                    Rows(i & ":" & i).Delete
                                    [\code]
                                    Se metto la virgola lo risolvo ma comunque mi dà l’errore “Errore di run-time 1004”
                                    Non è questione di virgola , ma sono gli apici che racchiudono i :  prova a cancellarli e rifarli
                                    #2297 Score: 0 | Risposta

                                    albatros54
                                    Moderatore
                                      81 pts

                                      @oscar
                                      per inserire il codice adopera il pulsante CODE è inserisci il codice nella finestra che ti appare dopo click su insert,
                                      perche inserendo il codice tra i tag "code" non va bene
                                      ciao

                                      Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?( Alan Turing)

                                      #3256 Score: 0 | Risposta

                                      ambrovba
                                      Partecipante
                                        Ciao a tutti, ci rinuncio, è una cosa più grande di me :(.
                                        grazie per il vostro tempo.
                                        Studierò un po' e al massimo mi rifarò vivo.
                                         
                                         
                                      Login Registrati
                                      Stai vedendo 18 articoli - dal 1 a 18 (di 18 totali)
                                      Rispondi a: Formula With
                                      Gli allegati sono permessi solo ad utenti REGISTRATI
                                      Le tue informazioni: