Solved

copy dynamic range data from sheet 1 to sheet 2

Posted on 2014-03-31
30
384 Views
Last Modified: 2014-04-02
Hi all,

I have a workbook with 2 sheets. Sheet 1 named "details" sheet 2 named "rec". There are named ranges for each data range which I can manage dynamically.

I am only wanting to transfer data from "details" to "rec" that is within the criteria I have selected. For example, the date and the details (id).

Below is the code I have thus far but it does not deliver the results I need:

Sub transfer_icbr(id As String)
Dim shtF As Worksheet, shtT As Worksheet
Dim lNumRows As Long

Dim lastUpdate As String
lastUpdate = "29/01/2014"

'turn off updates to speed up code execution ->
With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    .DisplayAlerts = False
End With

startDate = lastUpdate

Set shtT = ThisWorkbook.Sheets("details")
Set shtF = ThisWorkbook.Sheets("rec")

With shtT.Range("details")
    .AutoFilter
    .AutoFilter Field:=1, Criteria1:= _
        ">=" & Format(startDate, "mm/dd/yyyy"), Operator:=xlAnd, Criteria2:="<=" & Format(startDate, "mm/dd/yyyy")
    .AutoFilter Field:=5, Criteria1:="=id"
    
    .Offset(1).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("rec").Range("rec")
    .AutoFilter
    
End With

With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .DisplayAlerts = True
End With

End Sub

Open in new window


I have attached a sample file without the above code in it. I have also highlighted the data columns yellow for the criteria and the other color is the actual data (columns A, B, C, G, H & I) to copy out to the "rec" sheet.

Anyone able to help?

TA
Book1.xlsm
0
Comment
Question by:discogs
  • 18
  • 12
30 Comments
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
I tested and tweaked your code.
1. You should always run with Option Explicit
2. The lines I added/changed have a 'chg comment
Option Explicit

Sub transfer_icbr(id As String)
Dim shtF As Worksheet, shtT As Worksheet
Dim lNumRows As Long
Dim startDate As String     'chg
Dim lastUpdate As String
lastUpdate = "29/01/2014"

'turn off updates to speed up code execution ->
With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    .DisplayAlerts = False
End With

startDate = lastUpdate

Set shtT = ThisWorkbook.Sheets("detail")    'chg
Set shtF = ThisWorkbook.Sheets("rec")

With shtT.Range("detail")       ' chg
    .AutoFilter
    .AutoFilter Field:=1, Criteria1:= _
        ">=" & Format(startDate, "mm/dd/yyyy"), Operator:=xlAnd, Criteria2:="<=" & Format(startDate, "mm/dd/yyyy")
    .AutoFilter Field:=5, Criteria1:="=" & id   'chg
    
    .Offset(1).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("rec").Range("rec")
    .AutoFilter
    
End With

With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .DisplayAlerts = True
End With

End Sub

Open in new window

0
 

Author Comment

by:discogs
Comment Utility
Thanks for this.  I tested and is working for the data transfer. However, the solution does not address the append to last records or the running balance formula requirement.

i.e. Append the records at the bottom of any existing records (excluding header) and add the specified formula noting that if the record is the first row of data, it will always be the receipt value. The formula I included should only be used from row 3 onwards. This is articulated in the file I provided.

Could we work on those before closing please?
TA
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
See if this comes close.
Option Explicit

Sub transfer_icbr(id As String)
    Dim shtF As Worksheet, shtT As Worksheet
    Dim lNumRows As Long
    Dim startDate As String     'chg
    Dim lastUpdate As String
    Dim rngTo As Range      'chg
    Dim rngFrom As Range    'chg
    
    lastUpdate = "29/01/2014"
    
    'turn off updates to speed up code execution ->
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
        .DisplayAlerts = False
    End With
    
    startDate = lastUpdate
    
    Set shtT = ThisWorkbook.Sheets("detail")    'chg
    Set shtF = ThisWorkbook.Sheets("rec")
    Set rngTo = shtF.Range("A1").End(xlDown).Offset(1)
    
    With shtT.Range("detail")       ' chg
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:= _
            ">=" & Format(startDate, "mm/dd/yyyy"), Operator:=xlAnd, Criteria2:="<=" & Format(startDate, "mm/dd/yyyy")
        .AutoFilter Field:=5, Criteria1:="=" & id   'chg
        Set rngFrom = Intersect(.SpecialCells(xlCellTypeVisible), .Range(.Rows(2), .Rows(.Rows.Count))) 'chg
        
        .Range(rngFrom.Columns(1), rngFrom.Columns(3)).Copy rngTo   'chg
        rngFrom.Columns(7).Copy rngTo.Offset(0, 3)                  'chg
        rngFrom.Columns(10).Copy rngTo.Offset(0, 4)                 'chg
        rngFrom.Columns(9).Copy rngTo.Offset(0, 5)                  'chg
        shtF.Range(rngTo.Offset(-1, 6), rngTo.Offset(shtF.Range("A1").End(xlDown).Row - rngTo.Row, 6)).FillDown     'chg
        
        '.Offset(1).SpecialCells(xlCellTypeVisible).Copy Destination:=rngTo     'chg
        .AutoFilter
        
    End With
    
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
        .DisplayAlerts = True
    End With

