Condividi:        

pulisci tutte le righe tranne l'ultima etc

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

pulisci tutte le righe tranne l'ultima etc

Postdi luca62 » 18/01/15 09:25

CORREZIONE MACRO (funzionante perchè fatta da Anthony....e da me personalizzata un po)

data la macro sottostante che funziona bene, ho alcuni aggiustamenti da fare che non riesco a fare…:


Codice: Seleziona tutto
  Sub Compila()
    Application.ScreenUpdating = False  '<<<< evita l'aggiornamento schermate (sfarfallio)
    Application.Calculation = xlManual '<<<< ferma il calcolo e velocizza la macro

    Set Ws1 = Worksheets("RIEPILOGO ORDINI")
    Set Ws2 = Worksheets("INCOLONNA")
    Set Ws3 = Worksheets("PARTICOLARI")
    Set Ws4 = Worksheets("COMMERCIALI")
    UC1 = Ws1.Cells(1, Columns.Count).End(xlToLeft).Column
    Ws2.Cells.Clear
    Ws3.Cells.Clear
    Ws4.Cells.Clear
    For CCR = 1 To UC1 - 4 Step 11
    UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
    Ws1.Range(Ws1.Cells(2, CCR), Ws1.Cells(UR1, CCR + 10)).Copy
    Ws2.Select
    UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row + 1
    Range("A" & UR2).Select
        ActiveSheet.Paste
    Next CCR
    UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row
    For RR2 = UR2 To 1 Step -1
    If Ws2.Range("C" & RR2).Value = 0 Or Ws2.Range("B" & RR2).Value = "Ins." Or Ws2.Range("C" & RR2).Value = "" Then Rows(RR2).Delete
    If RR2 > 5 And Ws2.Range("B" & RR2).Value = "POS" Then Rows(RR2).Delete
    Next RR2
    UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row
    For RR2 = 1 To UR2
    If Val(Ws2.Range("E" & RR2)) >= 1 And Val(Ws2.Range("E" & RR2)) <= 299999 Then
    Ws2.Range("A" & RR2 & ":K" & RR2).Copy Destination:=Ws3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
    Else
   
    Ws2.Range("A" & RR2 & ":K" & RR2).Copy Destination:=Ws4.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
   
    End If
    Next RR2
    Ws2.Range("A1:K1").Copy Destination:=Ws3.Range("A1")
    Ws2.Range("A1:K1").Copy Destination:=Ws4.Range("A1")

    Application.Calculation = xlCalculationAutomatic  '<<<< ripristina il calcolo
    Application.ScreenUpdating = True   '<<<< ripristina l'aggiornamento schermate
    End Sub


premetto che questa macro miracolosa... mi permette di andare a copiare tutta una serie di valori da dai file esterni chiusi
e di utilizzarli mettendoli in colonna in base ad alcune mie necessità.


1) necessito di trasformare il
Ws2.Cells.Clear
Ws3.Cells.Clear
Ws4.Cells.Clear
in un istruzione che mi pulisca tute le righe tranne la prima che mi necessita come titolo fisso e conseguentemente dovrò andare a scrivere sul Ws2,Ws3,Ws4 a aprtire dall 2^ riga e non dalla 1^ come adesso

2) come faccio a dire di evidenziare i bordi delle celle dei vari Ws2,Ws3,Ws4 in modo che siano "tutti i bordi" di tutte le colonne da A:K per le sole righe compilate e non altre?

Anthony mi aveva già risposto ad un problema similare ma…mi sto annodando

grazie per l'aiuto!
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Sponsor
 

Re: pulisci tutte le righe tranne l'ultima etc

Postdi Anthony47 » 18/01/15 13:06

Non ricordo dove ho suggerito quella macro, mi puoi dare un link?
La macro apparentemente gia' contiene qualcosa che doveva servire a ripristinare le intestazioni non copiate:
Ws2.Range("A1:K1").Copy Destination:=Ws3.Range("A1")
Ws2.Range("A1:K1").Copy Destination:=Ws4.Range("A1")

Vorrei continuare a usare questo metodo, se possibile.

