Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    115

    [VBA]selezionare una riga da excel

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    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 ..

    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
    Se invece vuoi selezionare tu a mano le righe puoi fare così:

    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
    ok?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    115
    ciao innanzitutto grazie,
    ma nn riesco a mettere il controllo flag su ogni cella.....

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    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..

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    115
    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...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    Prova così:

    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
    Tieni premuto control e seleziona le righe a mano...

    Oppure modifichi il ciclo del primo esempio mettendo:

    codice:
    Sheets(2).Cells(k, j).Formula = Sheets(1).Cells(i, j).Formula

    Fammi sapere..

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    115
    Ciao ho fatto la prova, ma
    mi prende la formula es: =somma(....)
    invece che il valore.....

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    Originariamente 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.....
    Non capisco, e comunque se copia la formula deve visualizzare anche il valore, sempre che non ci siano incongruenze nella copia
    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:
    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
    Ok?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.