Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1510 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  fonction aujourd'hui en vba

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fonction aujourd'hui en vba

n°1291924
Angelo38
Posté le 25-01-2006 à 14:10:43  profilanswer
 

bonjour, je souhaiterai savoir comment programmer la fonction aujourd'hui se trouvant dans Insertion/fonction en vba  
j'ai voulu faire une macro préenregistré mais il me la fais comme si c'étais du texte (pas tres clair ce que je raconte ; je met le code c'est plus parlant)
 
[code]
Sub Macro4()
 
    ActiveCell.FormulaR1C1 = "=TODAY()"
     
End Sub
sauf que moi je souhaite récupérer la date actuelle pour la mettre dans une variable :
 
date =today() ne marche pas y a t'il une autre fonction ? ou que dois je faire ??

mood
Publicité
Posté le 25-01-2006 à 14:10:43  profilanswer
 

n°1291930
ladislas26​09
Posté le 25-01-2006 à 14:18:58  profilanswer
 

salut,
 
déjà évite les variables qui portent le nom de fonctions. Date est également un type de données. Bonjour la confusion dans tout ça.
 
Mais rassure toi, tu y était presque
 
dim today as date
today = date
 et voilà.
tu as aussi now, qui retourne la date et l'heure système et time si tu veux juste l'heure.
 
++

n°1291940
Angelo38
Posté le 25-01-2006 à 14:29:17  profilanswer
 

ha ba d'accord!!  je connaissais pas la fonction "date" par contre le type je connaissais mais j'ai mis ca pour me faire comprendre. Dans mon programme je mettrais autre chose ne t'inquiete pas ;)

n°1777961
jokair
Posté le 26-08-2008 à 19:20:26  profilanswer
 

Bonjour,
 
Dans une feuille excel, je cherche à trouver selctionner la cellule contenant la date d'aujourd'hui en cliquant sur une CommandBox:
 
Voici le code que j'ai mis:
 

Code :
  1. Private Sub cmd_today_Click()
  2. Dim today As Date
  3. Dim celluletrouvee As Range
  4. Dim ligne As Integer
  5. Dim colonne As Integer
  6. today = Date
  7. Set celluletrouvee = Range("D3:HE3" ).Find(today, lookat:=xlWhole)
  8. If celluletrouvee Is Nothing Then
  9. MsgBox ("pas trouvé " + Chr(13) + Str(Date))
  10. Else
  11. ligne = celluletrouvee.Row
  12. col = celluletrouvee.Column
  13. MsgBox ("trouvé : ligne = " & ligne & " , colonne = " & colonne)
  14. celluletrouvee.Select
  15. End If
  16. End Sub


 
Mais, la fonction utilisée ne me trouve aucune cellule (alors que bien sur, il y a une cellule qui contient la date du jour...)
Par contre, cette cellule est une formule (=case de gauche +1)
 
Merci pour vos contrib'
 
@+

n°1777972
86vomito33
Posté le 26-08-2008 à 19:34:50  profilanswer
 

comme ca ca marche

Code :
  1. Sub test()
  2. For Each cel In Sheets("Feuil1" ).Cells
  3. If cel = Date Then
  4. MsgBox ("trouvée en " & Chr(cel.Column + 64) & cel.Row)
  5. GoTo fin
  6. End If
  7. Next cel
  8. fin:
  9. End Sub


Message édité par 86vomito33 le 26-08-2008 à 19:35:08
n°1777988
jokair
Posté le 26-08-2008 à 19:57:50  profilanswer
 

Merci.
Il y a de ça, le problème, c'est qu'il me trouve la date du jour qui est indiquée en cellule B1 alors que je veux qu'il trouve la cellule sur la ligne 3...
On ne peut pas affecter une plage de donnée ???
 
@+
 

n°1777993
86vomito33
Posté le 26-08-2008 à 20:01:33  profilanswer
 

dans ce cas là, la plage correspond à toute la feuille. si tu veux la plage A3:C5 tu remplace

Code :
  1. For Each cel In Sheets("Feuil1" ).Cells


par

Code :
  1. For Each cel In Sheets("Feuil1" ).range("a3:C5" )


par contre je vois pas trop ton pb
 
edit:
mets ton fichier sur cjoint


Message édité par 86vomito33 le 26-08-2008 à 20:03:58
n°1778017
jokair
Posté le 26-08-2008 à 21:09:26  profilanswer
 

Tu as tout juste 86vomito33 !!!, j'ai fait:
 

Code :
  1. Sub today()
  2. Dim cel As Object
  3. For Each cel In ActiveSheet.Range("D3:HE3" )
  4. If cel = Date Then
  5. cel.Select
  6. GoTo fin
  7. End If
  8. Next cel
  9. fin:
  10. End Sub


 
 
Et une petite dernière requête, vu que rien ne te résiste !!!
 
Je cherche à sélectionner la même cellule mais sur une autre feuille appelée "toto" ou Feuil4, j'essaie ceci sans succès:
 
 
 

Code :
  1. For Each cel In Worksheets(4).Range("D3:HE3" )
  2. If cel = Date Then
  3. cel.Select
  4. GoTo fin
  5. End If
  6. Next cel
  7. fin:


 
si tu trouve je serai  :bounce:   :D

n°1778045
86vomito33
Posté le 26-08-2008 à 22:30:31  profilanswer
 

bizarre
 
worksheets(4) correspond a la quatrieme feuille du workbook (classeur)
donc ca serait pt worksheets("toto" ).cel.select

n°1778053
jokair
Posté le 26-08-2008 à 22:43:19  profilanswer
 

Je vais t'expliquer plus en détail ce que je souhaite faire:
 
Dans un classeur excel, j'ai 2 feuilles:
 
- plan de charge
- planning matériel
 
Chacune dipose des dates jour par jour en colonne et de nom de personnes/liste de matériel en ligne.
Les dates du jour sont sur la ligne 3 des 2 feuilles.
 
J'ai réussi à faire une CommandBox qui me trouve la cellule contenant la date du jour dans l'ActiveWorkSheet.
 
Par contre, je cherche à créer une seconde CommandBox qui me permettrait en un clic d'aller sur la cellule de la date de l'ActiveCell de ma feuille.
 
Exemple: ci je suis sur le 30/09/2008 sur ma feuille "Plan de Charge", je vous cliquer sur le bouton et qu'il m'affiche (me sélectionne) la cellule 30/09/2008 de ma feuille "planning matériel"
 
J'espère avoir été clair !!!
 
Voici le code que j'ai mis:
 

Code :
  1. Private Sub cmd_date_plan_charge_Click()
  2. Dim date_plan As Date
  3. Dim cel As Object
  4. date_plan = Cells(3, ActiveCell.Column).Value
  5. MsgBox (Str(date_plan) + Chr(13) + Str(Date))
  6. For Each cel In Worksheets(4).Range("D3:HE3" )
  7. If cel = Date Then
  8. cel.Select
  9. GoTo fin
  10. End If
  11. Next cel
  12. fin:
  13. End Sub


 
Il me met une erreur d'exécution sur la ligne cel.Select
 
Sinon, le fichier est ici:
 
http://www.cijoint.fr/cjlink.php?f [...] IdXWO3.xls
 
@+


Message édité par jokair le 26-08-2008 à 22:49:40
mood
Publicité
Posté le 26-08-2008 à 22:43:19  profilanswer
 

n°1778067
86vomito33
Posté le 26-08-2008 à 23:28:09  profilanswer
 

ahaha
:)
 
