Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Copy code that partly works
Hi,
I have the following code which is not working a required, its only copying one item from one field. I can't find any differences between the data, its all formatted the same etc. It is in as a workbook code. Would anyone be able to tell me why this might not work please? Private Sub Workbook_Open() Dim lr As Long, rng As Range Dim lr2 As Long, lr3 As Long Dim ws1 As Worksheet, ws2 As Worksheet Dim ws3 As Worksheet, ws4 As Worksheet Dim ws5 As Worksheet Set ws1 = Sheets("Données") Set ws2 = Sheets("Urgences") Set ws3 = Sheets("Imperatifs") Set ws4 = Sheets("Importants") Set ws5 = Sheets("Repariations") ws2.Range("B6:J" & Cells(10, 2).End(xlDown).Row).Delete ws3.Range("B6:J" & Cells(10, 2).End(xlDown).Row).Delete ws4.Range("B6:J" & Cells(10, 2).End(xlDown).Row).Delete ws5.Range("B6:J" & Cells(10, 2).End(xlDown).Row).Delete lr = ws1.Cells(ws1.Rows.Count, "K").End(xlUp).Row Set rng = ws1.Range("K9:K" & lr) Application.DisplayAlerts = False For Each c In rng If c.Value = 2 And UCase(Range("v" & c.Row).Value) = "X" Then lr2 = ws5.Cells(ws5.Rows.Count, 9).End(xlUp).Row If lr2 < 6 Then lr2 = 5 Range("B" & c.Row & ":J" & c.Row).Copy ws5.Range("B" & lr2 + 1) ElseIf c.Value = 4 And UCase(Range("v" & c.Row).Value) = "X" Then lr2 = ws4.Cells(ws4.Rows.Count, 9).End(xlUp).Row If lr2 < 6 Then lr2 = 5 Range("B" & c.Row & ":J" & c.Row).Copy ws4.Range("B" & lr2 + 1) ElseIf c.Value = 6 And UCase(Range("v" & c.Row).Value) = "X" Then lr2 = ws4.Cells(ws4.Rows.Count, 9).End(xlUp).Row If lr2 < 6 Then lr2 = 5 Range("B" & c.Row & ":J" & c.Row).Copy ws4.Range("B" & lr2 + 1) End If Next Set rng = ws1.Range("K9:K" & lr) Application.DisplayAlerts = False For Each c In rng If c.Value = 8 And UCase(Range("v" & c.Row).Value) = "X" Then lr2 = ws3.Cells(ws3.Rows.Count, 9).End(xlUp).Row If lr2 < 6 Then lr2 = 5 Range("B" & c.Row & ":J" & c.Row).Copy ws3.Range("B" & lr2 + 1) ElseIf c.Value = 10 And UCase(Range("v" & c.Row).Value) = "X" Then lr3 = ws2.Cells(ws2.Rows.Count, 9).End(xlUp).Row If lr3 < 6 Then lr3 = 5 Range("B" & c.Row & ":J" & c.Row).Copy ws2.Range("B" & lr3 + 1) End If Next Application.DisplayAlerts = True ThisWorkbook.Save End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Workbook only partly loads | Excel Discussion (Misc queries) | |||
Automated imput partly | Excel Worksheet Functions | |||
Macro's only partly activated? | Excel Programming | |||
How to lock a file (wholly or partly) | Excel Discussion (Misc queries) | |||
Excel 2003 Issue with UsedRange.Copy (code works in Excel 2002) | Excel Programming |