Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Macro Copia / Incolla riga con cella condizionata

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Macro Copia / Incolla riga con cella condizionata

Postdi Zor70 » 25/02/11 22:14

Ciao a tutti,
scrivo per chiedere il vostro aiuto in quanto mi trovo in difficoltà.
Su un foglio chiamato "GENERALE", dovrei attivare due pulsanti per Macro che copino righe che soddisfino condizioni di contenuto di una cella e le incollino su due fogli diversi:
uno denominato "DA PREPARARE" e l'altro " Pronte".
Ho utilizzato questi codici ma le macro non sopiano i dati come richiesto:
la prima:
Sub Preparazione ()

Dim i As Integer
Dim cont As Integer

Sheets("GENERALE").Select
Range("A4:M450").Select
Selection.Copy
Sheets("PREPARAZIONE").Select
Range("A4").Select
ActiveSheet.Paste
Application.ScreenUpdating = False
With ActiveSheet
righe = Range("M450").End(xlUp).Row
End With
cont = 0
i = 3
If Cells(i, 12) = "DA PREPARARE" Then
Range(Cells(i, 1), Cells(righe + cont, 12)).Copy Destination:=Cells(i, 12)
cont = cont + 1
i = i + 1
End If

Range(Cells(i + cont, 1), Cells(i, 12)).ClearContents
Application.ScreenUpdating = True
Sheets("PREPARAZIONE").Select

End Sub


la seconda:

Sub PRONTE()

Dim i As Integer
Dim cont As Integer

Sheets("GENERALE").Select
Range("A4:M450").Select
Selection.Copy
Sheets("PRONTE").Select
Range("A4").Select
ActiveSheet.Paste
Application.ScreenUpdating = False
With ActiveSheet
righe = Range("M450").End(xlUp).Row
End With
cont = 0
i = 3
If Cells(i, 13) = "PRONTA" Then
Range(Cells(i, 1), Cells(righe + cont, 13)).Copy Destination:=Cells(i, 13)
cont = cont + 1
i = i + 1
End If

Range(Cells(i + cont, 1), Cells(i, 13)).ClearContents
Application.ScreenUpdating = True
Sheets("PRONTE").Select

End Sub


Mi potete aiutare??
Zor70
Newbie
 
Post: 4
Iscritto il: 31/01/11 11:53

Sponsor
 

Re: Macro Copia / Incolla riga con cella condizionata

Postdi Anthony47 » 26/02/11 00:17

Intanto benvenuto nel forum.
In quanto alla macro, dovresti spiegare che cosa vorresti fare perche' possa provare a dare un contributo. E possibilmente anche la struttura dati di partenza e di destinazione; per questo e' sufficiente allegare uno screenshot (vedi qui: viewtopic.php?f=26&t=80395#p466013)

Ti aspettiamo, ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro Copia / Incolla riga con cella condizionata

Postdi Anthony47 » 27/02/11 00:30

Ok, mi hai inviato via mp il layout del foglio da cui copiare (perche' sul forum non ti lascia ancora inserire un link), pero' potevi anche dire in quale colonna cercare il Da Preparare o Pronta.
Parti da questa macro, personalizzando le righe marcate <<
Codice: Seleziona tutto
Sub Prepara1()
RefCol = "M"    '<< La colonna
CopyStr = "Pronte"  '<<Il valore
Sheets("SITUAZIONE GENERALE").Select
RefOff = Range(RefCol & 1).Column
For Each Cell In Range("a4:a" & Cells(Rows.Count, 1).End(xlUp).Row)
If UCase(Cell.Offset(0, RefOff - 1).Value) = UCase(CopyStr) Then _
    Cell.Range("A1:M1").Copy Destination:=Sheets("Pronte").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)  '<< Sheets("NomeDelFoglioDiDestinazione")
Next Cell
End Sub

Da excel, Alt-F11 per aprire l' editor delle macro; poi Menu /Inserisci /Modulo; copia il codice e incollalo nel frame di dx.
Poi replichi la macro come Sub Prepara2() usando le info per quelle "Da preparare"

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro Copia / Incolla riga con cella condizionata

Postdi Zor70 » 27/02/11 12:46

Scusa infinitamente Anthony se sono stato poco chiaro, hai perfettamente ragione.
Grazie per la tua preziosa risposta.
Ti farò sapere appena testo la macro se funziona.
Poi appena il forum mi consentirà di postare metterò la macro che mi hai inviato sullo stesso in modo che se qualcuno ne avesse necessità la potrà utilizzare.
Intranto grazie e perdona le mie mancanze.
Zor70
Zor70
Newbie
 
Post: 4
Iscritto il: 31/01/11 11:53

Re: Macro Copia / Incolla riga con cella condizionata

Postdi Zor70 » 28/02/11 17:17

Grazie Infinite Anthony, pare funzioni!!!!
Sei un grande!
Una sola cosa:
Vorrei che sul foglio di destinazione le celle copiate iniziassero dalla 4^ riga.
E' possibile che se una cella del foglio " Situazione Generale" sia oggetto di risultato di una formula quando eseguo l'istruzione copia la cella e la porta nel foglio "Pronte" sparisca il dato che originariamente è nel foglio " Situazione Generale"?
Che sia il caso di fare una macro che copi - incolli solo i valori e non le formule?
E poi due curiosità:
1) è possibile creare anche una macro che tagli ed incolli invece che copi ed incolli?
2) è possibile creare una macro che, dopo 2 giorni, nasconda ,con una istruzione " aggiorna", le righe che su " Situazione Generale" risultano pronte?

Sei un grande!!

Ps " potresti spiegarmi dove sbagliavo? Sono qui per imparare, grazie!!
Zor70
Newbie
 
Post: 4
Iscritto il: 31/01/11 11:53

Re: Macro Copia / Incolla riga con cella condizionata

Postdi Anthony47 » 01/03/11 00:44

Devi fare qualche adattamento:
-per il copia valore devi modificare
Cell.Range("A1:M1").Copy Destination:=Sheets("Pronte").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) '<< Sheets("NomeDelFoglioDiDestinazione")
Lasci .copy, mentre la parte successiva, su altra riga, sara' il PasteSpecial; vedi nell' help on line la sintassi o cerca come l' abbiamo usato altre volte nel forum.

-per il Taglia /Incolla, prova a registrare una macro mentre fai quell' operazione e usa il codice prodotto.
-per la macro che "ogni 2 giorni" secondo me lo farai a manina usando il comando Filtro automatico…

Dove sbagliava la tua macro? Beh, se "leggi" che cosa fa vedrai che non c' e' nessun ciclo che scansiona il tuo elenco alla ricerca di cosa copiare e cosa no; quello che io faccio col ciclo For Each Cell In Range("a4:a" & Cells(Rows.Count, 1).End(xlUp).Row) / Next Cell

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro Copia / Incolla riga con cella condizionata

Postdi Zor70 » 01/03/11 11:16

Grazie Infinite Anthony.
Il tuo aiuto è stato determinante!
Zor70
Newbie
 
Post: 4
Iscritto il: 31/01/11 11:53


Torna a Applicazioni Office Windows


Topic correlati a "Macro Copia / Incolla riga con cella condizionata":


Chi c’è in linea

Visitano il forum: patel e 3 ospiti