View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Marie Lavoie Marie Lavoie is offline
external usenet poster
 
Posts: 24
Default "If" VB Syntaxe

Thank you, I was trying to put the date as only month and year and compare,
but was not able. I'll try it.

Regards,

Marie


"Dick Kusleika" a écrit dans le
message de ...
Marie

I don't think that "mm" is a valid interval for DatePart. Try using just
"m".

You can also use Format, which is what I prefer

If Format(Range("A" & j).Value, "mm-yyyy") = Format(DateO, "mm-yyyy") Then

--
Dick Kusleika
MVP - Excel
Excel Blog - Daily Dose of Excel
www.dicks-blog.com

"Marie Lavoie" wrote in message
...
Thank You. Looks like I was doing the good thing. But then, can

someone
tell me what's wrong with this:

If DatePart("yyyy", Range("A" & j)) = DatePart("yyyy", DateO) And _
DatePart("mm", Range("A" & j)) = DatePart("mm", DateO) Then


Here is more of the program if you need it to understand:
The point is to have a list of Amount by Month for a product, from a

list
where I have amounts per date from a product.
Product is in A, Date in E and Amount in G.
I plan to add a "sort" after this will work.
-------
'Déclaration des variables
Dim i As Integer ' Compteur
Dim j As Integer ' Compteur

Dim DateO As Date ' Année et mois
Dim Montant As Currency ' Montant du recouvrement
--------
Sub LectureCode()

i = 5 'initialisation du compteur
Sheets("Principale").Select

'Lecture du code
Do While Range("A" & i) < Empty

DateO = Range("E" & i)
Montant = Range("G" & i)

'Série de tests
Select Case Range("A" & i)
[Here I chose a sheet with select case, I know it works, I use it in

an
other program]
End Select

'Inscription des données

j = 16 ' Première ligne d'écriture

des
dates
Do While Range("A" & j) < Empty ' On passe les lignes déjà
écrites
If DatePart("yyyy", Range("A" & j)) = DatePart("yyyy", DateO)

And
_
DatePart("mm", Range("A" & j)) = DatePart("mm", DateO) Then
' Si la date existe déjà
Calcul = Range("C" & j) + Montant ' On calcul le nouveau

montant
Range("C" & j).FormulaR1C1 = Calcul ' On inscrit le nouveau
montant
Exit Do ' On sort de la boucle
Else
j = j + 1
End If
Loop

If Range("A" & j) = Empty Then ' Si la date n'existe pas
Selection.EntireRow.Insert ' Insertion une ligne
Range("A" & j) = Format(DateO, "yy/mm") ' Inscription de la date
Range("C" & j).FormulaR1C1 = Montant ' Inscription du montant
End If

'Préparation à la prochaine boucle
i = i + 1
Sheets("Principale").Select

Loop

End Sub
----

Thank you.

Marie



De: "SunTzuComm"
Objet: "If" VB Syntaxe
Date: 4 juin 2004 10:53

Here's an example; you can also use Or instead of And:

If A = B And C = D Then
If E = F And G = H Then
... and so on
End If
End If

Regards,
Wes