Trascinare riga in mezzo ad altre senza sovrascrivere

di il
10 risposte

Trascinare riga in mezzo ad altre senza sovrascrivere

Bns a tutti voi e Buon TuttiSanti. Sto riorganizzando un file excel dove ad ogni riga è inserita una cosa da fare, senza riferimenti di data e/o orario.

Nel caso ci siano variazioni vorrei anticipare o posticipare l'attività indicata nella riga e quindi la seleziono e trascino in basso o in alto ma quando trovo il posto dove inserirla, excel mi chiede di sovrascrivere le celle, mentre invece non devo cancellare i dati inseriti in quella riga ma dovrei “ fare posto ” inserendo una riga vuota ed incollare i dati che ho trascinato. Contestualmente si dovrebbe eliminare la riga che ho lasciato vuota…..una specie di “ Simil Trello ”

Ho utilizzati registratore di macro che ovviamente suggerisce il codice, ma per le tre azioni distinte e sopra tutto legate in modo assoluto ad un range selezionato mentre questo automatismo ( se possibile ) dovrebbe agire solo sulla riga scelta per incollare la riga trascinata……

Temo che si debba entrare nel campo delle variabili che sono le mie “ bestie nere ” in merito alle mie conoscenze del VBA, ma forse grazie a voi mi possono far meno paura…

Grazie a chi mi può fare chiarezza

Cassiopea

PS: Non posto file esempio che sarebbe imbarazzante, dovrebbe essere chiaro anche cosi……

10 Risposte

  • Re: Trascinare riga in mezzo ad altre senza sovrascrivere

    Non capisco se non riesci a farlo manualmente sul foglio o non riesci col VBA

    Comunque forse ti può essere utile questo

    https://support.microsoft.com/en-us/office/move-or-copy-cells-rows-and-columns-3ebbcafd-8566-42d8-8023-a2ec62746cfc#:~:text=Cut%20and%20insert%20Hold%20down,the%20border%20of%20the%20selection.

  • Re: Trascinare riga in mezzo ad altre senza sovrascrivere

    Ciao

    seleziona la riga e tagliala

    poi  seleziona la riga sotto a dove vuoi inserire la riga tagliata

    click destro

    inserisci celle tagliate

  • Re: Trascinare riga in mezzo ad altre senza sovrascrivere

    Ciao andreapev, ok grazie faccio mia la tua risposta per spiegarmi meglio. La funzione è quella che hai descritto però vorrei farlo totalmente in automatico…..

    Seleziono la riga, la taglio, la inserisco sopra o sotto un altra riga….ma tramite macro attiva sul foglio. Senza passare per il menu tasto destro. Se faccio la registrazione macro mi vale solo per la riga che ho selezionato…..mentre invece dovrei avere questa funzionalità in qualsiasi riga del foglio ed inserire la riga in un altra qualsiasi riga….

    Grazie per il supporto.

    Cassiopea

  • Re: Trascinare riga in mezzo ad altre senza sovrascrivere

    E come dovrebbe conoscere sorgentee destinazione il codice vba se non li selezioni con il mouse?  

  • Re: Trascinare riga in mezzo ad altre senza sovrascrivere

    Ciao Oregon, in pratica questa è l'operazione che devo fare :

    Range("A12:E12").Select
       Selection.Cut
       Range("A7").Select
       Selection.Insert Shift:=xlDown

    Con il mouse seleziono il range che devo spostare e (dopo aver fatto ulteriori valutazioni) mi sta bene che inserisce le celle copiare sempre nel range A7

    E come se ci fosse una file di persone in coda ed io prendo per mano il terzo della fila e lo porto al primo posto.

    L'automatismo che vorrei implementare è per evitare di usare il tasto destro per :

    1. selezionare il Range A7
    2. cliccare su “ Inserisci celle tagliate”

     ma selezionare un Range di celle o una cella qualsiasi del foglio e poi cliccare su un bottone che esegue i punti 1 e 2

    Spero di essere riuscita a farmi capire…….

    Grazieee

    Cassiopea

  • Re: Trascinare riga in mezzo ad altre senza sovrascrivere

    Ciao

    se ho capito

    in un modulo

    Sub taglia()
    Set myrange = Application.InputBox("Seleziona le righe ...", Type:=8)
    myrange.EntireRow.Cut
    Cells(7, 1).Insert
    End Sub

    crea un pulsante e collegalo alla macro

    oppure se vuoi solo le celle e non la riga

    Sub taglia()
    Set myrange = Application.InputBox("Seleziona le righe ...", Type:=8)
    myrange.Cut
    Cells(7, 1).Insert Shift:=xlDown
    End Sub
    
  • Re: Trascinare riga in mezzo ad altre senza sovrascrivere

    Bng andreapev, grazie per avermi messo a conoscenza della Input Box che sfrutterò anche in altre occasioni….Ebbene si.  Hai capito, ed entrambe le soluzioni sono perfette e ti ringrazio ma mi dai lo spunto per osare di più….

    E' possibile by passare il passaggio dell'immissione dei riferimenti celle nella Inputbox e prenderli dalla selezione che ho fatto con il mouse?

    In pratica selezione cella o celle e poi clicco sul bottone che taglie e incolla le celle selezionate nella cella di testa ? (o quella che ho stabilito….)

    Cassiopea

  • Re: Trascinare riga in mezzo ad altre senza sovrascrivere

    Praticamente togli la inputbox e nella seconda linea metti

    Selection.Cut

    ma non capisco ancora di più il vantaggio di usare un pulsante al posto del tasto destro del mouse 

  • Re: Trascinare riga in mezzo ad altre senza sovrascrivere

    Ciao

    sono d'accordo con Oregon

    comunque chiariamo le due macro non sono che una vale l'altra eh!

    la prima taglia/inserisce tutta la riga

    la seconda solo le celle selezionate perciò se hai dati a destra della selezione

    non li sposta

  • Re: Trascinare riga in mezzo ad altre senza sovrascrivere

    Ciao Oregon, ho visto che la soluzione era dietro l'angolo……Ti ringrazio. Adesso ha la funzionalità per la quale è destinata Si la tua riflessione  sull'uso del solo tasto destro è giusta, ma in questo caso dovevo trovare la cosi detta quadra…..Grazie comunque a tutti voi che vi siete alternati nelle risposte…

    A presto

    Cassiopea

Devi accedere o registrarti per scrivere nel forum
10 risposte