Macro Copia righe foglio 1 su foglio 2 se cella A foglio 1 soddisfa certe condizioni

Buongiorno a tutti,

è la prima volta che chiedo aiuto attraverso tale mezzo e spero di ricevere indicazioni preziose.

ho un foglio di lavoro che contiene una tabella, è composto dalle colonne da A a Y e da circa 5000 righe.

vorrei trovare una macro che mi permetta, all'inserimento di uno specificato dato (in questo caso la parola "SI"), di copiare le righe corrispondenti con l'intero contenuto sul foglio 2.

ho trovato ed applicato la seguente macro:

Sub m()

Dim sh1 As Worksheet

Dim sh2 As Worksheet

Dim Ing As Long

Dim IRiga As Long

Dim ILastRow As Long

 

With ThisWorkbook

Set sh1 = .Worksheets("LAB")

Set sh2 = .Worksheets("ARCHIVIO")

End With

 

With sh1

ILastRow = .Range("A" & .Rows.Count).End(xlUp).Row

IRiga = sh2.Range("A" & .Rows.Count).End(xlUp).Row + 1

For Ing = 2 To ILastRow

.Range("I" & Ing).Value = "1" Then

.Range("A" & Ing & ":K" & Ing).Copy

sh2.Range("A" & IRiga).PasteSpecial

IRiga = IRiga + 1

End If

Next

End With

 

Application.CutCopyMode = False

 

Set sh2 = Nothing

 Set sh1 = Nothing

 

End Sub

 

la macro funziona, purtroppo però ogni volta che la lancio questa mi copia le righe già copiate che vanno ad aggiungersi a quelle copiate in precedenza.

cosa posso fare?

eventualmente esiste anche la possibilità di avere una macro che taglia e incolla sempre le riche con caratteristiche uguali a quelle indicate?

grazie


* Prova con un numero di pagina inferiore.

* Immetti solo numeri.

* Prova con un numero di pagina inferiore.

* Immetti solo numeri.

<cut>


Soluzione 1:

  • Registra una macro.
  • Filtra la tabella con i dati da copiare per la colonna con il Sì.
  • Copia i dati filtrati.
  • Incollali nel nuovo foglio.

Soluzione 2, qui:

Nell'esempio vengono copiate in Foglio2 tutte le righe che in Foglio1 hanno Sì in colonna Z.

---

NOTA. Ho eliminato il post con la stessa domanda che avevi inserito in coda ad un vecchio thread.

--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

1 persona ha trovato utile la risposta

·

La risposta è risultata utile?

Siamo spiacenti che questo non sia stato utile.

Ottimo. Grazie per il tuo feedback.

Quanto sei soddisfatto di questa risposta?

Grazie per il feedback, ci aiuta a migliorare il sito.

Quanto sei soddisfatto di questa risposta?

Grazie per il tuo feedback.

Grazie mille!!!

proverò durante il week End.

La risposta è risultata utile?

Siamo spiacenti che questo non sia stato utile.

Ottimo. Grazie per il tuo feedback.

Quanto sei soddisfatto di questa risposta?

Grazie per il feedback, ci aiuta a migliorare il sito.

Quanto sei soddisfatto di questa risposta?

Grazie per il tuo feedback.

grazie Mauro,

proprio quello che cercavo.

ti faccio altra domanda:

una macro che sposta le righe in cui le celle di una colonna hanno un determinato valore o testo?

grazie ancora

La risposta è risultata utile?

Siamo spiacenti che questo non sia stato utile.

Ottimo. Grazie per il tuo feedback.

Quanto sei soddisfatto di questa risposta?

Grazie per il feedback, ci aiuta a migliorare il sito.

Quanto sei soddisfatto di questa risposta?

Grazie per il tuo feedback.

ti faccio altra domanda:

una macro che sposta le righe in cui le celle di una colonna hanno un determinato valore o testo?

grazie ancora

Puoi spiegare meglio, per favore.

Grazie.

--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

La risposta è risultata utile?

Siamo spiacenti che questo non sia stato utile.

Ottimo. Grazie per il tuo feedback.

Quanto sei soddisfatto di questa risposta?

Grazie per il feedback, ci aiuta a migliorare il sito.

Quanto sei soddisfatto di questa risposta?

Grazie per il tuo feedback.

ciao,

la stessa macro che mi hai girato nella soluzione 2 ma che invece di copiare, spostano definitivamente le righe che in foglio 1 hanno la condizione SI nella colonna Z.

grazie

La risposta è risultata utile?

Siamo spiacenti che questo non sia stato utile.

Ottimo. Grazie per il tuo feedback.

