Condition IF problem in Excel VBA

W

Werner

Hi,

I have a code to compare two lists. It takes out the values on one o
the list that match the other table's list. I want to add a thir
condition for the data to be retained and copied in my form.

It must also add the condition that each corresponding value of thi
line of code must all meet the condition that it equal
worksheets("Formulaire").range("AB2).Value. I write in my form at "AB2
the IDU and then while comparing the two IDU list from the "UE" and "PI
lists, I also check if the matching rows also meet the the conditio
that it equals the value in cell "AB2" of sheet "Formulaire". It woul
look something like

If Trim(UCase(rngPI)) = Trim(UCase(rngUE))
worksheets("Formulaire").range("AB2).Value Then

Or something like

If Trim(UCase(rngPI)) = Trim(UCase(rngUE)) AND Trim(UCase(rngPI))
worksheets("Formulaire").range("AB2).Value Then

But it's weird. Written like that, I doesn't get any answers at all. S
there's must be an error. It's like the code doesn't catch the value o
AB2 at all and nothing matches.

Here's the complete code so far and after that, there's a link to
sample of my Excel file with explanations :

Sub Transfer_PI_Data()

' Local Variables
Dim rngUEData As Range, rngUE As Range, rngPIData
As Range, rngPI As Range

' Set UE data range
Set rngUEData
Worksheets("UE").Range(Worksheets("UE").Range("CHAMP_DÉBUT_BD").Offset(1
0), Worksheets("UE").Range("A65536").End(xlUp))

' Set PI data range
Set rngPIData
Worksheets("PI").Range(Worksheets("PI").Range("CHAMP_DÉBUT_BD").Offset(1
0), Worksheets("PI").Range("A65536").End(xlUp))

Dim IDUform As Range

'*******The following line is pointin to the cell that contains th
third condition value. ******
IDUform = Worksheets("Formulaire").Range(28, 2).Value

' Transfer PI data for each UE data entry
Application.Calculation = xlCalculationManual
For Each rngUE In rngUEData
For Each rngPI In rngPIData

' ****It's here, in the following line, that I want rngPI and rngU
matching data to be equal to the third specified value at AB2 in shee
"formulaire" ****

If Trim(UCase(rngPI)) = Trim(UCase(rngUE)) Then
If Worksheets("Formulaire").Range("A12") = "" Then

Worksheets("Formulaire").Range("A12").Range("A1:AD1")
rngPI.Range("A1:AD1").Value
Else

Worksheets("Formulaire").Range("B65536").End(xlUp).Offset(1
-1).Range("A1:AD1") = rngPI.Range("A1:AD1").Value
End If
End If
Next rngPI
Next rngUE
Application.Calculation = xlCalculationAutomatic

End Sub

http://agora.ulaval.ca/~jjdou/Loclis04sample.zip

Bye!

Werne
 
W

Werner

Forget about it, I've found my error. Here's the working code for
matching two data lists and matching the matching results with another
specified code number to have only the results matching this third
condition :

Sub Transfer_PI_Data()

' Local Variables
Dim rngUEData As Range, rngUE As Range, rngPIData
As Range, rngPI As Range

' Set UE data range
Set rngUEData =
Worksheets("UE").Range(Worksheets("UE").Range("CHAMP_DÉBUT_BD").Offset(1,
0), Worksheets("UE").Range("A65536").End(xlUp))

' Set PI data range
Set rngPIData =
Worksheets("PI").Range(Worksheets("PI").Range("CHAMP_DÉBUT_BD").Offset(1,
0), Worksheets("PI").Range("A65536").End(xlUp))

Dim IDUform As Long

IDUform = Worksheets("Formulaire").Range("AB2").Value

' Transfer PI data for each UE data entry
Application.Calculation = xlCalculationManual
For Each rngUE In rngUEData
For Each rngPI In rngPIData
If Trim(UCase(rngPI)) = Trim(UCase(rngUE)) Then
If rngPI = IDUform Then
If Worksheets("Formulaire").Range("A12") = "" Then

Worksheets("Formulaire").Range("A12").Range("A1:AD1") =
rngPI.Range("A1:AD1").Value
Else

Worksheets("Formulaire").Range("B65536").End(xlUp).Offset(1,
-1).Range("A1:AD1") = rngPI.Range("A1:AD1").Value
End If
End If
End If
Next rngPI
Next rngUE
Application.Calculation = xlCalculationAutomatic


End Sub

Bye!

Werner
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top