Quanto ai bordi, la cosa piu' semplice e' che registri una macro mentre:
-selezioni l'area A1:B10
-applichi i bordi alle celle dell' area
Poi nel codice ottenuto elimini la riga
Range("A1:B10").Select
Sostituisci tutte le occorrenze di "Selection" con
Codice: Seleziona tutto
Ws2.Range("A1").Resize(UR2,11)

Ripeti il codice con
Codice: Seleziona tutto
Ws3.Range("A1").Resize(UR2,11)

E con
Codice: Seleziona tutto
Ws4.Range("A1").Resize(UR2,11)


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: pulisci tutte le righe tranne l'ultima etc

Postdi luca62 » 18/01/15 19:10

anthony ,il post originale era questo:

INCOLONNARE DEI DATI DI ALTRE COLONNE
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: pulisci tutte le righe tranne l'ultima etc

Postdi luca62 » 18/01/15 19:36

in effetti ,sto usando questa macro per un altro diverso utilizzo rispetto a quello per il quale l'avevi creata, e che andava a meraviglia,
in pratica la 1^ fase (sul foglio riepilogo ordini) è uguale a prima e va bene.
QUesto foglio riepilogo ordini ha la prima riga fatta di intestazioni .
da questo foglio riepilogo ordini, fatto di 11 x 30 colonne (dove 11 sta ad indicare lo step) voglio mettere in colonna
nel foglio" in colonna " in modo che vada a prendere i dati dal foglio riepilogo ordini partendo dalla 2^ riga (ossia non copiando le intestazioni) ,ossia se ho ben capito faecndo così : Ws1.Range(Ws1.Cells(2, CCR), Ws1.Cells(UR1, CCR + 10)).Copy
e mettendole nel foglio "IN COLONNA" a partire dalla seconda riga e così via.
In questo modo vado a copiare i dati dalla riga B in poi, contemporaneamente, però quando vado a pulire il foglio,
devo pulire tutte le righe tranne la prima.

spero di essermi fatto capire
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: pulisci tutte le righe tranne l'ultima etc

Postdi luca62 » 18/01/15 22:58

Anthony quasi tutto risolto, mi manca solo questo:
come faccio a cancellare tutte le righe che soddisfano a questa condizione:
che se nella colonna E il valore è =0 o se è >299999 e nella stessa riga nella colonna D
il testo contiene le parole Vite o dado o rondella o grano sono da cancellare?
ho provato (considerando di eliminare le righe contenenti ad esempio la parola vite )

If Ws2.Range("E" & RR2).Value = 0 Or Ws2.Range("E" & RR2).Value >299999 And Ws2.Range("E" & RR2).Value = "Vite*" Then Rows(RR2).Delete
ma non funziona, cosa sbaglio? ps le celle possono avere " Vite M8" ,"Vite a testa sferica" e tutte vanno eliminate

Grazie!!
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: pulisci tutte le righe tranne l'ultima etc

Postdi ricky53 » 19/01/15 01:15

Ciao,
prova con
Codice: Seleziona tutto
If (WS2.Range("E" & RR2).Value = 0 Or WS2.Range("E" & RR2).Value > 299999) And WS2.Range("D" & RR2).Value Like "Vite*" Then


Se vuoi cercare "vite" anche all'interno della cella allora devi utilizzare "*Vite*" al posto di "Vite*"

per la ricerca nche degli altri dati si deve utilizzare l'operatore "Or", per esempio
Codice: Seleziona tutto
WS2.Range("D" & RR2).Value Like "Vite*" Or WS2.Range("D" & RR2).Value Like "Dado*" Or ...


Attenzione:
1. tu hai utilizzato la colonna "E" anche per la ricerca di "vite" invece va utilizzata la "D"

2. mancano le parentesi nell' "Or" sui valori delle colonna "E" =0 e > 299999

3. per gestire la ricerca anche su "vite", "VITE", ossia i caratteri maiuscoli e i minuscoli utilizza il parametro
Codice: Seleziona tutto
Option Compare Text
da inserire prima della tua macro
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: pulisci tutte le righe tranne l'ultima etc

Postdi Flash30005 » 19/01/15 02:46

Non ho seguito l'intera discussione ma credo di aver capito solo che Luca62 non voglia eliminare la prima riga dei vari fogli quando cancella
quindi proverei a modificare queste 3 righe della sua macro iniziale
Codice: Seleziona tutto
Ws2.Cells.Clear
Ws3.Cells.Clear
Ws4.Cells.Clear

