Excel e gli applicativi Microsoft Office Copiare righe da un foglio all'altro a determinate condizioni

Login Registrati
Stai vedendo 2 articoli - dal 1 a 2 (di 2 totali)
  • Autore
    Articoli
  • #6020 Score: 0 | Risposta

    geoclabri
    Partecipante

      Buongiorno. Sto cercando di imparare un pò di vba ma sono ai primi passi.

      Ecco la mia problematica.

      Da un foglio devo copiare ad un altro foglio, nella prima riga libera, alcune determinate righe in base se nella colonna v c'è il valore 1.

      Sto cercando di capire alcune macro che ho trovato , qualcuno riesce a rispondere alle note che ho inserito in questa macro?

      Sub archivia()
      
      Application.ScreenUpdating = False
      Dim Ws1 As Worksheet
      Dim Ws2 As Worksheet
      Set Ws1 = Sheets("PL") 'chiama Ws1 il foglio PL'
      Set Ws2 = Sheets("DATABASE") 'chiama Ws2 il foglio DATABASE'
      UR1 = Ws1.Range("d" & Rows.Count).End(xlUp).Row 'Assegna a UR1 il range fino all'ultima riga. Quel "d" cosa vuol dire?'
      For RR1 = 5 To UR1 ' inizia il ciclo di ricerca dalla riga 5 fino ad UR1'
              If Ws1.Range("l" & RR1).Value <> "" Then ' Se il valore del range (cosa vuol dire quello tra parentesi) è diverso da "" va al passo successivo'
              UR2 = Ws2.Range("a" & Rows.Count).End(xlUp).Row + 1 'cerca nel foglio 2 la prima riga vuota
              Ws1.Range("a" & RR1 & ":m" & RR1).Copy ' seleziona dal foglio 1 la riga dalla colonna a alla colonna m'
              Ws2.Range("a" & UR2).PasteSpecial Paste:=xlPasteValues ' copia la selezione nel foglio 2 nella prima riga vuota'
                      
              End If
      Next RR1 ' esegue un altro ciclo'
      Application.CutCopyMode = False
      MsgBox "   Archiviato"
      End Sub
      #6021 Score: 0 | Risposta

      Luca73
      Partecipante
        58 pts

        UR1 = Ws1.Range("d" & Rows.Count).End(xlUp).Row 'Assegna a UR1 il range fino all'ultima riga. Quel "d" cosa vuol dire?'

        D è la colonna in pratica del folgio WS1 (folgio PL) prende l'ultima cella della colonna D (range D+numero di righe) e poi sale fino a trovare la prima occupata.

        If Ws1.Range("l" & RR1).Value <> "" Then ' Se il valore del range (cosa vuol dire quello tra parentesi) è diverso da "" va al passo successivo'

        La variabile RR1 varia da 5 a UR1 per ogni ciclo verifica la cella L e il valore della variabile (al primo ciclo la cella L5 poi L6....)

        L'opertaore & serve per concatenare stringhe, ciò che viene immesso tra virgolette viene considerato come stringa 

        quindi 

        VarMia=73

        VarSec= "Luca" & VarMia

        il valore di VarSec sara Luca73

        Ciao

        Luca

         

        Ciao

        Luca

      Login Registrati
      Stai vedendo 2 articoli - dal 1 a 2 (di 2 totali)
      Rispondi a: Copiare righe da un foglio all'altro a determinate condizioni
      Gli allegati sono permessi solo ad utenti REGISTRATI
      Le tue informazioni: