Sviluppare funzionalita su Microsoft Office con VBA Copiare interi righi su altro foglio con condizione su cella

LoginRegistrati
Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
  • Autore
    Articoli
  • #11598 Risposta

    Alessio

      Buongiorno,

      al momento sto usando questo codice, ma volevo qualcosa di + semplice anche perchè in alcuni casi non funziona.

      Vorrei scorerre come già fa il codice sotto e copiare tutte le righe che trova con un determinato dato (numeri o  lettere) su un'altro foglio.

      Premetto che sul foglio della ricerca da dove deve copiare ci possono essere compilati anche 200 e + righe. 

      Grazie

      Workbooks("CARTELLINI.xls").Worksheets("Foglio1").Activate
      'Sheets("Foglio1").Select
      
      
      trovacodice = Application.WorksheetFunction.CountIf(Range("af4:af600"), "1")
      
      If trovacodice > 0 Then
      
      Range("af4").Select
      Do
      ActiveCell.Offset(1).Select
      Loop Until ActiveCell.Value = "1"
      ActiveCell.Offset(0, -30).Select
      X = ActiveCell.Address
      cliente = ActiveCell.Value
      ActiveCell.Offset(0, 190).Select
      
      Taglia = ActiveCell.Value
      Y = ActiveCell.Address
      Taglia = ActiveSheet.Name
      Range(X & ":" & Y).Select
      Selection.Cut
      Workbooks("RIFIN.xls").Worksheets("RIFIN").Activate
      Range("b8").Select
      Do
      ActiveCell.Offset(1).Select
      Loop Until ActiveCell.Value = ""
      Sheets("RIFIN").Paste

      edit by VF: ho sistemato il codice. Utilizzate il pulsante {;} per inserire codice nei post, grazie

      #11606 Risposta

      vecchio frac
      Senior Moderator
      • Sfida #1
        136 pts

        Sarebbe preferibile che postassi l'intera Sub e non solo una sua parte.

        Inoltre un file di esempio sarebbe gradito per non doversi ricostruire uno scenario che magari è diverso dal tuo.

        #11607 Risposta

        vecchio frac
        Senior Moderator
        • Sfida #1
          136 pts

          Spiega anche meglio cosa vuoi fare. 

          Il primo ciclo Do.. Loop per trovare un determinato valore è estremamente inefficace, riesci a pensare a un metodo più veloce e affidabile?

          Inoltre perchè recuperi gli indirizzi di alcune celle con X e Y se poi li utilizzi in un modo del tutto inappropriato? Insomma cerca di essere più chiaro nello spiegare la tua esigenza e cerca di capire in che modo puoi raggiungere il risultato utilizzando sintassi e metodi più idonei.

          #11634 Risposta

          alessio

            Praticamente sul foglio1 vorrei selezionare tutti i righi dove nella colonna A si trova il valore "s" e copiarli nel foglio2.

            #11635 Risposta

            vecchio frac
            Senior Moderator
            • Sfida #1
              136 pts

              Allora in ordine di semplicità di attuazione, te la caverai meglio con un ciclo For ... Next che scandisce il range interessato e quando la condizione è soddisfatta opera la copia.

              In seconda alternativa puoi utilizzare il metodo Find del'oggetto Range (accoppiato con FindNext finchè la ricerca è esaurita).

              In terza alternativa, un filtro avanzato per estrapolare le righe che soddisfano la condizione nel campo chiave.

              In quarta alternativa, però più complessa da capire anche se più flessibile, utilizzare un recordset ADO per interrogare la base dati ed estrarre - anche qui - le righe che soddisfano la condizione.

            LoginRegistrati
            Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
            Rispondi a: Copiare interi righi su altro foglio con condizione su cella
            Gli allegati sono permessi solo ad utenti REGISTRATI
            Le tue informazioni:



            vecchio frac - 2040 risposte

            albatros54
            albatros54 - 646 risposte

            patel
            patel - 501 risposte

            Marius44
            Marius44 - 408 risposte

            Luca73
            Luca73 - 369 risposte