Con
Codice: Seleziona tutto
   
Ws2.Range("A2:K299999").Clear
Ws3.Range("A2:K299999").Clear   
Ws4.Range("A2:K299999").Clear


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: pulisci tutte le righe tranne l'ultima etc

Postdi luca62 » 19/01/15 14:03

grazie Flash,

tutto ok, tranne che
Option Compare Text mi dice che non lo posso usare e allora ho ovviato scrivendo più righe.....
mi rimane da risolvere il problema di mettere i bordi solo sulle righe-colonne che contengono dati
e non sulle altre..Anthony ha provato a aiutarmi ...ma so....di coccio un c'ho capito.....
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: pulisci tutte le righe tranne l'ultima etc

Postdi Flash30005 » 19/01/15 14:25

luca62 ha scritto: Option Compare Text mi dice che non lo posso usare e allora ho ovviato scrivendo più righe.....
...


:?:
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: pulisci tutte le righe tranne l'ultima etc

Postdi Anthony47 » 19/01/15 14:36

Dove scrivi "Option Compare Text"?

Anthony ha provato a aiutarmi ...ma so....di coccio un c'ho capito.....
Parti ad applicare la prima parte del suggerimento:
Quanto ai bordi, la cosa piu' semplice e' che registri una macro mentre:
-selezioni l'area A1:B10
-applichi i bordi alle celle dell' area
-Aggiungo: fermi la registrazione della macro
A questo punto pubblica il codice ottenuto e ti diremo come applicare la seconda parte.

Se ti puo' interessare, potresti ottenere una piccola velocizzazione sostituendo tutto il ciclo For CCR = 1 To UC1 - 4 Step 11 /Next CCR con
Codice: Seleziona tutto
UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
For CCR = 1 To UC1 - 4 Step 11
    Ws1.Range(Ws1.Cells(2, CCR), Ws1.Cells(UR1, CCR + 10)).Copy _
        Destination:=Ws2.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
Next CCR
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: pulisci tutte le righe tranne l'ultima etc

Postdi ricky53 » 19/01/15 15:14

Ciao,
leggi gli interventi prima del mio.


L'istruzione
"Option Compare Text"
che ti avevo suggerito va inserita fuori della tua macro ... lo avevo scritto.

Esattamente prima di tutte le macro presenti nel "Modulo" o nel "Foglio"
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: pulisci tutte le righe tranne l'ultima etc

Postdi luca62 » 19/01/15 15:28

ecco la macro come da esempio
Codice: Seleziona tutto
Sub bordispecial()
'
' bordispecial Macro
' bordi per righe e colonne con valori
'

'
    Range("A1:B10").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
End Sub
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: pulisci tutte le righe tranne l'ultima etc

Postdi luca62 » 21/01/15 19:55

Anthony

io..non riesco a trasformare l'intervallo :
Range("A1:B10").Select in intervallo dato dalle colonne da A a L per tutte le righe in cui ci sia almeno un vaòlore diverso da zewro

!!!! HELP!!!
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: pulisci tutte le righe tranne l'ultima etc

Postdi Anthony47 » 22/01/15 01:00

In effetti questa questione era rimasta nel dimenticatoio...
Modifica la parte iniziale come segue:
Codice: Seleziona tutto
'
'    Range("A1:B10").Select
    Ws2.Select
    last = Evaluate("=MAX((A1:L10000<>"""")*(ROW(A1:A10000)))")
    Range("A1").Resize(last, 12).Borders(xlDiagonalDown).LineStyle = xlNone
'etc etc

Da qui in poi sostituisci ogni "Select." con "Range("A1").Resize(last, 12)." (senza gli apici)
In coda, prima di End Sub, ripeti il codice pero' partendo da Ws3.Select, e poi ancora con Ws4.Select.

Il codice pero' va inserito in coda alla macro Compila, in quanto usa le definizioni Ws2, Ws3 e Ws4 lì fatte.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: pulisci tutte le righe tranne l'ultima etc

Postdi luca62 » 22/01/15 07:29

Anthony...questa proprio non mi va giu...

a parte il fatto che voglio metterla come macro separata ma che richiamo infondo a Compila
con
CALL bordispecial

in modo da poterla più facilmente sfruttare in altre occasioni,modificandiola un po,
comunque mi si blocca!
Ho sostitutito l'intervallo
Range("A1:B10").Select
Ws2.Select con

Range("A1").Resize(last, 12).Select
Ws2.Select

ma si blocca proprio sul
Range("A1").Resize(last, 12).Select

anche mi sembra di aver..copiato bene!

Codice: Seleziona tutto
    Sub bordispecial()
    '
    ' bordispecial Macro
    ' bordi per righe e colonne con valori
    '

    '
        Range("A1").Resize(last, 12).Select
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
    End Sub
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: pulisci tutte le righe tranne l'ultima etc

Postdi Anthony47 » 22/01/15 20:21

E' che ti sei dimenticato la riga Last = Evaluate("=MAX((A1:L10000<>"""")*(ROW(A1:A10000)))")
Mettila subito in testa.

Comunque se mantieni Selection allora il foglio su cui la macro lavora e' quello "attivo", quindi devi ricordarti di inserire Sheets("MioFoglio").Select prima di Call bordispecial.

Ho sostitutito l'intervallo
Range("A1:B10").Select
Ws2.Select con

Range("A1").Resize(last, 12).Select
Ws2.Select
Se metti tutto in una macro autonoma allora Ws2.Select fallira', perche' Ws2 non e' definito. La macro, per come hai proceduto, lavorera' sul foglio attivo, e ho capito che ti sta bene cosi'; per lavorare su altri fogli dovresto sostituire tutti i "Selection" con un riferimento piu' articolato, come ti avevo detto.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: pulisci tutte le righe tranne l'ultima etc

Postdi luca62 » 22/01/15 21:57

probabilmente...pretendo troppo dalle mie conoscenze.....passo indietro....devo inserire in Compila
per fare si che la formattazione chiesta mi lavori...sui W2,W3,W4. riallego Compila:
Codice: Seleziona tutto
Sub Compila()
    Application.ScreenUpdating = False  '<<<< evita l'aggiornamento schermate (sfarfallio)
    Application.Calculation = xlManual '<<<< ferma il calcolo e velocizza la macro
   
    Set Ws1 = Worksheets("RIEPILOGO ORDINI")
    Set WS2 = Worksheets("INCOLONNA")
    Set Ws3 = Worksheets("PARTICOLARI")
    Set Ws4 = Worksheets("COMMERCIALI")
    UC1 = Ws1.Cells(1, Columns.Count).End(xlToLeft).Column
    WS2.Cells.Clear
    Ws3.Cells.Clear
    Ws4.Cells.Clear
    For CCR = 1 To UC1 - 4 Step 12
    UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
    Ws1.Range(Ws1.Cells(, CCR), Ws1.Cells(UR1, CCR + 11)).Copy
    WS2.Select
    UR2 = WS2.Range("A" & Rows.Count).End(xlUp).Row + 1
    Range("A" & UR2).Select
        ActiveSheet.Paste
    Next CCR
    UR2 = WS2.Range("A" & Rows.Count).End(xlUp).Row
    For RR2 = UR2 To 1 Step -1
    If WS2.Range("C" & RR2).Value = 0 Or WS2.Range("B" & RR2).Value = "Carpresse Ins." Or WS2.Range("C" & RR2).Value = "" Then Rows(RR2).Delete
    If RR2 > 5 And WS2.Range("B" & RR2).Value = "Carpr. Pos" Then Rows(RR2).Delete
   
    If WS2.Range("D" & RR2).Value Like "Vite*" And WS2.Range("E" & RR2).Value = 0 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "Vite*" And WS2.Range("E" & RR2).Value > 299999 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "VITE*" And WS2.Range("E" & RR2).Value = 0 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "VITE*" And WS2.Range("E" & RR2).Value > 299999 Then Rows(RR2).Delete
     If WS2.Range("D" & RR2).Value Like "ROSETTA*" And WS2.Range("E" & RR2).Value = 0 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "ROSETTA*" And WS2.Range("E" & RR2).Value > 299999 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "Rosetta*" And WS2.Range("E" & RR2).Value = 0 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "Rosetta*" And WS2.Range("E" & RR2).Value > 299999 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "GRANO*" And WS2.Range("E" & RR2).Value = 0 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "GRANO*" And WS2.Range("E" & RR2).Value > 299999 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "Grano*" And WS2.Range("E" & RR2).Value = 0 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "Grano*" And WS2.Range("E" & RR2).Value > 299999 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "RONDELLA*" And WS2.Range("E" & RR2).Value = 0 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "RONDELLA*" And WS2.Range("E" & RR2).Value > 299999 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "Rondella*" And WS2.Range("E" & RR2).Value = 0 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "Rondella*" And WS2.Range("E" & RR2).Value > 299999 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "DADO*" And WS2.Range("E" & RR2).Value = 0 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "DADO*" And WS2.Range("E" & RR2).Value > 299999 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "Dado*" And WS2.Range("E" & RR2).Value = 0 Then Rows(RR2).Delete
    If WS2.Range("D" & RR2).Value Like "Dado*" And WS2.Range("E" & RR2).Value > 299999 Then Rows(RR2).Delete
    Next RR2
    UR2 = WS2.Range("A" & Rows.Count).End(xlUp).Row
    For RR2 = 2 To UR2
    If Val(WS2.Range("E" & RR2)) >= 1 And Val(WS2.Range("E" & RR2)) <= 299999 And Val(WS2.Range("E" & RR2)) <> 999 Then
    WS2.Range("A" & RR2 & ":L" & RR2).Copy Destination:=Ws3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
    Else
   
    WS2.Range("A" & RR2 & ":L" & RR2).Copy Destination:=Ws4.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
   
    End If
    Next RR2
 
    WS2.Range("A1:L1").Copy Destination:=Ws3.Range("A1")
    WS2.Range("A1:L1").Copy Destination:=Ws4.Range("A1")

    Application.Calculation = xlCalculationAutomatic  '<<<< ripristina il calcolo
    Application.ScreenUpdating = True   '<<<< ripristina l'aggiornamento schermate
    End Sub


