Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/07/2006, 15h05   #1
Membre régulier
 
Avatar de lou87
 
Inscription : février 2006
Messages : 349
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : février 2006
Messages : 349
Points : 81
Points : 81
Par défaut [vba] jour férié

Bonjour !

Je me suis fait beaucoup aider par un collègue pour ce code...

Il me semble tout juste, mais quand je le lance, il ne me met pas les cellules des jours fériés en couleur, je voudrais savoir où il y aurait une erreur possible.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Function JourFerie(datetraitement As Date) As Boolean
 
Dim Paques As String
Dim Pentecote As String
Dim Ascension As String
Dim an As Integer
Dim Mois As Integer
Dim jour As Integer
Dim i As Integer
Dim j As Integer
 
    'partie pour retrouver paques, ascension et pentecote (jours feries non fixes)
    an = CInt(Mid(datetraitement, 7, 4))
    Mois = 3
    jour = 23 + modulo(19 * modulo(an, 19) + 24, 30) + modulo(2 * modulo(an, 4) + 4 * modulo(an, 7) + 6 * modulo(19 * modulo(an, 19) + 24, 30) + 5, 7)
    If jour / 31 > 1 Then
        Mois = Mois + 1
        jour = jour - 31
    End If
    Paques = Format(jour & "/" & Mois & "/" & an, "dd/mm/yyyy")
    jour = jour + 8
    Mois = Mois + 1
    If jour / 31 > 1 Then
        Mois = Mois + 1
        jour = jour - 31
    End If
    Ascension = Format(jour & "/" & Mois & "/" & an, "dd/mm/yyyy")
    jour = jour + 10
    If jour / 31 > 1 Then
        Mois = Mois + 1
        jour = jour - 31
    End If
    Pentecote = Format(jour & "/" & Mois & "/" & an, "dd/mm/yyyy")
 
    'comparaison avec les jours fériés français connus
    If CStr(datetraitement) = Paques Or CStr(datetraitement) = Ascension Or CStr(datetraitement) = Pentecote _
        Or CStr(Mid(datetraitement, 1, 5)) = "01/01" Or CStr(Mid(datetraitement, 1, 5)) = "01/05" Or CStr(Mid(datetraitement, 1, 5)) = "08/05" _
        Or CStr(Mid(datetraitement, 1, 5)) = "14/07" Or CStr(Mid(datetraitement, 1, 5)) = "15/08" Or CStr(Mid(datetraitement, 1, 5)) = "01/11" _
        Or CStr(Mid(datetraitement, 1, 5)) = "11/11" Or CStr(Mid(datetraitement, 1, 5)) = "25/12" Then
        JourFerie = True
 
        For i = 7 To i = 96
        For j = 1 To j = 23
        DocXL.Parent.Sheets.Cells(i, j).Font.Color = RGB(255, 0, 0)
 
        For j = DocXL.Parent.Cells(i, 1) To DocXL.Parent.Cells(i, 96) = ""
        Next
    Else
        JourFerie = False
    End If
 
    'je converti en date
    ferie = CDate(JourFerie) 
 
End Function
Merci d'avance ^^
__________________
Programmer c'est comme gravir une montagne...
Il faut procéder par étapes...
(? auteur ?)
Un seul être vous manque et tout est dépeuplé.
Lamartine (merci chat hotplug ^^)
lou87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2006, 15h10   #2
Membre régulier
 
Inscription : juin 2005
Messages : 86
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 86
Points : 80
Points : 80
Citation:
If CStr(datetraitement) = Paques Or CStr(datetraitement) = Ascension Or CStr(datetraitement) = Pentecote _
Or CStr(Mid(datetraitement, 1, 5)) = "01/01" Or CStr(Mid(datetraitement, 1, 5)) = "01/05" Or CStr(Mid(datetraitement, 1, 5)) = "08/05" _
Or CStr(Mid(datetraitement, 1, 5)) = "14/07" Or CStr(Mid(datetraitement, 1, 5)) = "15/08" Or CStr(Mid(datetraitement, 1, 5)) = "01/11" _
Or CStr(Mid(datetraitement, 1, 5)) = "11/11" Or CStr(Mid(datetraitement, 1, 5)) = "25/12" Then
JourFerie = True

For i = 7 To i = 96
For j = 1 To j = 23
DocXL.Parent.Sheets.Cells(i, j).Font.Color = RGB(255, 0, 0)

For j = DocXL.Parent.Cells(i, 1) To DocXL.Parent.Cells(i, 96) = ""
Next
Else
Il ne manquerait pas quelques NEXT pour tes boucles for ici ?
et le dernier FOr j'ai du mal avec le = "" à la fin
xblond est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2006, 15h23   #3
Membre régulier
 
