ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Can't make this VB work plz assist :p (https://www.excelbanter.com/excel-programming/340151-cant-make-vbulletin-work-plz-assist-p.html)

Bokazoit

Can't make this VB work plz assist :p
 

The code below should copy the the first row in range *a*, if the number
in the coloumn 6 in range a is greater than zero, and then paste that
row into the first row in range *b*. If not above 0 it should do
nothing...for now

I'm not so strong in vb, but under constant training hope You will
help


Code:
--------------------
Dim a() As Variant, b() As Variant

Range("A57:H66").Select
Selection.Copy
Range("A70:H79").PasteSpecial (xlPasteValuesAndNumberFormats)
Application.CutCopyMode = False
Selection.Sort Key1:=Range("F71"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
a = Range("A70:H79")
b = Range("A83:H92")
For i = 1 To 10
If a(i + 1, 6) 0 Then
For ii = 1 To 8
b(i + 1, ii) = a(i + 1, ii)
Exit For
End If
Next
End Sub

--------------------


In advance tx :)


--
Bokazoit
------------------------------------------------------------------------
Bokazoit's Profile: http://www.excelforum.com/member.php...o&userid=11643
View this thread: http://www.excelforum.com/showthread...hreadid=467802


K Dales[_2_]

Can't make this VB work plz assist :p
 
I will try to give some pointers with comments:

Dim a as Range, b as Range
' Always best to explicitly define your variables and specify type of variable

.... ' initial part of code looks OK

Set a = Range("A70:H79")
Set b = Range("A83:H92")
' Use Set when assigning an object (like a Range) to a variable
For i = 1 To 10
If a.Cells(i, 6).Value 0 Then
' a(i,j), which is valid code for referring to an array variable, will not
work if a is a range. There are various ways to refer to cells relative to a
particular range, the above is probably easiest to put into your code. If
you want to include the first row in your range, use i instead of i+1. I
made this change since it seemed likely that was what you wanted.
For ii = 1 To 8
b(i, ii) = a(i, ii)
Next ii
' You need to close your loop for ii
Exit For ' Unclear to me why - this will end the i loop after the first
occurrence of a value above zero in column 6 was found, so only the first
occurrence will be copied; is that what you intend?
End If
Next

--
- K Dales


"Bokazoit" wrote:


The code below should copy the the first row in range *a*, if the number
in the coloumn 6 in range a is greater than zero, and then paste that
row into the first row in range *b*. If not above 0 it should do
nothing...for now

I'm not so strong in vb, but under constant training hope You will
help


Code:
--------------------
Dim a() As Variant, b() As Variant

Range("A57:H66").Select
Selection.Copy
Range("A70:H79").PasteSpecial (xlPasteValuesAndNumberFormats)
Application.CutCopyMode = False
Selection.Sort Key1:=Range("F71"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
a = Range("A70:H79")
b = Range("A83:H92")
For i = 1 To 10
If a(i + 1, 6) 0 Then
For ii = 1 To 8
b(i + 1, ii) = a(i + 1, ii)
Exit For
End If
Next
End Sub

--------------------


In advance tx :)


--
Bokazoit
------------------------------------------------------------------------
Bokazoit's Profile: http://www.excelforum.com/member.php...o&userid=11643
View this thread: http://www.excelforum.com/showthread...hreadid=467802



Bokazoit[_2_]

Can't make this VB work plz assist :p
 

Were are my manners :rolleyes:

Tx for Your help it works nicely :)

I'm not good at vb so I use the help file and try to set things up
through that :(


--
Bokazoit
------------------------------------------------------------------------
Bokazoit's Profile: http://www.excelforum.com/member.php...o&userid=11643
View this thread: http://www.excelforum.com/showthread...hreadid=467802



All times are GMT +1. The time now is 05:20 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com