Domanda da dove devo iniziare ad inserire l'istruzione per mettere i bordi?

cosa devo sostituire a:

Range("A1:B10").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft) ......

al posto di Range ("A1:B10").Select......
devo mettere questo? o devo eliminare anche Range("A1:B10").Select?

Range("A1:B10").Select
Ws2.Select
last = Evaluate("=MAX((A1:L10000<>"""")*(ROW(A1:A10000)))")
Range("A1").Resize(last, 12).Borders(xlDiagonalDown).LineStyle = xlNone

Fammi sapere grazie!
'etc etc
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: pulisci tutte le righe tranne l'ultima etc

Postdi Flash30005 » 23/01/15 01:08

Mi chiedo:
non è più semplice che invii il file prima della formattazione e dopo la formattazione?
Perché secondo me, dopo aver agito sul foglio (togliendo o aggiungendo righe), è più semplice eliminare tutte le formattazioni e ricrearle con una macro.

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: pulisci tutte le righe tranne l'ultima etc

Postdi luca62 » 23/01/15 06:48

Flash,


era quello che volevo fare una macro indipendente da richiamare alla fine,sui fogli
che si chiamano INCOLONNA ,PARTICOLARI , COMMERCIALI, solo che nonostante
l'aiuto di Anthony...mi sono annodato da morire!!
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: pulisci tutte le righe tranne l'ultima etc

Postdi Anthony47 » 23/01/15 13:58

passo indietro....devo inserire in Compila
per fare si che la formattazione chiesta mi lavori...sui W2,W3,W4
Eh no! Adesso ti tieni la Bordispecial come e' (con "Last = etc etc" in testa), poi in coda a Compila inserisci:
Codice: Seleziona tutto
    Application.ScreenUpdating = True   '<<<< ripristina l'aggiornamento schermate ESISTENTE
    Sheets("INCOLONNA").Select
    Call Bordispecial
    Sheets("PARTICOLARI").Select
    Call Bordispecial
    Sheets("COMMERCIALI").Select
    Call Bordispecial
    End Sub

Domanda: ma le celle a cui applichi il bordo hanno gia' qualche altra formattazione particolare?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "pulisci tutte le righe tranne l'ultima etc":


Chi c’è in linea

Visitano il forum: Ricky0185 e 38 ospiti