End Sub

Open in new window

0
 

Author Comment

by:discogs
Comment Utility
Hi.

I am getting an error on line 34. Object variable or with block variable not set.

TA
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
are you testing with the same workbook you posted in this thread?
0
 

Author Comment

by:discogs
Comment Utility
No. I am not. I had to separate for confidentiality.

TA
0
 

Author Comment

by:discogs
Comment Utility
Here is my code with named range and sheet change ONLY.

Sub transfer_icbr(id As String)
    Dim shtF As Worksheet, shtT As Worksheet
    Dim lNumRows As Long
    Dim startDate As String     'chg
    Dim lastUpdate As String
    Dim rngTo As Range      'chg
    Dim rngFrom As Range    'chg
    
    lastUpdate = "29/01/2014"
    
    'turn off updates to speed up code execution ->
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
        .DisplayAlerts = False
    End With
    
    startDate = lastUpdate
    
    Set shtT = ThisWorkbook.Sheets("csb")    'chg
    Set shtF = ThisWorkbook.Sheets("icbr_append")
    Set rngTo = shtF.Range("A1").End(xlDown).Offset(1)
    
    With shtT.Range("tbl_cashbook")       ' chg
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:= _
            ">=" & Format(startDate, "mm/dd/yyyy"), Operator:=xlAnd, Criteria2:="<=" & Format(startDate, "mm/dd/yyyy")
        .AutoFilter Field:=5, Criteria1:="=" & id   'chg
        Set rngFrom = Intersect(.SpecialCells(xlCellTypeVisible), .Range(.Rows(2), .Rows(.Rows.Count))) 'chg
        
        .Range(rngFrom.Columns(1), rngFrom.Columns(3)).Copy rngTo   'chg
        rngFrom.Columns(7).Copy rngTo.Offset(0, 3)                  'chg
        rngFrom.Columns(10).Copy rngTo.Offset(0, 4)                 'chg
        rngFrom.Columns(9).Copy rngTo.Offset(0, 5)                  'chg
        shtF.Range(rngTo.Offset(-1, 6), rngTo.Offset(shtF.Range("A1").End(xlDown).Row - rngTo.Row, 6)).FillDown     'chg
        
        '.Offset(1).SpecialCells(xlCellTypeVisible).Copy Destination:=rngTo     'chg
        .AutoFilter
        
    End With
    
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
        .DisplayAlerts = True
    End With

End Sub

Open in new window

0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
Did the sample workbook you posted contain representative data to the workbook you are using in production?

Are you getting an error on line 34?
0
 

Author Comment

by:discogs
Comment Utility
The sample is exactly what I use however, there are a few different columns. I have reposed the exact structure for you to see.
TA
Book1.xlsm
0
 

Author Comment

by:discogs
Comment Utility
Line 34 is the error.
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
what are you supplying as the parameter to this routine?
the code you originally looking at column 5.  Is this correct?
0
 

Author Comment

by:discogs
Comment Utility
Thats right. Column 5 which is name. Sorry to confuse.
0
 

Author Comment

by:discogs
Comment Utility
Column 5 is the parameter.  Name as text.
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
Are you supplying an empty string value?

There are no values in that column.
0
 

Author Comment

by:discogs
Comment Utility
Column e of the detail tab. I will pass the id through a user entry field to the function later.
0
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 

Author Comment

by:discogs
Comment Utility
At the moment, when I call the routine, I just parse "customer 1" as an example.  For testing only.
0
 

Author Comment

by:discogs
Comment Utility
So when I call the function from the rec sheet, it will return all the records based on the date and the name/id.
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
None of the customer 1 rows are in the date range.  They are from 2012.
I check for the no filtered rows criteria and I've added the lastUpdate date as an optional parameter.
Option Explicit

Public Sub transfer_icbr(id As String, Optional lastUpdate As Date = #1/29/2014#)
    Dim shtF As Worksheet, shtT As Worksheet
    Dim lNumRows As Long
    Dim startDate As Date     'chg
'    Dim lastUpdate As String
    Dim rngTo As Range      'chg
    Dim rngFrom As Range    'chg
    
'    lastUpdate = "01/29/2014"
    
    'turn off updates to speed up code execution ->
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
        .DisplayAlerts = False
    End With
    
    startDate = lastUpdate
    
    Set shtT = ThisWorkbook.Sheets("detail")    'chg
    Set shtF = ThisWorkbook.Sheets("rec")
    Set rngTo = shtF.Range("A1").End(xlDown).Offset(1)
    
    With shtT.Range("detail")       ' chg
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:= _
            ">=" & Format(startDate, "mm/dd/yyyy"), Operator:=xlAnd, Criteria1:="<=" & Format(startDate, "mm/dd/yyyy")
        .AutoFilter Field:=5, Criteria1:=id    'chg
        Set rngFrom = Intersect(.SpecialCells(xlCellTypeVisible), .Range(.Rows(2), .Rows(.Rows.Count))) 'chg
        If rngFrom Is Nothing Then
            MsgBox "No rows meet your criteria"
        Else
            rngFrom.Columns(1).Copy rngTo                  'chg
            .Range(rngFrom.Columns(4), rngFrom.Columns(5)).Copy rngTo.Offset(0, 1)  'chg
            rngFrom.Columns(9).Copy rngTo.Offset(0, 3)                  'chg
            rngFrom.Columns(12).Copy rngTo.Offset(0, 4)                  'chg
            rngFrom.Columns(11).Copy rngTo.Offset(0, 5)                 'chg
            shtF.Range(rngTo.Offset(-1, 6), rngTo.Offset(shtF.Range("A1").End(xlDown).Row - rngTo.Row, 6)).FillDown     'chg
        End If
        '.Offset(1).SpecialCells(xlCellTypeVisible).Copy Destination:=rngTo     'chg
        .AutoFilter
        
    End With
    
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
        .DisplayAlerts = True
    End With

End Sub

Open in new window

0
 

Author Comment

by:discogs
Comment Utility
Hi,

This is working good but I am only getting one row of data Mark.

Is there a need to place a loop in there?
TA
0
 

Author Comment

by:discogs
Comment Utility
Okay champ, I have managed to tweak this a little. The only thing left to do is to work out how to return all rows instead of just one.

Here is my code:

Public Sub transfer_icbr()
    Dim shtF As Worksheet, shtT As Worksheet
    Dim lNumRows As Long
    Dim startDate As String     'chg
    Dim lastUpdate As String
    Dim rngTo As Range      'chg
    Dim rngFrom As Range    'chg
    Dim id As String
    Dim response As Integer, msg As String, title As String, style As String

    lastUpdate = "01/01/2012"
    
    'turn off updates to speed up code execution ->
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
        .DisplayAlerts = False
    End With
           
    Set shtT = ThisWorkbook.Sheets("csb")    'chg
    Set shtF = ThisWorkbook.Sheets("icbr_append")
    Set rngTo = shtF.Range("A1").End(xlDown).Offset(1)
    id = shtF.Range("icbr_name")
    
    With shtT.Range("tbl_cashbook")       ' chg
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:= _
            ">=" & Format(lastUpdate, "mm/dd/yyyy")
        .AutoFilter Field:=5, Criteria1:="=" & id   'chg
        
        'setting the range from
        Set rngFrom = Intersect(.SpecialCells(xlCellTypeVisible), .Range(.Rows(2), .Rows(.Rows.Count))) 'chg
                
        If rngFrom Is Nothing Then
            MsgBox "No rows meet your criteria"
        Else
            rngFrom.Columns(1).Copy rngTo                  'chg
            .Range(rngFrom.Columns(4), rngFrom.Columns(5)).Copy rngTo.Offset(0, 1)  'chg
            rngFrom.Columns(9).Copy rngTo.Offset(0, 3)                  'chg
            rngFrom.Columns(12).Copy rngTo.Offset(0, 4)                  'chg
            rngFrom.Columns(11).Copy rngTo.Offset(0, 5)                 'chg
            shtF.Range(rngTo.Offset(-1, 6), rngTo.Offset(shtF.Range("A1").End(xlDown).Row - rngTo.Row, 6)).FillDown     'chg
        End If                
        
    End With
    
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
        .DisplayAlerts = True
    End With

End Sub

Open in new window

0
 
LVL 45

Accepted Solution

by:
aikimark earned 500 total points
Comment Utility
There's no need for looping.  I wasn't getting the correct slice of the filtered rows in the prior versions of the routine.
Option Explicit

Public Sub transfer_icbr(id As String, Optional lastUpdate As Date = #1/1/2012#)
    Dim shtFrom As Worksheet, shtTo As Worksheet
'    Dim lNumRows As Long
'    Dim startDate As Date     'chg
'    Dim lastUpdate As String
    Dim rngTo As Range      'chg
    Dim rngFrom As Range    'chg
    
'    lastUpdate = "01/29/2014"
    
    'turn off updates to speed up code execution ->
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
        .DisplayAlerts = False
    End With
    
'    startDate = lastUpdate
    
    Set shtFrom = ThisWorkbook.Sheets("detail")
    Set shtTo = ThisWorkbook.Sheets("rec")
    Set rngTo = shtTo.Range("A1").End(xlDown).Offset(1)
    
    With shtFrom.Range("detail")
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:= _
            ">=" & Format(lastUpdate, "mm/dd/yyyy")
        .AutoFilter Field:=5, Criteria1:=id
        Set rngFrom = Intersect(.SpecialCells(xlCellTypeVisible), .Range(.Rows(2), .Rows(.Rows.Count))) 'chg
        If rngFrom Is Nothing Then
            MsgBox "No rows meet your criteria"
        Else
            Intersect(rngFrom, .Columns(1)).Copy rngTo                              'chg
            Intersect(rngFrom, .Range("D:E")).Copy rngTo.Offset(0, 1)               'chg
            Intersect(rngFrom, .Columns(9)).Copy rngTo.Offset(0, 3)                 'chg
            Intersect(rngFrom, .Columns(12)).Copy rngTo.Offset(0, 4)                'chg
            Intersect(rngFrom, .Columns(11)).Copy rngTo.Offset(0, 5)                'chg
            shtTo.Range(rngTo.Offset(-1, 6), rngTo.Offset(shtTo.Range("A1").End(xlDown).Row - rngTo.Row, 6)).FillDown     'chg
        End If
        .AutoFilter
        
    End With
    
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
        .DisplayAlerts = True
    End With

End Sub

Open in new window

If that gives you the correct results, we can simplify the data transfer operation into a single statement:
        If rngFrom Is Nothing Then
            MsgBox "No rows meet your criteria"
        Else
            Intersect(rngFrom, .Range("A:A,D:E,I:I,L:L,K:K")).Copy rngTo             'chg
            shtTo.Range(rngTo.Offset(-1, 6), rngTo.Offset(shtTo.Range("A1").End(xlDown).Row - rngTo.Row, 6)).FillDown
        End If

Open in new window

Please note that I changed the worksheet variable names to reflect their use.
0
 

Author Comment

by:discogs
Comment Utility
Hi there,

Thanks so much for the help.
I have migrated your simplified solution into production and it works fine. The only problem is when there are no existing records in the rngTo worksheet, it copies down the header field which is not what I want.

I already have another range named "detail_formula" which contains the following:

=IF(ISNUMBER((G1)=TRUE),G1+F2-E2,F2)

that can be copied or maybe adapted into the code. What are your thoughts on this?
TA
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
looks like a reasonable formula to me.  You could plop that into the FormulaR1C1 property if you are transferring data to row 2 and then do a Filldown.
The FormulaR1C1 value would be:
=IF(ISNUMBER(R[-1]C)=TRUE),R[-1]C+RC[-1]-RC[-2],RC[-1])

Open in new window


Alternatively, the Filldown could be replaced with the FormulaR1C1 value assignment for the newly transferred rows.
0
 

Author Comment

by:discogs
Comment Utility
Cool, so using your simplified code, how would I incorporate it into the routine?

 Intersect(rngFrom, .Range("A:A,D:E,I:I,L:L,K:K")).Copy rngTo             'chg
           shtTo.Range(rngTo.Offset(-1, 6), rngTo.Offset(shtTo.Range("A1").End(xlDown).Row - rngTo.Row, 6)).FillDown

Open in new window


I have not worked with setting R1C1 formula via vba before. Sorry.
0
 
LVL 45

Assisted Solution

by:aikimark
aikimark earned 500 total points
Comment Utility
There was a problem in the formula you posted.  I tried to edit my comment before you saw it, but you were too quick.  Here is the section of code to transfer the data and populate the formula cells without using the Filldown method.
        If rngFrom Is Nothing Then
            MsgBox "No rows meet your criteria"
        Else
            Intersect(rngFrom, .Range("A:A,D:E,I:I,L:L,K:K")).Copy rngTo             'chg
            shtTo.Range(rngTo.Offset(0, 6), rngTo.Offset(shtTo.Range("A1").End(xlDown).Row - rngTo.Row, 6)).FormulaR1C1 = "=IF(ISNUMBER(R[-1]C)=TRUE,R[-1]C+RC[-1]-RC[-2],RC[-1])"
        End If

Open in new window

0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
Ignore formula in http:#a39973240
corrected formula is:
=IF(ISNUMBER(R[-1]C)=TRUE,R[-1]C+RC[-1]-RC[-2],RC[-1])

Open in new window

0
 

Author Comment

by:discogs
Comment Utility
Excellent stuff Mark. I really do appreciate the time you have taken out here to help me. I have learnt a lot from you in this question, and have already identified tonnes of work that I can apply this strategy to. Cheers. TA
0
 

Author Closing Comment

by:discogs
Comment Utility
Well deserved points.  Thanks for your patience. TA
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
No problem.  Glad I could help and thanks for the points.
0
 

Author Comment

by:discogs
Comment Utility
Completed code!

Option Explicit

Open in new window


Public Sub transfer_icbr()
    Dim shtFrom As Worksheet, shtTo As Worksheet, lastUpdate As String, rngTo As Range, rngFrom As Range, _
    lastrow As Long, response As Integer, msg As String, title As String, style As String, id As String
    
    lastUpdate = "01/29/2012"
    
    'turn off updates for code execution ->
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
        .DisplayAlerts = False
    End With
    
    'setting variables
    Set shtFrom = ThisWorkbook.Sheets("csb")
    Set shtTo = ThisWorkbook.Sheets("icbr_append")
    id = shtTo.Range("icbr_append_name")
    
    'checking for no data in destination
    If IsEmpty(shtTo.Range("icbr_append_start")) = True Then
        Set rngTo = shtTo.Range("A2")
    Else
        Set rngTo = shtTo.Range("A1").End(xlDown).Offset(1)
    End If
        
    With shtFrom.Range("tbl_cashbook")
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:= _
            ">" & Format(lastUpdate, "mm/dd/yyyy")
        .AutoFilter Field:=5, Criteria1:=id
        Set rngFrom = Intersect(.SpecialCells(xlCellTypeVisible), .Range(.Rows(2), .Rows(.Rows.Count)))
        If rngFrom Is Nothing Then
            msg = "Cashbook could not locate any records associated with: " & id & "" & vbCrLf & " " & vbCrLf & _
            "Please check that there are records for this estate or alternatively, select another name and try again."
            title = "Records not found"
            style = vbOKOnly + vbInformation
            response = MsgBox(msg, style, title)
        Else
            Intersect(rngFrom, .Range("A:A,D:E,I:I,L:L,K:K")).Copy rngTo
            shtTo.Range(rngTo.Offset(0, 6), _
            rngTo.Offset(shtTo.Range("A1").End(xlDown).Row - rngTo.Row, 6)).FormulaR1C1 = "=IF(ISNUMBER(R[-1]C)=TRUE,R[-1]C+RC[-1]-RC[-2],RC[-1])"
        End If
        .AutoFilter
    End With
    
    'turn updates back on
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
        .DisplayAlerts = True
    End With
End Sub

Open in new window

0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

A little background as to how I came to I design this code: Around 5 years ago I designed an add-in that formatted Excel files to a corporate standard, applying different cell colours and font type depending on whether the cells contained inputs,…
Dealing with unintended Excel Active-X resizing quirks (VBA code simulates "self correction") David Miller (dlmille) Intro Not everyone is a fan of Active-X controls in spreadsheets (as opposed to the UserForm approach, the older Form controls …
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.
This Micro Tutorial will demonstrate how to use a scrolling table in Microsoft Excel using the INDEX function.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now