You are here:--Inserire più righe tra lue righe
Inserire più righe tra lue righe 2019-03-01T10:03:22+01:00

Home Forum Domande su Excel VBA e MACRO Inserire più righe tra lue righe

  • Autore
    Articoli
  • Avataralbedin
    Partecipante
      Post totali: 1
      #7977 |

      Ciao, ho trovato sui forum una tua formula per inserire più righe tra le righe.

      Volevo sapere se potevi insegnarmi a cambiare il numero delle righe che vengono inserite, nella tua formula sono solo 2.

      Grazie

      Sub alternaDue()
      Uriga = Cells(Rows.Count, “A”).End(xlUp).Row
      For N = Uriga To 1 Step -1
      Rows(N + 1 & “:” & N + 2).Insert
      Next N
      End Sub

    • BySalvBySalv
      Amministratore del forum
        Post totali: 401

        Ciao Albedin, il problema dell’inserimento righe, che quando vengono inserite, la riga sottostante viene spostata di x righe più in basso, quindi il ciclo For…Next non riesce a trovare più la riga con il valore, per inserire le altre righe, perche sono più in basso.

        allora nel caso specifico, si utilizza il ciclo sempre For…Next ma partendo dall’ultima riga occupata, cioè al contrario dal basso verso l’alto, in questo modo,salendo mano a mano troverà sempre una riga occupata inserendo le righe vuote nel mezzo.

        La macro sarà vetusta in quanto come vedi non sono usate variabili, se il modulo avrebbe come prima riga, l’espressione “Option explicit” la macro andrebbe in errore perche tale espressione pretende che siano dichiarate tutte le variabili utilizzate.

        mi dici che vuoi rendere variabile il numero di righe da inserire, ci sono 2 modi, quello più semplice se sei prativo del VBA sostituire il “2” con il numero di righe che ti interessano, l’altro forse per i meno esperti del VBA, fare in modo da inserire in una cella del foglio il valore delle righe da inserire, questo per persone che non sanno dove mettere le mani nel VBA.

        ora facciamo ipotesi che il numero di righe da inserire lo inseriamo nella Cella “AA1” a questo punto la macro diventerebbe inserendo anche tutte le dichiarazioni delle variabili

        Sub alternaDue()
        Dim Uriga as Integer, N as integer, d as integer
        
        d= Range("AA1")'prendiamo il numero di righe vuote da inserire dalla cella "AA1"
        Uriga = Cells(Rows.Count, “A”).End(xlUp).Row 'vediamo qual'è lultima riga occupata della colonna "A"
        'inizializziamo il Ciclo partendo da Uriga(ultima riga) ad 1, con "Step -1" indichiamo al ciclo di salire di 1 posizione, se avremmo inserito -2 sarebbe salito di 2 posizioni.
        For N = Uriga To 1 Step -1
            Rows(N + 1 & “:” & N + d).Insert 'come vedi al posto di 2 ho inserito "d" che sarebbe il numero di righe da inserire, che prende da "AA1"
        Next N
        End Sub

        ho commentato la macro in modo da farti capire i vari passaggi, i vari commenti puoi anche eliminarli dopo aver copiato la macro.

        Ricordati di inserire almeno 1 valore in “AA1”, ma la cella può essere anche qualsiasi altra.

        Ciao By Sal :bye:

      Devi essere loggato per rispondere a questa discussione.

      Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

      Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

      Chiudi