You are here:Home-Domande su Excel VBA e MACRO-Inserire più righe tra lue righe
Inserire più righe tra lue righe2019-03-01T10:03:22+01:00

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

Visualizzazione 1 filone di risposte
  • Autore
    Post
    • Avataralbedin
      Partecipante
        Post totali: 1

        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: 894

          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:

          Ciao By Sal (8-)
          se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

      Visualizzazione 1 filone di risposte
      • Devi essere connesso per rispondere a questo topic.