Quanto sei soddisfatto di questa risposta?

Grazie per il feedback, ci aiuta a migliorare il sito.

Quanto sei soddisfatto di questa risposta?

Grazie per il tuo feedback.

ciao,

la stessa macro che mi hai girato nella soluzione 2 ma che invece di copiare, spostano definitivamente le righe che in foglio 1 hanno la condizione SI nella colonna Z.

grazie

Sostituisci il codice precedente con questo:

Public Sub mTagliaCopia()

    Dim sh1 As Worksheet
    Dim sh2 As Worksheet
    Dim lRiga1 As Long
    Dim lRiga2 As Long
    Dim lng As Long
   
    With ThisWorkbook
        Set sh1 = .Worksheets("Foglio1")
        Set sh2 = .Worksheets("Foglio2")
    End With
   
    Application.ScreenUpdating = False

    With sh1
        lRiga1 = sh1.Range("A" & sh2.Rows.Count).End(xlUp).Row + 1
        For lng = lRiga1 To 2 Step -1
            If .Range("Z" & lng).Value = "SI" Then
                .Range("A" & lng & ":Z" & lng).Copy
                lRiga2 = sh2.Range("A" & .Rows.Count).End(xlUp).Row + 1
                sh2.Range("A" & lRiga2).PasteSpecial
                Application.CutCopyMode = False
                .Rows(lng & ":" & lng).Delete
            End If
        Next

    End With
   
    Application.ScreenUpdating = True
   
    Set sh1 = Nothing
    Set sh2 = Nothing
   
End Sub

--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

La risposta è risultata utile?

Siamo spiacenti che questo non sia stato utile.

Ottimo. Grazie per il tuo feedback.

Quanto sei soddisfatto di questa risposta?

Grazie per il feedback, ci aiuta a migliorare il sito.

Quanto sei soddisfatto di questa risposta?

Grazie per il tuo feedback.

Grazie Mauro,

ho provato ma ho alcuni problemi.

premetto: il foglio di lavoro è "dinamico", è un foglio in cui inseriamo gli ordini man mano che arrivano e viene applicata la condizione NO nella cella corrispondente della colonna Z, una volta evasi si applica la condizione SI nella stessa cella. l'evasione degli ordini non avviene in sequenza di inserimento, ma in base alle esigenze di produzione, quindi potrebbe essere che alcune righe Hanno SI, altre hanno NO e così via. Ho fatto alcune prove ma questo è il risultato:

  1. le righe che soddisfano la condizione vengono effettivamente copiate e spostate, ma, una volta modificata la condizione del foglio 1 di altre righe le prime vengono sovrascritte.
  2. avrei necessità di applicare la macro da un certo numero di riga in poi, lasciando le prime 8 come intestazione.

se ti serve potrei inviarti la cartella.

Grazie

La risposta è risultata utile?

Siamo spiacenti che questo non sia stato utile.

Ottimo. Grazie per il tuo feedback.

Quanto sei soddisfatto di questa risposta?

Grazie per il feedback, ci aiuta a migliorare il sito.

Quanto sei soddisfatto di questa risposta?

Grazie per il tuo feedback.

se ti serve potrei inviarti la cartella.

maurogsc

chiocciola

alice.it

--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

La risposta è risultata utile?

Siamo spiacenti che questo non sia stato utile.

Ottimo. Grazie per il tuo feedback.

Quanto sei soddisfatto di questa risposta?

Grazie per il feedback, ci aiuta a migliorare il sito.

Quanto sei soddisfatto di questa risposta?

Grazie per il tuo feedback.

Inviata.

Grazie

1 persona ha trovato utile la risposta

·

La risposta è risultata utile?

Siamo spiacenti che questo non sia stato utile.

Ottimo. Grazie per il tuo feedback.

Quanto sei soddisfatto di questa risposta?

Grazie per il feedback, ci aiuta a migliorare il sito.

Quanto sei soddisfatto di questa risposta?

Grazie per il tuo feedback.

Ciao,

ti è arrivata la mail???

grazie

La risposta è risultata utile?

Siamo spiacenti che questo non sia stato utile.

Ottimo. Grazie per il tuo feedback.

Quanto sei soddisfatto di questa risposta?

Grazie per il feedback, ci aiuta a migliorare il sito.

Quanto sei soddisfatto di questa risposta?

Grazie per il tuo feedback.

* Prova con un numero di pagina inferiore.

* Immetti solo numeri.

* Prova con un numero di pagina inferiore.

* Immetti solo numeri.

 
 

Informazioni domanda


Ultimo aggiornamento 15 aprile 2024 Visualizzazioni 24.395 Si applica a: