jour date week end

jour date week end - VB/VBA/VBS - Programmation

Marsh Posté le 08-06-2005 à 17:14:01    

Hi tt l monde,
Voila
J'ai sur excel 3 colonnes.
Premier col = jour, deuxieme colon = date et troisieme colone pour préciser si Week end.
J'ai déja fait ceci : j'ai créer une fonction qui ramene le jour à partir de date. et maintenant je voudrai préciser dans la troisieme colone lé WE.
voilà déja mon script, mé ca plante.
 
    For Each o In Range("A3:A160" )
        If DateEnLettres("B3" ) = "samedi" Then
        Cells(3 + k, 3).Value = "WE"
        k = k + 1
        End If
        Next
End Sub
 
 
où la fonction DateEnLettres :
 
Function DateEnLettres(D As Date) As String
Dim NomJour$, TexteJour$, NomMois$, TexteAnnee$, Liaison$
 
  NomJour = Format(D, "dddd" ) & " "
  TexteJour = Trim(NbVersTexte(Day(D))) & " "
  NomMois = Format(D, "mmmm" ) & " "
  Liaison = "de l'an "
  TexteAnnee = Trim(NbVersTexte(Year(D)))
 
  If TexteJour = "" Or TexteAnnee = "" Then
  DateEnLettres = "#ERREUR!#"
  Else
    DateEnLettres = NomJour
    '& TexteJour & NomMois & Liaison & TexteAnnee
  End If
 
End Function
 
est ce qu'il y a qlq 1 pr m'aider à l fér, car jé peu de compétence en la matiére.
Merci d'avance

Reply

Marsh Posté le 08-06-2005 à 17:14:01   

Reply

Marsh Posté le 08-06-2005 à 17:54:28    

ca plante où ? , quel message d'erreur ??

Reply

Marsh Posté le 09-06-2005 à 10:02:36    

C sur  
If DateEnLettres("B3" ) = "samedi" Then  
Erreur '13' incompatibilité de type. Mé pourtant la colonne B3 est une date.
Ok

Reply

Marsh Posté le 09-06-2005 à 10:56:04    

non "B3" est du texte
 

Reply

Marsh Posté le 09-06-2005 à 11:25:10    

Comment faire pour lui passer alors un argument date. Et en plus, tout les valeurs de la colonne B sont tous des dates.
En résumé, si la date dans la colonne B est week end alors je dois mettre en colonne C WE.
bon continuation

Reply

Marsh Posté le 09-06-2005 à 11:45:41    

DateEnLettres("B3" ) <- ici ton paramétre est le mot "B3", c'est une chaine de caractére
 
tu dois faire passer le contenu de ta cellule B3 qui lui est une date
 
>> DateEnLettres(range("B3" ))

Reply

Marsh Posté le 09-06-2005 à 14:47:54    

Oui, et j'ai fait cela :
If DateEnLettres(Range("B3" )) = "samedi" Then
      Cells(3, 3).Value = "WE"
End If
Ca n bug pa, mais ca n'affiche pas WE dans la cellule (3,3).
a tt à l'heur

Reply

Marsh Posté le 09-06-2005 à 14:54:47    

:non: attention  
NomJour = Format(D, "dddd" ) & " "
 
tu compare "samedi" et "samedi " avec un espace à la fin

Reply

Marsh Posté le 11-06-2005 à 21:53:25    

La solution adoptée me parraît bien compliquée.
De plus tu utilises un objet (cellule) et tu n'en utilises pas les propriétés et méthodes.
 
Voici quelque chose d'un peu plus simple:

  Dim o As Variant
  Dim iDay As Integer
  For Each o In Range("A3:A160" )
    iDay = Weekday(o.Cells(1, 2))
    If iDay = vbSunday Or iDay = vbSaturday Then
    o.Cells(1, 3) = "WE"
    End If
  Next o


Message édité par AlainTech le 11-06-2005 à 21:53:48

---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 21-07-2005 à 14:23:14    

Salut, ça fé longtemps.
Mais le macros marche à merveille avec des retouches par ci et par là.
Je vous remercie les gars. j'aurai encore d'autres programmes à vous soumettre.
A trés bientôt


Message édité par nono914 le 21-07-2005 à 14:23:41
Reply

Marsh Posté le 21-07-2005 à 14:23:14   

Reply

Marsh Posté le 22-07-2005 à 02:42:20    

Me revoilà,
J'ai écrit cette fonction trés simple :
 
Public Function NumeroInfo2(D As String) As String  
  NumeroInfo2 = "MMT" & Right(Year(Date), 2) & D  
End Function
 
où D correspond à une colonne de numéro avec format 00 (format perseonalisé). C'est à dire 01, 02 ...11, 11.
Quand j'utilise la fonction j'arrive pas à avoir MMT0501, MMT0502...MMT0510, MMT0511(c'est que je veux avoir).Je n'ai que MMT051, MMT052,...MMT0510, j'ai essaié les if et for each.
Bah voilà,

Reply

Marsh Posté le 22-07-2005 à 05:12:24    

Le format de cellule ne sert que pour l'affichage.
Essaye ça:

Public Function NumeroInfo2(D As String) As String  
  NumeroInfo2 = "MMT" & Right(Year(Date), 2) & Format(D, "00" )    
End Function


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed