Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

conservare nomi che verranno cancellati Opzioni
trittico69
Inviato: Saturday, July 26, 2014 10:47:51 AM
Rank: AiutAmico

Iscritto dal : 8/4/2013
Posts: 38
Mi servirebbe un aiuto a fare un codice.
Devo copiare dei nomi da un foglio excel 2002 denominato “stampa movimenti” i cognomi iniziano da k3 e i nomi da L3.
Questi nominativi devono essere copiati in un foglio chiamato “usciti” dello stesso file a partire da A5000 e uniti in un'unica cella non separati come nel foglio dove li copia.
Da precisare è che nel foglio “stampa movimenti” i nominativi ogni giorno vengono cancellati e riscritti e possono essere un numero sempre variabile in pratica questi nomi che vengono cancellati li devo conservare nel foglio “usciti”.
Per quando riguarda il file è terminato manca solo quest’ultimo codice che va inserito in quello sotto all’inizio dopo “sub avvia”


Codice:
Option Explicit
Public sh1 As Worksheet, sh2 As Worksheet, x As Long, y As Long, z As Long

Sub avvia()
Sheets("stampa movimenti").Select 'copia i movimenti del giorno prima per lasciarti una copia in caso servisse
Range("A3:N2489").Select
Selection.Copy
ActiveWindow.SmallScroll ToRight:=10
Range("S3").Select
ActiveSheet.Paste
Range("K1:L1").Select
Sheets("presenti").Select
Range("A2").Select ' aggiorna dati esterni del foglio presenti
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("E2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("I2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("M2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("Q2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("U2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("Y2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("AC2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("AG2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("AK2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("AO2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("AS2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("AW2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("BA2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("BE2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("BI2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("BM2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("BQ2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("BU2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("BY2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("CC2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("CG2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("CK2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("CO2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("CS2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("Cw2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("da2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("de2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("di2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("dm2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("dq2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("du2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("dy2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False

'Sheets("usciti").Select ' aggiorna il foglio usciti
' Range("a2").Select
' Selection.QueryTable.Refresh BackgroundQuery:=False
' Range("f2").Select
' Selection.QueryTable.Refresh BackgroundQuery:=False


Sheets("I").Select ' seleziona A5-B5-C5 di tutte le sezioni e trascina giu per eliminare errori
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
Range("A5:C92").Select
Sheets("II").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
Range("A5:C92").Select
Sheets("III").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
Range("A5:C92").Select
Sheets("IV").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
Range("A5:C92").Select
Sheets("V").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
Range("A5:C92").Select
Sheets("VI").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
Range("A5:C92").Select
Sheets("VII").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
Range("A5:C92").Select
Sheets("VIII").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
Range("A5:C92").Select
Sheets("IX").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C89"), Type:=xlFillDefault
Range("A5:C89").Select
Sheets("X").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C90"), Type:=xlFillDefault
Range("A5:C90").Select
Sheets("XI").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C89"), Type:=xlFillDefault
Range("A5:C89").Select
Sheets("XII").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C89"), Type:=xlFillDefault
Range("A5:C89").Select
Sheets("XIII").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C89"), Type:=xlFillDefault
Range("A5:C89").Select

Sheets("C.CL.").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C50"), Type:=xlFillDefault
Range("A5:C50").Select
Range("A51:C51").Select
Selection.AutoFill Destination:=Range("A51:C70"), Type:=xlFillDefault
Range("A51:C70").Select
Range("A71:C71").Select
Selection.AutoFill Destination:=Range("A71:C120"), Type:=xlFillDefault
Range("A71:C120").Select
Range("A121:C121").Select
Selection.AutoFill Destination:=Range("A121:C140"), Type:=xlFillDefault
Range("A121:C140").Select
Range("A141:C141").Select
Selection.AutoFill Destination:=Range("A141:C150"), Type:=xlFillDefault
Range("A141:C150").Select
Range("A151:C151").Select
Selection.AutoFill Destination:=Range("A151:C170"), Type:=xlFillDefault
Range("A151:C170").Select
Range("A171:C171").Select
Selection.AutoFill Destination:=Range("A171:C210"), Type:=xlFillDefault
Range("A171:C210").Select
Range("A211:C211").Select
Selection.AutoFill Destination:=Range("A211:C240"), Type:=xlFillDefault
Range("A211:C240").Select
Range("A345:C345").Select
Selection.AutoFill Destination:=Range("A345:C466"), Type:=xlFillDefault
Range("A345:C466").Select
Range("A347:C347").Select
Selection.AutoFill Destination:=Range("A347:C497"), Type:=xlFillDefault
Range("A347:C497").Select
Range("A498:C498").Select
Selection.AutoFill Destination:=Range("A498:C599"), Type:=xlFillDefault
Range("A498:C599").Select
Range("A600:C600").Select
Selection.AutoFill Destination:=Range("A600:C699"), Type:=xlFillDefault
Range("A600:C699").Select
Range("A700:C700").Select
Selection.AutoFill Destination:=Range("A700:C739"), Type:=xlFillDefault
Range("A700:C739").Select
Range("A740:C740").Select
Selection.AutoFill Destination:=Range("A740:C769"), Type:=xlFillDefault
Range("A740:C769").Select
Range("A770:C770").Select
Selection.AutoFill Destination:=Range("A770:C800"), Type:=xlFillDefault
Range("A770:C800").Select
Range("a801:C801").Select
Selection.AutoFill Destination:=Range("A801:C810"), Type:=xlFillDefault
Range("A801:C810").Select
Range("a811:C811").Select
Selection.AutoFill Destination:=Range("A811:C830"), Type:=xlFillDefault
Range("A811:C830").Select
Range("a831:C831").Select
Selection.AutoFill Destination:=Range("A831:C850"), Type:=xlFillDefault
Range("A831:C850").Select

Sheets("Transex").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C32"), Type:=xlFillDefault
Range("A5:C32").Select
Sheets("TR1").Select
Range("A5:C5").Select
Selection.AutoFill Destination:=Range("A5:C61"), Type:=xlFillDefault
Range("A5:C61").Select
Sheets("TR2").Select
Range("A5:D5").Select
Selection.AutoFill Destination:=Range("A5:D34"), Type:=xlFillDefault
Range("A5:D34").Select



Dim r As Long 'controlla i cambiamenti tra foglio"archivio" e tutti i fogli delle sezioni
Dim rr As Long
Dim G As Long
Dim K As Long
Dim l As Variant
Dim n As String
Dim p As Variant
Dim nn As Variant
Dim rg As Long
Dim trovato As Boolean
Dim dat(1 To 3)
Set sh1 = Worksheets("Archivio")
sh1.Activate
Application.EnableEvents = False
rg = Cells(Rows.Count, 15).End(xlUp).Row + 1
Range(Cells(3, 5), Cells(rg, 6)).ClearContents
Range(Cells(3, 15), Cells(rg, 15)).ClearContents
G = Cells(Rows.Count, 7).End(xlUp).Row + 1
Range(Cells(3, 7), Cells(G, 10)).ClearContents
K = Cells(Rows.Count, 11).End(xlUp).Row + 1
Range(Cells(3, 11), Cells(K, 14)).ClearContents
'Application.ScreenUpdating = False''non fa vedere i passaggi dei controlli sezione per sezione se togli le virgolette lo attivi'
G = 3
K = 3
For x = 1 To 18
Sheets(x).Select
rg = Cells(Rows.Count, 1).End(xlUp).Row
n = Sheets(x).Name
Set sh2 = Worksheets(n)
Select Case n
Case "I": p = 1 'assegna alla sezione il numero normale anzichè il numero romano'
Case "II": p = 2
Case "III": p = 3
Case "IV": p = 4
Case "V": p = 5
Case "VI": p = 6
Case "VII": p = 7
Case "VIII": p = 8
Case "IX": p = 9
Case "X": p = 10
Case "XI": p = 11
Case "XII": p = 12
Case "XIII": p = 13
Case "Transex": p = "D"
Case "TR1": p = "TR1"
Case "TR2": p = "TR2"
Case "FEMMINILE": p = "F"
End Select
For y = 5 To rg
If Cells(y, 2) = "" Or Cells(y, 2) = 0 Then
GoTo 10
Else
If Cells(y, 1) <> "" Then
If n = "C.CL." Then 'nel foglio centro clinico...'
Select Case y
Case 5 To 50: p = "DEG." 'le celle da 5 a 50 è reparto DEG'
Case 51 To 70: p = "OSS."
Case 71 To 120: p = "EXD."
Case 121 To 140: p = "I.S."
Case 141 To 150: p = "M"
Case 151 To 170: p = "FXG"
Case 171 To 210: p = "PER"
Case 211 To 240: p = "R.O."
Case 241 To 290: p = "nota"
Case 291 To 344: p = "ITO"
Case 345 To 497: p = "?"
Case 498 To 599: p = "GIU"
Case 600 To 699: p = "PEN"
Case 700 To 739: p = "CCC"
Case 740 To 769: p = "K"
Case 770 To 800: p = "NIDO"
Case 801 To 810: p = "FXGF"
Case 811 To 830: p = "PF"
Case 831 To 850: p = "ROF"
End Select
End If
If IsNumeric(Cells(y, 1)) Then l = Val(Cells(y, 1)) Else l = Cells(y, 1)
End If
dat(1) = l
dat(2) = Cells(y, 2)
dat(3) = Cells(y, 3)
End If
rr = sh1.Cells(Rows.Count, 1).End(xlUp).Row
For z = 2 To rr
If sh1.Cells(z, 1) = dat(2) And sh1.Cells(z, 2) = dat(3) Then trovato = True: r = z: Exit For
Next z
If trovato = True Then
If sh1.Cells(r, 3) = p And sh1.Cells(r, 4) = dat(1) Then
sh1.Cells(r, 15) = 1
Else
sh1.Cells(r, 5) = p
sh1.Cells(r, 6) = dat(1)
sh1.Cells(r, 15) = 1
End If
End If
If trovato = False Then
r = rr + 1
sh1.Cells(r, 1) = dat(2)
sh1.Cells(r, 2) = dat(3)
sh1.Cells(r, 3) = p
sh1.Cells(r, 4) = dat(1)
sh1.Cells(G, 7) = dat(2)
sh1.Cells(G, 8) = dat(3)
sh1.Cells(G, 9) = p
sh1.Cells(G, 10) = dat(1)
sh1.Cells(r, 15) = 0
G = G + 1
End If
trovato = False
10:
Next y
Next x
sh1.Activate
r = Cells(Rows.Count, 15).End(xlUp).Row
For x = 3 To r
If x = r Then Exit For
If Cells(x, 15) = "" Then
Cells(K, 11) = Cells(x, 1)
Cells(K, 12) = Cells(x, 2)
Cells(K, 13) = Cells(x, 3)
Cells(K, 14) = Cells(x, 4)
Range(Cells(x, 1), Cells(x, 6)).Select
Selection.Delete Shift:=xlUp
Cells(x, 15).Select
Selection.Delete Shift:=xlUp
x = x - 1
r = r - 1
K = K + 1
End If
Next x
Range("A2:F2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Sort Key1:=Range("E3"), Order1:=xlAscending, Key2:=Range("A3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal
r = Cells(Rows.Count, 5).End(xlUp).Row
Range("A2:F" & r).Select ' ordia alfabetico i movimenti'
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("G2:J2").Select 'ordina alfabetico gli entrati'
Range(Selection, Selection.End(xlDown)).Select
Selection.Sort Key1:=Range("G3"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("k2:N2").Select 'ordina alfabetico gli usciti'
Range(Selection, Selection.End(xlDown)).Select
Selection.Sort Key1:=Range("K3"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A3").Select
Application.EnableEvents = True
Application.ScreenUpdating = True
Sheets("archivio").Select



Application.DisplayAlerts = False ' copia i nominativi dal foglio archivio al fogli stampa i moviment
Sheets("archivio").Select
Range("A1:r400").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("stampa movimenti").Select
Range("A1:B1").Select
ActiveSheet.Paste
Application.DisplayAlerts = True
Range("A1:R972").Select
Application.CutCopyMode = False
Selection.Interior.ColorIndex = xlNone


'Sub sta1()
Dim rt As Long
Dim r1 As Long
Dim st As String
Dim cp As Long
Dim d As Long
Dim ind As Variant
Dim rrt As Long
Dim rrtt As Long
Dim rrttt As Long
Dim rrrt As Long
'ELIMINA GLI ENTRATI E GLI USCITI CHE VENGONO RINOMINATI PERCHE' IL NOME SBAGLIATO E FINISCE A FINE 7
Dim Gt As Range, KK As Range, cl3 As Object, cl4 As Object, _
xx As Long, yy As Long, zt As Long, xt As Long, _
yt As Long, zz As Long, xtt As Long, xttt As Long, xXtt As Long
Set Gt = Range("G3:G1500")
Set KK = Range("K3:K1500")
'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
'AMMETTENDO CHE LA RIGA 1 è OCCUPATA DALLE INTESTAZIONI DI COLONNA
'EFFETTUO UN CICLO PER TROVARE LA PRIMA CELLA OCCUPATA DELLA COLONNA G;
'IN OGNI CASO PUOI MODIFICARE IL RANGE G e K EDITANDO LE VARIABILI SOPRA (Set)
For Each cl3 In Gt
If cl3 = "" Then
cl3.Select
xt = Selection.Row
Exit For
'If cl3 <> "" Then
Else
cl3.Select
xt = Selection.Row
'xt è IL NUMERO RIGA DELLA PRIMA CELLA OCCUPATA DELLA COLONNA G
Exit For
End If
Next
If cl3 = "" Then
yt = Cells(1500, 7).End(xlUp).Row + 1
Else
yt = Cells(1500, 7).End(xlUp).Row
End If
'yt è IL NUMERO RIGA DELL'ULTIMA CELLA OCCUPATA DELLA COLONNA G
'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
'EFFETTUO UN CICLO PER TROVARE LA PRIMA CELLA OCCUPATA DELLA COLONNA K
For Each cl4 In KK
If cl4 = "" Then
cl4.Select
xx = Selection.Row
Exit For
'If cl4 <> "" Then
Else
cl4.Select
xx = Selection.Row
'xx è IL NUMERO RIGA DELLA PRIMA CELLA OCCUPATA DELLA COLONNA K
Exit For
End If
Next
If cl4 = "" Then
yy = Cells(1500, 11).End(xlUp).Row + 1
Else
yy = Cells(1500, 11).End(xlUp).Row
End If
'yy è IL NUMERO RIGA DELL'ULTIMA CELLA OCCUPATA DELLA COLONNA K
'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
'DOPPIO CICLO FOR/NEXT PER CONTROLLARE OGNI RIGA OCCUPATA DELLE
'COLONNE G-H-I-J CON OGNI RIGA OCCUPATA DELLE COLONNE K-L-M-N
For zt = xt To yt
For zz = xx To yy
If Cells(zt, 9) = Cells(zz, 13) And Cells(zt, 10) = Cells(zz, 14) _
And (Cells(zt, 7) = Cells(zz, 11) Or Cells(zt, 8) = Cells(zz, 12)) Then
Range(Cells(zt, 7), Cells(zt, 10)).ClearContents
Range(Cells(zz, 11), Cells(zz, 14)).ClearContents
End If
Next zz
Next zt
'FINE 7


Dim cl, cl2, rng, RNG2, NOME, COGNOME ' CANCELLA I CAMBIAMENTI DI CELLA DEL CCL TR1 TR2 F D IL CODICE FINISCE DOV'è SCRITTO FINE2
rt = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Dim Condizioni As New Collection
Condizioni.Add "F|F"
Condizioni.Add "K|K"
Condizioni.Add "K|NIDO"
Condizioni.Add "K|PEN"
Condizioni.Add "K|GIU"
Condizioni.Add "K|CCC"
Condizioni.Add "NIDO|NIDO"
Condizioni.Add "NIDO|PEN"
Condizioni.Add "NIDO|GIU"
Condizioni.Add "NIDO|K"
Condizioni.Add "NIDO|CCC"
Condizioni.Add "PEN|PEN"
Condizioni.Add "PEN|K"
Condizioni.Add "PEN|NIDO"
Condizioni.Add "PEN|GIU"
Condizioni.Add "PEN|CCC"
Condizioni.Add "GIU|GIU"
Condizioni.Add "GIU|K"
Condizioni.Add "GIU|NIDO"
Condizioni.Add "GIU|PEN"
Condizioni.Add "GIU|CCC"
Condizioni.Add "CCC|CCC"
Condizioni.Add "CCC|K"
Condizioni.Add "CCC|NIDO"
Condizioni.Add "CCC|PEN"
Condizioni.Add "CCC|GIU"
Condizioni.Add "D|D"
Condizioni.Add "TR1|TR1"
Condizioni.Add "TR2|TR2"
'Condizioni.Add "TR2|TR1"
'Condizioni.Add "TR1|TR2"
Condizioni.Add "OSS.|OSS."
Condizioni.Add "I.S.|I.S."
Condizioni.Add "EXD.|EXD."
Condizioni.Add "DEG.|DEG."
Condizioni.Add "DEG.|OSS."
Condizioni.Add "DEG.|EXD."
Condizioni.Add "DEG.|I.S."
Condizioni.Add "OSS.|EXD."
Condizioni.Add "OSS.|I.S."
Condizioni.Add "OSS.|DEG."
Condizioni.Add "EXD.|DEG."
Condizioni.Add "EXD.|OSS."
Condizioni.Add "EXD.|I.S."
Condizioni.Add "I.S.|EXD."
Condizioni.Add "I.S.|OSS."
Condizioni.Add "I.S.|DEG."
ReDim c(rt) As Integer
Dim I, j, Kt, cond
Set RNG2 = Range("C3:E" & rt)
For Each cl2 In RNG2
For Each cond In Condizioni
If cl2.Offset(0, 0) = Split(cond, "|")(0) And cl2.Offset(0, 2) = Split(cond, "|")(1) Then
I = I + 1
c(I) = cl2.Row
End If
Next
Next
Kt = I
Sheets("stampa movimenti").Select
For I = 1 To Kt
ActiveSheet.Range("A1:F1").Offset(c(I) - 1, 0).Delete
For j = I + 1 To Kt
c(j) = c(j) - 1
Next
Next 'FINE2

rrt = Range("I" & Rows.Count).End(xlUp).Row 'cancella nella colonna entrati il femminile tr1 e tr2 il codice finisce a fine 6
For xt = 3 To rrt
If Cells(xt, "I") = "F" Or Cells(xt, "I") = "FXG" Or Cells(xt, "I") = "FXGF" Or Cells(xt, "I") = "TR1" Or Cells(xt, "I") = "TR2" Or Cells(xt, "I") = "GIU" Or Cells(xt, "I") = "PEN" Or Cells(xt, "I") = "CCC" Or Cells(xt, "I") = "NIDO" Or Cells(xt, "I") = "K" Or Cells(xt, "I") = "?" Then
Range("G" & xt & ":" & "J" & xt).ClearContents
End If
Next xt 'fine 5

rrtt = Range("E" & Rows.Count).End(xlUp).Row 'cancella nella colonna movimenti i fuori per giustizia i detenuti da prendere in carico(?)i permessi e ricovero finisce a fine 6
For xtt = 3 To rrtt
If Cells(xtt, "E") = "PER" Or Cells(xtt, "E") = "FXG" Or Cells(xtt, "I") = "FXGF" Or Cells(xtt, "E") = "R.O." Or Cells(xtt, "E") = "GIU" Or Cells(xtt, "E") = "PEN" Or Cells(xtt, "E") = "CCC" Or Cells(xtt, "E") = "NIDO" Or Cells(xtt, "E") = "K" Then
Range("A" & xtt & ":" & "F" & xtt).ClearContents
End If
Next xtt
rrttt = Range("C" & Rows.Count).End(xlUp).Row
For xttt = 3 To rrttt
If Cells(xttt, "C") = "PER" Or Cells(xttt, "C") = "FXG" Or Cells(xttt, "I") = "FXGF" Or Cells(xttt, "C") = "R.O." Or Cells(xttt, "C") = "GIU" Or Cells(xttt, "C") = "PEN" Or Cells(xttt, "C") = "CCC" Or Cells(xttt, "C") = "NIDO" Or Cells(xttt, "C") = "K" Then
Range("A" & xttt & ":" & "F" & xttt).ClearContents
End If
Next xttt

rrrt = Range("M" & Rows.Count).End(xlUp).Row 'cancella nella colonna usciti
For xXtt = 3 To rrrt
If Cells(xXtt, "M") = "?" Or Cells(xXtt, "M") = "F" Or Cells(xXtt, "M") = "NIDO" Or Cells(xXtt, "M") = "GIU" Or Cells(xXtt, "M") = "PEN" Or Cells(xXtt, "M") = "K" Or Cells(xXtt, "M") = "CCC" Then
Range("K" & xXtt & ":" & "N" & xXtt).ClearContents
End If
Next xXtt 'fine 6

Range("A3:F" & rt).Select 'ordina alfabetico colonna movimenti
Selection.Sort Key1:=Range("E3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("G3:J1700").Select 'ordina alfabetico colonna entrati
Selection.Sort Key1:=Range("G3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("K3:N1700").Select ' ordina alfabetico colonna usciti
Selection.Sort Key1:=Range("K3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("G8").Select
Set sh1 = Worksheets("stampa movimenti")
sh1.Activate
Application.ScreenUpdating = False
st = Cells(2, 16)
cp = Cells(2, 17)
Cells(1, 18) = Cells(Rows.Count, 5).End(xlUp).Row
r1 = Cells(1, 18)
Cells(1, 19) = Cells(Rows.Count, 7).End(xlUp).Row
Cells(1, 20) = Cells(Rows.Count, 11).End(xlUp).Row
Cells(2, 18).Select
ActiveCell.FormulaR1C1 = "=LARGE(R[-1]C:R[-1]C[2],1)"
rt = Cells(2, 18)
Range(Cells(1, 18), Cells(2, 20)).ClearContents
If r1 < rt Then
If r1 = 2 Then
Range(Cells(r1 + 1, 1), Cells(rt, 4)).Select
Selection.Insert Shift:=xlDown
Cells(4, 5).Copy
Range(Cells(r1 + 1, 1), Cells(rt, 4)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Else
Range(Cells(r1 + 1, 1), Cells(rt, 6)).Select
Selection.Insert Shift:=xlDown
End If
End If
If r1 < rt Then d = rt Else d = r1
Range("A3:F" & d).Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess
For xt = 3 To d Step 2
Range(Cells(xt, 1), Cells(xt, 14)).Interior.ColorIndex = 45 ' colora di arancione un rigo si e uno no
Next xt
'Range("A3:N" & r).Select 'seleziona l'area di stampa'
'ind = Range("A3:N" & rt).Address
'ActiveSheet.PageSetup.PrintArea = ind
'With ActiveSheet.PageSetup
' .PrintTitleRows = "$1:$2"
' .PrintTitleColumns = ""
'End With
'With ActiveSheet.PageSetup
' .LeftHeader = " &D - &T &P/&N" 'stampa data ora e numero di pagine'
' .CenterHeader = "" & Chr(10) & "" & Chr(10) & "" & Chr(10) & "" & Chr(10) & "" & Chr(10) & _
' "&""Arial""&12U F F I C I O P O S T A&""Arial,Normale""&10" & Chr(10) & _
'"&""Arial""&12" 'intestazione pagina'
' .LeftMargin = Application.InchesToPoints(0.1) 'margine sinistro della stampa'
' .RightMargin = Application.InchesToPoints(0.1) 'margine destro'
' .TopMargin = Application.InchesToPoints(1.6) 'margine alto'
' .BottomMargin = Application.InchesToPoints(0.25) 'adatta lo scritto alla pagina della stampa'
' .HeaderMargin = Application.InchesToPoints(0.1) 'abbassa o alza il titolo della pagina di stampa'
' .FooterMargin = Application.InchesToPoints(0.2) 'abbassa o alza lo scritto sotto la pagine'
' .PrintHeadings = False
' .PrintGridlines = False
' .PrintComments = xlPrintNoComments
' .CenterHorizontally = False
' .CenterVertically = False ' .Orientation = xlLandscape 'stampa in verticale...per stampare in orizzontale sostituisci con =x1portrait'
' .Draft = False
' .PaperSize = xlPaperA4 'tipo di foglio usati per la stampa'
' .FirstPageNumber = xlAutomatic
' .Order = xlDownThenOver
' .BlackAndWhite = False
' .Zoom = 100 'ingrandisce o rimpiccolisce la stampa'
' .PrintErrors = xlPrintErrorsDisplayed
'End With
'Application.ScreenUpdating = True
'If st = "V" Then ActiveWindow.SelectedSheets.PrintPreview
'If st = "S" Then ActiveWindow.SelectedSheets.PrintOut Copies:=cp
If r1 < rt Then
Range(Cells(r1 + 1, 1), Cells(rt, 4)).Select
Selection.Delete Shift:=xlUp
End If
Cells(2, 1).Select
Sheets("archivio").Select


'Sub aggiorna1() 'aggiorna i nominativi, movimenti, entrati e usciti
Dim Gh As Long
Dim Kh As Long
Set sh1 = Worksheets("Archivio")
sh1.Activate
Gh = Cells(Rows.Count, 7).End(xlUp).Row + 1
Range(Cells(3, 7), Cells(Gh, 10)).ClearContents
Kh = Cells(Rows.Count, 11).End(xlUp).Row + 1
Range(Cells(3, 11), Cells(Kh, 14)).ClearContents
For x = 3 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(x, 5) <> "" Then
Cells(x, 3) = Cells(x, 5)
Cells(x, 4) = Cells(x, 6)
Cells(x, 5) = ""
Cells(x, 6) = ""
End If
Next x
Cells(2, 1).Select
Range("A3:F1516").Select 'ordina alfabetico tutti i nomi'
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Sheets("Archivio").Select
Range("AB3").Select
Selection.AutoFill Destination:=Range("AB3:AB247"), Type:=xlFillDefault
Range("AB3:AB247").Select
ActiveWorkbook.Save
Application.Run "'rubricagedet.xls'!trova1"
Range("B9").Select
End Sub

Sub trova1() 'rende visibile la finestra per cercare i nomi
If userform1.Visible = False Then userform1.Show False
userform1.Left = 345 'coordinate dove far apparire la finestra destra sinistra
userform1.Top = 200
End Sub

allego due file come esempio..
il file "primo giorno" ha copiato i nomi dal foglio "stampa movimenti" al foglio "usciti"...il file "giorno successico" ha copiato nomi nuovi sempre nello stesso modo ma senza cancellare i nomi del giorno precedente.
non so se
www.filedropper.com/primogiorno
clicca sul link poi su download this file poi inserisci le lettere che compaiono e scarica
dropcanvas.com/in73d
qui clikki direttamente sul file per scaricare.
il primo sito non mi permette di caricare un secondo file e allora ho fatto con un altro sito.
GRAZIE
Sponsor
Inviato: Saturday, July 26, 2014 10:47:51 AM

 
trittico69
Inviato: Sunday, July 27, 2014 4:25:45 PM
Rank: AiutAmico

Iscritto dal : 8/4/2013
Posts: 38
ok ho risolto cosi

Sub Copia_e_Cancella()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ultK As Long
Dim ultA As Long
Dim iRiga As Long

Set ws1 = Foglio11 'stampa movimenti
Set ws2 = Foglio21 'usciti

ultK = IIf(ws1.Range("K3").Value = "", 3, ws1.Range("K" & Rows.Count).End(xlUp).Row)
ultA = IIf(ws2.Range("A5000").Value = "", 5000, ws2.Range("A" & Rows.Count).End(xlUp).Row + 1)

Application.EnableEvents = False
If ultK > 2 Then
For iRiga = 3 To ultK
ws2.Range("A" & ultA).Value = ws1.Range("K" & iRiga).Value & " " & ws1.Range("L" & iRiga).Value
ultA = ultA + 1
Next iRiga
End If

'CANCELLO I NOMI DAL FOGLIO "stampa movimenti"
ws1.Range("K3:L" & ultK).ClearContents 'SE VUOI ESCLUDERLA, METTICI UN APICE DAVANTI O ELIMINALA
Application.EnableEvents = True

Set ws1 = Nothing
Set ws2 = Nothing
End Sub
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.