Ad esempio , adesso ho un foglio di excel con le seguenti righe :
10
10
10
12
12
12
12
14
15
15
15
Deve diventare :
10
10
10
12
12
12
12
14
15
15
15
Grazie e ciao
Premessa: selezioni le celle della sola colonna A coi dati, poi lanci
la seguente macro VBA, da inserire in un modulo standard:
'------------------------
Option Explicit
Public Sub InsRiga()
Dim rng As Range
Dim cella As Range
Dim j As Long
Set rng = Selection
For j = rng.Rows.Count To 2 Step -1
Set cella = rng.Cells(j, 1)
With cella
If .Value <> .Offset(-1).Value Then
.EntireRow.Insert
End If
End With
Next j
Set rng = Nothing
Set cella = Nothing
End Sub
'------------------------
Fai sapere se hai risolto, grazie.
Bye!
Scossa
Questa macro, da copia incollare in un
modulo standard, fa quanto chiedi sulla colonna A
del Foglio1.
Public Sub m()
'dichiaro le variabili
Dim wk As Workbook
Dim sh As Worksheet
Dim lng As Long
'metto un riferimento al workbook
'che contiene il codice
Set wk = ThisWorkbook
'metto un riferimento al Foglio1
With wk
Set sh = .Worksheets("Foglio1")
End With
With sh
'ciclo le celle interessate partendo dallultima
For lng = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
'se il contenuto della cella superiore � diverso
If .Cells(lng, 1).Value <> .Cells(lng - 1, 1).Value Then
'inserisco una riga
.Cells(lng, 1).Insert Shift:=xlDown
End If
Next
End With
'Set a Nothing delle variabili oggetto
Set sh = Nothing
Set wk = Nothing
End Sub
Modifica Foglio1 con il nome del tuo foglio
e A con la lettera di riferimento alla colonna
dove hai i tuoi valori.
Grazie per l'attenzione.
--
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/
http://social.answers.microsoft.com/Forums/it-IT/officeexcelit/threads
__________ Informazioni da ESET NOD32 Antivirus, versione del database delle firme digitali 5081 (20100503) __________
Il messaggio � stato controllato da ESET NOD32 Antivirus.
PS : la riga
.Cells(lng, 1).Insert Shift:=xlDown
inserisce una riga vuota , se io volessi invece inserire ( cio� copiare )
una certa riga o cella con dentro un certo valore , come cambierebbe
l'istruzione ?
Grazie e ciao
Grazie per il riscontro.
Vediamo di chiarire una cosa, per�.
La mia routine aggiunge una cella
vuota. Per aggiungere un'intera riga,
sostituisci:
.Cells(lng, 1).Insert Shift:=xlDown
con
.Cells(lng, 1).EntireRow.Insert Shift:=xlDown
> se io volessi invece inserire ( cio� copiare ) una certa riga o cella con
> dentro un certo valore , come cambierebbe l'istruzione ?
>
Inserire e copiare una riga sono due cose ben diverse.
Esattamente cosa devi fare?
Grazie.
--
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/
http://social.answers.microsoft.com/Forums/it-IT/officeexcelit/threads
__________ Informazioni da ESET NOD32 Antivirus, versione del database delle firme digitali 5082 (20100503) __________
mi serviva appunto inserire una riga ( che contiene valori nelle prine 5
celle ) che si trova nel Foglio2 ( � la prima riga del foglio2)
Grazie ciao
Scusa ma non capisco.
Se(se) nelle righe che andiamo ad inserire
in Foglio1, vuoi copiare quanto contenuto
in A1:E1 del Foglio2:
Public Sub m()
'dichiaro le variabili
Dim wk As Workbook
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim lng As Long
'metto un riferimento al workbook
'che contiene il codice
Set wk = ThisWorkbook
'metto un riferimento al Foglio1
With wk
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'ciclo le celle interessate partendo dallultima
For lng = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
'se il contenuto della cella superiore � diverso
If .Cells(lng, 1).Value <> .Cells(lng - 1, 1).Value Then
'inserisco una riga
.Cells(lng, 1).EntireRow.Insert Shift:=xlDown
'copio da A1:E1 del Foglio2 e incollo
'nella riga creata partendo dalla colonna A
sh2.Range("A1:E1").Copy Destination:=.Cells(lng, 1)
End If
Next
End With
'Set a Nothing delle variabili oggetto
Set sh1 = Nothing
Set sh2 = Nothing
Set wk = Nothing
End Sub
Se non � questo che vuoi, per favore
spiega meglio. Grazie
va benissimo grazie
Bene.
Grazie per il riscontro e buon lavoro.
--
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/
http://social.answers.microsoft.com/Forums/it-IT/officeexcelit/threads
__________ Informazioni da ESET NOD32 Antivirus, versione del database delle firme digitali 5083 (20100503) __________