Domanda Trasporre il testo posizionato nella cella sotto con formula

rounin

Utente junior
Original poster
28 Ottobre 2017
41
0
6
Napoli
2016
Ciao a Tutti,
sono anni che quando mi capita questo problema , poi lo risolvo manualmente,..

come da file allegato, capita di avere liste formattate in modo errato, dove "cognome" e "nome" sono riportati in celle una sopra e l'altro sotto, mentre a me servirebbe che stessero nella stessa riga e se possibile successivamente cancellare il dato copiato, in modo "automatico" in tutta la lista molto lunga

anticipatamente Grazie
 

Allegati

  • esempio.xlsx
    8,3 KB · Visite: 7

alfrimpa

VBA Expert
Supermoderatore
18 Dicembre 2015
78.684
8.622
2.445
72
Napoli
Office 365
Cosa intendi con

e se possibile successivamente cancellare il dato copiato
Per cancellare fisicamente il contenuto di una cella occorre una macro.

Prova questa macro

Visual Basic:
Sub COMPILA2()
Dim j As Integer
Dim I As Integer
For j = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
    If Cells(j, 1).Value = "" Then
     Cells(j, 1).EntireRow.Delete
    End If
Next j
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row Step 2
    Cells(I, 2) = Cells(I, 1)
    Cells(I, 3) = Cells(I, 1).Offset(1, 0)
Next I
End Sub
 
Ultima modifica:

Terio

Excel/Vba Expert
Supermoderatore
6 Gennaio 2021
28.622
6.279
2.345
55
Arce
2016, 2019, 365
Ti sarei grato se, prima di continuare in questa discussione, chiudessi quella rimasta aperta, inoltre devi fare chiarezza anche sulla versione che utilizzi, visto che in passato hai nominato anche la 2019,
grazie.

edit
chiudessi quella rimasta aperta
Fatto, riapro questa.
alla versione che utilizzi
Ho corretto con la 2016 come comunicato in privato.

Riguardo alla tua richiesta:
a me servirebbe che stessero nella stessa riga
B2
=SE(NON(RESTO(RIF.RIGA()-2;3));A2&"";"")
da trascinare a destra e poi in basso fino all'ultimo nome.
se possibile successivamente cancellare il dato copiato, in modo "automatico" in tutta la lista molto lunga
Questo non si può fare con le formule, visto che
Per cancellare fisicamente il contenuto di una cella occorre una macro
ma in ogni discussione puoi fare una sola richiesta, per quello ti ho risposto solo per la prima ed in coerenza con il titolo e la sezione dove hai pubblicato la domanda.
 
Ultima modifica:
  • Like
Reactions: rounin

alfrimpa

VBA Expert
Supermoderatore
18 Dicembre 2015
78.684
8.622
2.445
72
Napoli
Office 365
Alternativa per rispettare la struttura dei dati che ha una riga vuota tra un nominativo e l'altro.

La cella A1 deve essere vuota

Visual Basic:
Sub COMPILA4()
Dim cel As Range
For Each cel In Range("A2:a" & Cells(Rows.Count, 1).End(xlUp).Row)
    If cel.Offset(1, 0).Value <> "" And cel.Offset(-1, 0).Value = "" Then
        Cells(cel.Row, 2).Value = cel.Value
        Cells(cel.Row, 3).Value = cel.Offset(1, 0).Value
    End If
Next cel
End Sub
 

rounin

Utente junior
Original poster
28 Ottobre 2017
41
0
6
Napoli
2016
COMPILA4() Dim
lei è gentilissimo, ma non saprei come usare queste linee di comando. , io solitamente uso le formule

=SE(NON(RESTO(RIF.RIGA()-2;3));A2&"";"")
da trascinare a destra e poi in basso fino all'ultimo nome.
grazie mille, ma non va, copiando in B2 funziona, mentre trascinandolo a destra mi da sempre lo stesso risultato, nel primo caso dell'esempio " Esposito" Esposito"

[riuniti i messaggi]​
 
Ultima modifica di un moderatore:

Terio

Excel/Vba Expert
Supermoderatore
6 Gennaio 2021
28.622
6.279
2.345
55
Arce
2016, 2019, 365
copiando in B2 funziona, mentre trascinandolo a destra mi da sempre lo stesso risultato, nel primo caso dell'esempio " Esposito" Esposito"
Come puoi vedere funziona benissimo:
Trascinamento.gif


Ciao e ricorda che hai 30 minuti per integrare i messaggi, non serve pubblicarli a distanza di pochi minuti, per cui li ho riuniti.
 

Terio

Excel/Vba Expert
Supermoderatore
6 Gennaio 2021
28.622
6.279
2.345
55
Arce
2016, 2019, 365
anche dal suo Video si vede che il risultato della formula è Esposito Esposito
Hai ragione:
=SE(NON(RESTO(RIF.RIGA()-2;3));SCARTO($A2;RIF.COLONNA(A1)-1;)&"";"")
scusa per l'incomprensione.

Nell'immagine il risultato delle due formule:
image.png

a sinistra come richiesto, a destra la versione compattata,
ciao.
 

alfrimpa

VBA Expert
Supermoderatore
18 Dicembre 2015
78.684
8.622
2.445
72
Napoli
Office 365
lei è gentilissimo, ma non saprei come usare queste linee di comando. , io solitamente uso le formule
Beh nella vita c'è sempre una prima volta 🤣

Comunque la cosa è semplicissima e non ci si deve far spaventare dalle novità.

Il codice va inserito in un modulo standard nell'editor di VBA; QUI un tutorial che spiega passo passo come fare.

Dopo averlo fatto sul foglio inserisci una forma (es. un rettangolo) e cliccandoci su col tasto destro del mouse dal menù scegli Assegna macro.

Si potrebbe inserire pure un pulsante ma dovresti avere la scheda Sviluppo nella barra multifunzione ma temo, non avendo mai usato macro, tu non ce l'abbia.

Nella finestra che si apre vedrai la macro Compila4 presente la selezioni (ma essendo unica sarà comunque selezionata) e clicca sul tasto OK.

Poi la macro viene eseguita ogni volta che clicchi sulla forma.

Mi farebbe piacere se provassi.

In caso di problemi siamo qui.

lei è gentilissimo
P.S. Sui forum ci si dà del tu. Caffe_rido
 
Ultima modifica:

Enea

Utente assiduo
3 Settembre 2019
3.862
994
145
Nord Milano
Excel 2013
ciao una soluzione senza formule sfruttando MSWord...
copi e incolla speciale in word Testo non formattato
Comando trova/sostituisci
trova ^p^p sostituisci ^p§
trova ^p sostituisci ^t
trova § sostituisci ^p

seleziona tutto CTRL+A >>>copia >>>incolla in Excel
il risulatato
EspositoAntonio
Colombo
PriscoAnna
GenoveseCarlo
RossiMario
 
  • Like
Reactions: Terio and ipolito