ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Help merging two VBA codes (https://www.excelbanter.com/excel-programming/448950-help-merging-two-vba-codes.html)

arceaf

Help merging two VBA codes
 
Hi,

I'm having a bit of difficulty merging two different VBA functions into one button.

This the the button code:

Select Code copy to clipboard
Private Sub CommandButton2_Click()

With Sheets("Recommendations Calc").Range("A" & Rows.Count).End(xlUp)
.Offset(1, 0).Value = Sheets("Decision Matrix").Range("C2").Value
.Offset(1, 1).Value = Sheets("Decision Matrix").Range("h55").Value
.Offset(1, 4).Value = Sheets("Decision Matrix").Range("I55").Value
deletedup '<--call the macro to delete the dup. and put the last data entry.
End With

End Sub


And this is the other VBA code:


Select Code copy to clipboard
Sub thebigcopy()
'
' thebigcopy Macro
'

'
ActiveWindow.SmallScroll Down:=-21
Columns("A:B").Select
Selection.Copy
Sheets("Recommendations").Select
Columns("A:B").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Recommendations Calc").Select
Columns("E:E").Select
Application.CutCopyMode = False
Selection.Copy
Range("C37").Select
Sheets("Recommendations").Select
Columns("E:E").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub



I want to merge the 2nd code into the 1st button VB code

Can anyone help me?

Thank You!!

pascal baro

Help merging two VBA codes
 
Hi arceaf,

The first code you have provided is a vba script and it is attached to an activex button and the second code is a macro recorded from excel.

You could do something like below, just copy paste the recorded macro into the script but this is just an example as it will not work like that out of the box.

You will need to specify from what worksheet you are running your code because it seems there are a recommandation sheet from where the script is taking the data and there is "decision matrix" sheet from where the data is copied. It seems the recorded macro is triggered from the decision matrix sheet. Can you confirm? If so, you need to choose from which sheet you want your button to run the code or tell on which sheet sheet the button is so to consider it the destination sheet and the other sheet, the source data sheet..

Select Code copy to clipboard
Private Sub CommandButton2_Click()

With Sheets("Recommendations Calc").Range("A" & Rows.Count).End(xlUp)
Offset(1, 0).Value = Sheets("Decision Matrix").Range("C2").Value
Offset(1, 1).Value = Sheets("Decision Matrix").Range("h55").Value
Offset(1, 4).Value = Sheets("Decision Matrix").Range("I55").Value
deletedup
'<--call the macro to delete the dup. and put the last data entry.

ActiveWindow.SmallScroll Down:=-21
Columns("A:B").Select
Selection.Copy
Sheets("Recommendations").Select
Columns("A:B").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Sheets("Recommendations Calc").Select
Columns("E:E").Select
Application.CutCopyMode = False
Selection.Copy
Range("C37").Select
Sheets("Recommendations").Select
Columns("E:E").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False


End With

End Sub

This is just to show you could copy paste the code this way but it won't work until you tell which sheet is the source data and which sheet is the destination.

Pascal
http://www.multiskillz.elementfx.com/

joeu2004[_2_]

Help merging two VBA codes
 
"arceaf" wrote:
I'm having a bit of difficulty merging two different
VBA functions into one button.


Please explain the "difficulty". I presume you already tried copying and
pasting the text of second macro into the text of the first macro. In what
way does that not do what you expect?


"arceaf" wrote:
This the the button code:

[....]
And this is the other VBA code:


Why "merge" the code at all? Why not simply call the second macro at the
end of the first macro? See below. In what way does that not do what you
expect?

Private Sub CommandButton2_Click()
With Sheets("Recommendations Calc").Range("A" & Rows.Count).End(xlUp)
..Offset(1, 0).Value = Sheets("Decision Matrix").Range("C2").Value
..Offset(1, 1).Value = Sheets("Decision Matrix").Range("h55").Value
..Offset(1, 4).Value = Sheets("Decision Matrix").Range("I55").Value
'<--call the macro to delete the dup. and put the last data entry.
deletedup
End With
thebigcopy ' <-- added
End Sub

(Aside: I would put the call to "deletedup" after End With.)

PS: "thebigcopy" changes the active worksheet. It might be prudent to
modify it so that it goes back to the original active worksheet. To wit:

Sub thebigcopy()
Dim oldWS as Worksheet
Set oldWS = Activesheet ' <-- remember initial active worksheet
[....]
oldWS.Activate ' <-- restore initial active worksheet
End Sub



All times are GMT +1. The time now is 07:29 PM.

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