quand je disais worksheets(4) je voulais dire 4ieme onglet et non pas Feuil4.
bref
 
worksheets(4) n'existe pas tu n'as que 3 feuilles
remplace worksheets(4) par worksheets("Plan de charge" ) ou par worksheets("Planning Matériel" ) en fonction de ce que tu veux


Message édité par 86vomito33 le 26-08-2008 à 23:30:41
n°1778071
jokair
Posté le 26-08-2008 à 23:41:25  profilanswer
 

Ok, j'ai compris le coup du Worksheet(4)
 
Par contre, le VBA n'aime pas qu'on "appelle" une autre feuille...  
Peut-être le ActiveCell qui est sur une feuille et la cellule selectionnée qui est sur une autre:
 

Code :
  1. Private Sub cmd_date_plan_charge_Click()
  2. Dim date_plan As Date
  3. Dim cel As Object
  4. date_plan = Cells(3, ActiveCell.Column).Value
  5. MsgBox (Str(date_plan) + Chr(13) + Str(Date))
  6. For Each cel In Worksheets("Plan de charge" ).Range("D3:HE3" )
  7. If cel = date_plan Then
  8. cel.Select
  9. GoTo fin
  10. End If
  11. Next cel
  12. fin:
  13. End Sub


 
Si je remplace Worksheets("Plan de charge" ) (ou WorkSheets(2)) par Worksheets("Planning matériel" ), ça fonctionne...
C'est pas loin, mais c'est toujours pas ça.
 
Merci en tout cas de te soucier de mon cas ! :hello:  

n°1778072
86vomito33
Posté le 26-08-2008 à 23:45:25  profilanswer
 

dernière solution  de la soiree
 
worksheets ("planning materiel" ).select ou l'autre
cel.select
 
edit:  
chez moi ca a l'air de marcher


Message édité par 86vomito33 le 26-08-2008 à 23:50:01
n°1778075
jokair
Posté le 26-08-2008 à 23:59:11  profilanswer
 

tu es un chef !!!
 
Merci encore et bonne nuit !!!
 
@ bientôt


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  fonction aujourd'hui en vba

 

Sujets relatifs
fonction remplacementfonction select count???[resolu-merci!]
comment marche la fonction fade in et fade out ?[bash] Fonction qui affiche ou execute les commandes
Scanneur de balise html, reitération d'une fonctionFonction fcntl
Fonction SQLRequest non définie![Résolu]Fonction Pos : mon code ne marche pas
Utilser une fonction d'une DLL d'un driver XP dans une autre DLL ?excel : fonction pour effacer le contenu d'une cellule
Plus de sujets relatifs à : fonction aujourd'hui en vba


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR