Buongiorno,
vorrei sapere la riga di comando che da una macro di excel
selezionando la riga mi riporti tutte le celle su un altro foglio..
grazie anticipatamente
Buongiorno,
vorrei sapere la riga di comando che da una macro di excel
selezionando la riga mi riporti tutte le celle su un altro foglio..
grazie anticipatamente
Se per ogni riga usi una colonna flag in cui metti 1 nel caso sia da copiare puoi usare il doppio ciclo qui di seguito, un pò spartano ma funge ..
Se invece vuoi selezionare tu a mano le righe puoi fare così:codice:Dim i, j, k, rigafine, flag,numcolonne k = 1 rigafine = 100 flag = 1 numcolonne=100 For i = 1 To rigafine If Sheets(1).Cells(i, flag) = 1 Then For j = 1 To numcolonne Sheets(2).Cells(k, j) = Sheets(1).Cells(i, j) Next k = k + 1 End If Next
ok?codice:Sub CopiaRighe() i = 1 For Each a In Selection.Areas Sheets(2).Rows(i) = a.Rows.Value i = i + 1 Next a End Sub
ciao innanzitutto grazie,
ma nn riesco a mettere il controllo flag su ogni cella.....![]()
Forse mi sono espresso male.. intendevo dire metti 1 in una colonna in corrispondenza della riga da copiare..
Usi cioè una colonna ausiliaria per indicare quale riga copiare.
La prima soluzione, quando trova 1 in quella colonna copia tutta la riga.
in particolare "flag" è la variabile che contiene il numero della colonna che usi per indicare le righe da copiare.
Se non ho chiarito chiedimi..
si grazie funziona,
l'unica cosa che su due celle ci sono delle formule..
e nn me le prende...
esempio sulle celle =SOMMA(I7:J7)
e andando avanti =SOMMA(I9:J9)
il ciclo va benissimo ma nn mi prende il valore...
Prova così:
Tieni premuto control e seleziona le righe a mano...codice:Sub CopiaRighe() i = 1 For Each a In Selection.Areas Sheets(2).Rows(i) = a.Rows.Formula i = i + 1 Next a End Sub
Oppure modifichi il ciclo del primo esempio mettendo:
codice:Sheets(2).Cells(k, j).Formula = Sheets(1).Cells(i, j).Formula
Fammi sapere..
Ciao ho fatto la prova, ma
mi prende la formula es: =somma(....)
invece che il valore.....
Non capisco, e comunque se copia la formula deve visualizzare anche il valore, sempre che non ci siano incongruenze nella copiaOriginariamente inviato da cesco
1.
...il ciclo va benissimo ma nn mi prende il valore...
2.
...mi prende la formula es: =somma(....)
invece che il valore.....
Quando copi le celle che contengono formule devi copiare anche tutte le celle a cui le formule si riferiscono, altrimenti perdi informazioni..
es: per copiare la cella che contiene "=somma(A1:A20)" e visualizzare correttamente il risultato devi copiare anche l'intervallo A1:A20..
Io ho provato questo e copia sia i singoli valori che le formule, e ne visualizza il risultato:
Ok?codice:Sub copia() Dim i, j, k, rigafine, flag, numcolonne k = 1 rigafine = 26 flag = 10 numcolonne = 9 For i = 1 To rigafine If Sheets(1).Cells(i, flag) = 1 Then For j = 1 To numcolonne Sheets(2).Cells(k, j).Formula = Sheets(1).Cells(i, j).Formula Next k = k + 1 End If Next End Sub