Condition IF = Month(date)

gopo

XLDnaute Junior
Bonjour,

Voila j'ai un souci pour codé ...

Je voudrais faire une boucle For, ca c'est ok mais le problème c'est ma condition .
Code:
Dim Mois As Long
Mois = Month(Date) - 1

Si Mois = 9 alors, je fait une boucle jusqu'a septembre ( c'est pour recuperer les totaux en M-1, pour faire un cumulé... ) le probleme c'est que dans mon IF = Je doit y mettre une variable qui sait que 1 = "Total janvier", 2 = "Total fevrier", 3 = "Total mars"... etc :S sinon je devrai changé le code a chaque fois ... :/

For i = 1 To 6000 Step 1
If Cells(i, 2) = ?????? Then
...........


Merci de votre aide.. si je ne suis pas assez claire veuillez répliquer !
 
Dernière édition:

gopo

XLDnaute Junior
Re : Condition IF = Month(date)

Je n'ai pas le code complet, je veux le commencer.

Je pense faire quelque chose comme ca.

Code:
Private Sub CommandButton1_Click()
           Dim Mois As Long
           Dim Check As String

                       Mois = Month(Date) - 1
                       MsgBox Mois
                        If Mois = 1 Then
                                Check = "Total Janvier"
                            Else If Mois = 2 Then
                                Check = "Total Février"
                            Else If Mois = 3 Then
                                Check = "Total Mars"
                            Else If Mois = 4 Then
                                Check = "Total Avril"
                            Else If Mois = 5 Then
                                Check = "Total Mai"
                            Else If Mois = 6 Then
                                Check = "Total Juin"
                            Else If Mois = 7 Then
                                Check = "Total Juillet"
                            Else If Mois = 8 Then
                                Check = "Total Août"
                            Else If Mois = 9 Then
                                Check = "Total Septembre"
                            Else If Mois = 10 Then
                                Check = "Total Octobre"
                            Else If Mois = 11 Then
                                Check = "Total Novembre"
                            Else If Mois = 12 Then
                                Check = "Total Décembre" 
                        End If

                            For i = 1 To 500 Step 1
                                 If Cells(i, 1) = Check Then
                                      With ThisWorkbook.Sheets("Feuil1")
                                           Variable1 = .Cells(i, 2).Value
                                      End With
                                         Set Dest = Workbooks.Open(ActiveWorkbook.Path & "\Classeur_destination.xls")
                                              With Dest.Sheets("Feuil2")
                                                     .Cells(10, 7).Value = Variable1
                                              End With
                            Exit For
                                  End If

End Sub

Cela est il correct ou il y a t'il des failles? Merci a toi de m'aider
 

gopo

XLDnaute Junior
Re : Condition IF = Month(date)

Bon j'ai enlevé les Else If, j'ai cru que ca marché en VBA ... j'ai mis des If.. End If.. etc

Tout marche mais peux tu stp me donné le même code mais avec des Cases ? je sais que c'est plus simple mais je ne sais pas l'utiliser..

Merci !
 

Raja

XLDnaute Accro
Re : Condition IF = Month(date)

Re,

Hum, je ne sais toujours pas ce que tu veux. Mais quelques conseils tout de même.

Remplace les lignes par les suivantes :

Code:
Dim Mois As Long

par :

Code:
Dim Mois As Byte
c'est largement suffisant pour 12 mois

Code:
Mois = Month(Date) - 1
Tu aura un problème au mois de janvier.

donc par :

Code:
Mois = Month(Date)


Code:
If Mois = 1 Then
                                Check = "Total Janvier"
                            Else If Mois = 2 Then
                                Check = "Total Février"
                            Else If Mois = 3 Then
                                Check = "Total Mars"
                            Else If Mois = 4 Then
                                Check = "Total Avril"
                            Else If Mois = 5 Then
                                Check = "Total Mai"
                            Else If Mois = 6 Then
                                Check = "Total Juin"
                            Else If Mois = 7 Then
                                Check = "Total Juillet"
                            Else If Mois = 8 Then
                                Check = "Total Août"
                            Else If Mois = 9 Then
                                Check = "Total Septembre"
                            Else If Mois = 10 Then
                                Check = "Total Octobre"
                            Else If Mois = 11 Then
                                Check = "Total Novembre"
                            Else If Mois = 12 Then
                                Check = "Total Décembre" 
                        End If

par :

Code:
Check = "Total " & MonthName(Mois)
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Condition IF = Month(date)

bonjour a tous

une version plus simple

Code:
Mois = Month(Date) - 1
If Mois = 0 Then Mois = 12
Check = "Total " & Format(CDate("01/" & Mois & "/2008"), "mmmm")

Edit: Mes excuses a Raja je n'avais pas lu l'integralité de ton post
 
Dernière édition:

gopo

XLDnaute Junior
Re : Condition IF = Month(date)

Enfaite, je vien de m'apercevoir que ce que j'avais fait n'est pas réelement ce qu'il me faut ... :confused:

Il faudrait que Pour le groupe de mot "Total Janvier" soit égal a la valeur 1, que "Total Février" soit égal a la valeur 2 ... etc !

Voici une petite idée pour mettre sur la voix !

Private Sub CommandButton1_Click()
Dim Mois As Byte
Dim Total As Integer

"Total Janvier" = 1
"Total Dévrier" = 1
"Total Mars" = 3
"Total Avril" = 4
"Total Mai" = 5
"Total Juin" = 6
"Total Juillet" = 7
"Total Août" = 8
"Total Septembre" = 9
"Total Octobre" = 10
"Total Novembre" = 11
"Total Décembre" = 12

Mois = Month(Date)
For i = 1 To 500 Step 1
If Cells(i,1) < Mois Then
Total = Cells(i,1) + Total
End If
Next
[Code de copie...]

End Sud

Pour finir j'ai un soucis avec ce que raja ma donné
Check = "Total " & MonthName(Mois)
Cela me donne le Mois avec une minuscule au début du mois :( ca ne trouve donc pas mon Total Janvier il cherche Total janvier....

edit : ceci me donne aussi le mois avec la minuscule
Check = "Total " & Format(CDate("01/" & Mois & "/2008"), "mmmm")
 
Dernière édition:

Raja

XLDnaute Accro
Re : Condition IF = Month(date)

Re,

Je pense que tu compliques la vie pour rien. Si j'ai bien compris, essaye ce code suivant :

Code:
Private Sub CommandButton1_Click()
Dim Total As Long
Total = WorksheetFunction.SumIf(Range("A1:A500"), "<" & Month(Date))
MsgBox Total
End Sub

Reviens avec plus de clarté si ce n'est pas ça.

édit : à mon tour de te saluer, pierrejean
 
Dernière édition:

gopo

XLDnaute Junior
Re : Condition IF = Month(date)

Voici un fichier ci-joint, d'abord merci pour votre aide c'est super gentil !

Je doit additionné tout les totals de chaque mois en M-1, pour pouvoir faire des statistiques quand je veux donc on est au mois de septembre il me faut le total de Janvier a Août que je copierai dans un auter classeur mais ca je m'en occupe .

Le n° des lignes peuvent changer donc il faut faire une boucle pour trouver "Total %Mois%".

J'espere et je pense que ca va vous aider a me comprendre.

Désolé j'ai réelement du mal a expliquer ce que je souhaite.

ps : le fichier trop gros je ne peux pas le diminué voici le lien pour le télécharger -> Free - Envoyez vos documents <-
 

pierrejean

XLDnaute Barbatruc
Re : Condition IF = Month(date)

Re

Teste ceci:

Code:
Sub test()
Mois = Month(Date) - 1
limite = "Total " & Format(CDate("01/" & Mois & "/2008"), "mmmm")
For n = 1 To Range("A65536").End(xlUp).Row
  If InStr(Range("A" & n), "Total") <> 0 Then
    total = total + Range("B" & n)
  End If
  If UCase(Range("A" & n)) = UCase(limite) Then Exit For
Next n
MsgBox (total)
End Sub
 

gopo

XLDnaute Junior
Re : Condition IF = Month(date)

je vais vous remercier a chaque réponse, car cela vous est dû. MERCI !

Votre code marche pour le fichier que je voux est envoyer, je l'ai testé sur MON fichier, mais cela donne un mauvais résultat, Car sur celui que je vous est envoyer j'ai supprimé tout les chiffres qui se trouve entre Total Janvier et Total Février ( journée ) etc... et j'ai supprimer les chiffres se trouvant dans les autres colonnes, est ce que ca peut venir d'ici le mauvais résultat ?

Je vous renvoie ci joint ( via free ) le fichier avec tout les chiffres, pour que vous testiez.

ps : résultat trouvé avec votre code : 6037690 resultat souhaité : 3016693 ( janvier à Août )

Fichier joint : Free - Envoyez vos documents
 

pierrejean

XLDnaute Barbatruc
Re : Condition IF = Month(date)

Re

le probléme etait du au fait qu'il existe des "Total semaine"
Voici une version qui les exclue du total

Code:
Private Sub CommandButton1_Click()
Mois = Month(Date) - 1
limite = "Total " & Format(CDate("01/" & Mois & "/2008"), "mmmm")
For n = 1 To Range("A65536").End(xlUp).Row
  If InStr(Range("A" & n), "Total") <> 0 And InStr(Range("A" & n), "Total semaine") = 0 Then
    total = total + Range("B" & n)
    If UCase(Range("A" & n)) = UCase(limite) Then Exit For
  End If
Next n
MsgBox (total)
End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane