Requirement:
The user has a "table" with basketball games and referees. in columns 9 and 10 the referees are listed.
The user wants to search the two columns 9 and 10, row by row for a name. If the name is found in a row then copy chosen cells and paste them on sheet2.
This is the code:
'dim
Dim ws1 As Worksheet, ws2 As Worksheet
Dim lR As Long, eR As Long, i As Integer ' lR=last row eR=first empty row
Dim name As String 'name=referee
'set
Set ws1 = Sheet1
Set ws2 = Sheet2
lR = ws1.Cells(Rows.Count, 1).End(xlUp).Row
eR = ws2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
name = ws1.Range("M1").Value
For i = 2 To lR
If ws1.Cells(i, "I").Value = name Or ws1.Cells(i, "J").Value = name Then
ws1.Cells(i, 1).Copy
ws1.Paste Destination:=ws2.Cells(eR, 3)
ws1.Cells(i, 6).Copy
ws1.Paste Destination:=ws2.Cells(eR, 1)
ws1.Cells(i, 7).Copy
ws1.Paste Destination:=ws2.Cells(eR, 2)
ws1.Cells(i, 8).Copy
ws1.Paste Destination:=ws2.Cells(eR, 4)
ws1.Cells(i, 9).Copy
ws1.Paste Destination:=ws2.Cells(eR, 5)
ws1.Cells(i, 10).Copy
ws1.Paste Destination:=ws2.Cells(eR, 6)
End If
Next i
ws2.Columns.AutoFit
ws2.Select
It only finds 1 of 3 entries in column 9, and find 0 of 4 entries in column 10.
Solution:
Option Explicit
Sub FindRef()
Dim s As Worksheet, t As Worksheet
Set s = Sheets("Våren -17")
Set t = Sheets("Sheet1")
'Dim c As Range, rng As Range
Dim lr As Long, lr2 As Long, i As Long
lr = s.Range("I" & Rows.Count).End(xlUp).Row
'Set rng = s.Range("I2:J" & lr)
Dim Ref As String
Ref = s.Range("M1")
Application.ScreenUpdating = False
For i = 2 To lr
lr2 = t.Range("A" & Rows.Count).End(xlUp).Row + 1
If s.Range("I" & i) = Ref Or s.Range("J" & i) = Ref Then
s.Range("F" & i & ":G" & i).Copy t.Range("A" & lr2)
Application.Union(s.Range("A" & i), s.Range("H" & i & ":J" & i)).Copy t.Range("C" & lr2)
End If
Next i
Application.CutCopyMode = True
Application.ScreenUpdating = True
MsgBox "complete"
End Sub
Obtained from the OzGrid Help Forum.
Solution provided by AlanSidman.
See also: Index to Excel VBA Code and Index to Excel Freebies and Lesson 1 - Excel Fundamentals and Index to how to… providing a range of solutions and Index to new resources and reference sheets
See also:
| How to copy/paste between workbooks with relative referencing |
| How to copy a sheet and rename from a list, ignore duplicates |
| How to use VBA code to copy Active Row cells to another sheet |
| How to create VBA code to increment number each time a copy is printed |
Click here to visit our Free 24/7 Excel/VBA Help Forum where there are thousands of posts you can get information from, or you can join the Forum and post your own questions.