Avatar de lou87
 
Inscription : février 2006
Messages : 349
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : février 2006
Messages : 349
Points : 81
Points : 81
Et bien disons que ce dont tu as du mal, c'est ma ligne de code afin de la vider de ses valeurs, mais c'est vrai que l'on peut utiliser autre chose....

C'est mieux ça ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 For i = 7 To i = 96
        For j = 1 To j = 23
        DocXL.Parent.Sheets.Cells(i, j).Font.Color = RGB(255, 0, 0)
 
        Range DocXL.Parent.Cells(i, j).Value = .SpecialCells(xlCellTypeConstants, xlNumbers).ClearContents
 
    Else
        JourFerie = False
    End If
    Next
    Next
 
    ferie = CDate(JourFerie)
__________________
Programmer c'est comme gravir une montagne...
Il faut procéder par étapes...
(? auteur ?)
Un seul être vous manque et tout est dépeuplé.
Lamartine (merci chat hotplug ^^)
lou87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2006, 15h25   #4
Membre régulier
 
Inscription : juin 2005
Messages : 86
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 86
Points : 80
Points : 80
ca me plait plus mais tes 2 Next devraient être avant le Else
xblond est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2006, 15h29   #5
Inactif
 
Avatar de jmfmarques
 
Inscription : décembre 2005
Messages : 3 784
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 3 784
Points : 4 125
Points : 4 125
Citation:
Font.Color
Moi, c'est celà qui m'interpelle !
Sous VB, l'objet Font n'a pas de propriété Color
On utiliserait ici la propriété ForeColor, tout simplement...
Quel est l'équivalent sous VBA ? c'est là qu'il faut regarder.
jmfmarques est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2006, 15h31   #6
Membre régulier
 
Inscription : juin 2005
Messages : 86
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 86
Points : 80
Points : 80
Citation:
Envoyé par jmfmarques
Moi, c'est celà qui m'interpelle !
Sous VB, l'objet Font n'a pas de propriété Color
On utiliserait ici la propriété ForeColor, tout simplement...
Quel est l'équivalent sous VBA ? c'est là qu'il faut regarder.
docXL pour moi veut dire qu'il travaille sur une feuille Excel et là Font.Color existe selon moi
xblond est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 10h06   #7
Membre régulier
 
Avatar de lou87
 
Inscription : février 2006
Messages : 349
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : février 2006
Messages : 349
Points : 81
Points : 81
Merci xblond, j'ai modifié.
__________________
Programmer c'est comme gravir une montagne...
Il faut procéder par étapes...
(? auteur ?)
Un seul être vous manque et tout est dépeuplé.
Lamartine (merci chat hotplug ^^)
lou87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 10h30   #8
Membre régulier
 
Inscription : juin 2005
Messages : 86
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 86
Points : 80
Points : 80
Tous tes problèmes sont réglés maintenant ?
xblond est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 10h49   #9
Membre régulier
 
Avatar de lou87
 
Inscription : février 2006
Messages : 349
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : février 2006
Messages : 349
Points : 81
Points : 81
Non, il marche toujours pas le code des jours fériés, et mes autres problèmes ne sont toujours pas résolus...

__________________
Programmer c'est comme gravir une montagne...
Il faut procéder par étapes...
(? auteur ?)
Un seul être vous manque et tout est dépeuplé.
Lamartine (merci chat hotplug ^^)
lou87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 10h46   #10
Membre régulier
 
Avatar de lou87
 
Inscription : février 2006
Messages : 349
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : février 2006
Messages : 349
Points : 81
Points : 81
Un petit mot pour faire remonté ce topic, afin de peut être avoir une réponse, enfin si vous avez compris mon problème...
__________________
Programmer c'est comme gravir une montagne...
Il faut procéder par étapes...
(? auteur ?)
Un seul être vous manque et tout est dépeuplé.
Lamartine (merci chat hotplug ^^)
lou87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 12h48   #11
Membre du Club
 
Avatar de biggione
 
Inscription : juillet 2006
Messages : 99
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 99
Points : 62
Points : 62
essaye pluto ca pour mettre une cellule en couleur:
Code :
1
2
3
4
With (DocXL.Parent.Sheets.Cells(i, j).Interior)
                .ColorIndex = 39
                .Pattern = xlSolid
            End With
en espérant que ca te dépannera!!
biggione est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h44.


 
 
 
 
Partenaires

Hébergement Web