È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Aggiungere una riga ogni due

Ultimo Aggiornamento: 23/10/2017 11:33
Post: 1
Registrato il: 18/10/2017
Città: VINOVO
Età: 42
Utente Junior
2007
OFFLINE
18/10/2017 11:50

Ciao a tutti!
Ho necessità di inserire dopo due righe una riga. Ho provato sbirciando le discussioni precedenti e sono riuscita a inserire per ogni riga una due o tre righe ma non riesco a fare al contrario.
Mi spiego meglio. Ho un foglio con molte righe compilate
marco
marco
giuseppe
giuseppe
mario
mario

Ora ho necessità di aggiungere una riga ogni due in modo che i nomi vengano distaccati. Ho provato ma nel mio codice ci deve essere un errore perchè mi mette una riga sotto marco e poi sotto marco giuseppe, poi sotto giuseppe mario etc.. E' che sono andata un po' a caso a modificare la macro perchè non le conosco e ora non so proprio cosa scrivere nel modulo.
Grazie mille [SM=x423021]
Post: 2.028
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
18/10/2017 12:08

ciao

per questo lavoro devi sempre partire dalla fine con il coclo For

ammettiamo i tuoi dati in colonna A:A


Sub inserisci()
Dim i As Long
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 1) <> Cells(i - 1, 1) Then
Cells(i, 1).EntireRow.Insert
End If
Next i
End Sub



Ciao da locate
excel 2007 / 13
Post: 1
Registrato il: 18/10/2017
Città: VINOVO
Età: 42
Utente Junior
2007
OFFLINE
18/10/2017 12:32

In questo modo mi ha inserito una riga solo sotto marco marco. Dove ho sbagliato?
Post: 2.029
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
18/10/2017 12:41

ciao

la macro o la sub lavora con i dati che tu ai esposto in partenza

prima
------------
marco
marco
giuseppe
giuseppe
mario
mario

dopo la sub
-----------
marco
marco

giuseppe
giuseppe

mario
mario

come vedi questa a insirito due righe di divisorio
ora deduco che i tuoi dati non sono conformi da come li ai esposti allinizio quindi allega un file tuo con dati fittizi per capire la struttura del tuo foglio e adequare la macro o la sub() al tuo proplema

Ciao da locate
excel 2007 / 13
Post: 2
Registrato il: 18/10/2017
Città: VINOVO
Età: 42
Utente Junior
2007
OFFLINE
18/10/2017 13:51

Post: 2.030
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
18/10/2017 14:44

ciao

la sub sul mio excel funziona
ho inserito un controllo per non fare il lavoro di inserimento doppio


Sub inserisci()
Dim i As Long
For i = Cells(Rows.Count, 1).End(xlUp).Row To 6 Step -1
If Cells(i, 1) <> Cells(i - 1, 1) Then
If Cells(i, 1) <> "" And Cells(i - 1, 1) <> "" Then '' controllo per riga gia' inserita
Cells(i, 1).EntireRow.Insert
End If
End If
Next i
End Sub



riallego il tuo file con sub() inserita
Ciao da locate
excel 2007 / 13
Post: 3
Registrato il: 18/10/2017
Città: VINOVO
Età: 42
Utente Junior
2007
OFFLINE
18/10/2017 16:18

Grazie.. sei gentilissimo ma a me continua a non funzionare, mi inserisce solo una riga dopo le prime due e basta. Però sono riuscita a risolverla con questa

Sub Ins_Righe()
Dim uriga, n, x
uriga = Cells(Rows.Count, "A").End(xlUp).Row
n = 1
For x = uriga To 2 Step -2
Rows(x + 1 & ":" & x + n).Insert
Next x
End Sub

Non ho idea di come abbia fatto e di cosa ho scritto perchè non ho mai visto Visual Basic in vita mia prima di stamattina! [SM=x423037] Ci sono arrivata confrontando un po' di discussioni e facendo delle prove.. poi magari ho scritto una cavolata ma mi funziona.. e non so perchè!!!!

Grazie mille!!!!!
Post: 1.636
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
22/10/2017 11:43

Ciao Manu
è pur vero che la "tua" macro funziona (anche se ti sposta l'elenco originale in basso di una riga), ma solo se la esegui una volta, e solo se i nominativi sono in coppia, se per esempio hai:
...
...
MARCO
ANTONIO
...
...
la tua sub li lascia uniti.

Inoltre se (magari per errore) la esegui 2 o più volte, succede un patatrac.

La routine proposta da locate (ciao) invece funziona molto correttamente ed evita i suddetti errori.

Ti suggerisco di usare quest'ultima; se hai problemi sottoponi il tuo file perchè è evidente che c'è qualcosa di diverso da quanto dici nella tua struttura.

Saluti


[Modificato da dodo47 22/10/2017 11:45]
Domenico
Win 10 - Excel 2016
Post: 4
Registrato il: 18/10/2017
Città: VINOVO
Età: 42
Utente Junior
2007
OFFLINE
23/10/2017 09:24

Ragazzi vi ringrazio per la disponibilità.
Con calma ho riprovato quella di locate. Mi mette una riga ogni due ma mi lascia uniti 4 nomi uguali. Es:

marco
marco
antonio
antonio
enrico
enrico
enrico
enrico

mi diventa
marco
marco

antonio
antonio

enrico
enrico
enrico
enrico

Non mi divide "enrico".

Vi allego il file su cui ho fatto la prova. Spero di non disturbarvi troppo, purtroppo per me è arabo.
Post: 2.031
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
23/10/2017 10:03

ciao

piccola modifica per questi casi

prima della sub()

marco
marco
antonio
antonio
pippo
pluto
paperino
enrico
enrico
enrico
enrico
pippo

la sub() o macro

Sub inserisci()
Dim i As Long
Dim Nrig As Long
Nrig = 1
For i = Cells(Rows.Count, 1).End(xlUp).Row To 6 Step -1
If Nrig = 2 Then
If Cells(i - 1, 1) = "" Then
Nrig = 1
Else
Cells(i, 1).EntireRow.Insert
Nrig = 1
End If
Else
If Cells(i, 1) <> Cells(i - 1, 1) Then
If Cells(i, 1) <> "" And Cells(i - 1, 1) <> "" Then '' controllo per riga gia' inserita
Cells(i, 1).EntireRow.Insert
End If
Else
Nrig = Nrig + 1
End If
End If
Next i
End Sub



dopo la sub eseguita per tre volte il risultato e' questo

marco
marco

antonio
antonio

pippo

pluto

paperino

enrico
enrico

enrico
enrico

pippo


Ciao da locate
excel 2007 / 13
Post: 5
Registrato il: 18/10/2017
Città: VINOVO
Età: 42
Utente Junior
2007
OFFLINE
23/10/2017 11:33

Grazie.. siete dei grandi!!!!
[SM=x423047]
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 20:25. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com