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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  comment récuperer des information donner par l'utilisateur?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment récuperer des information donner par l'utilisateur?

n°1265265
Angelo38
Posté le 13-12-2005 à 10:52:22  profilanswer
 

Bonjour à tous,  
je souhaiterais faire une petite application qui construisse un tableau avec les dates en enlevant les week end  
J'ai eu donc comme idée de demander à l'utlisateur le 1er du mois tombe quel jour (lundi, mardi...) puis en fonction de la réponse enlevé les bonne date  
Le seul problème c'est que je sais vraiment pas comment faire pour :
- demander l'information à l'utilisateur  
- récupérer cette info
 
quelqu'un pourrai m'aider ? :??:

Message cité 1 fois
Message édité par Angelo38 le 13-12-2005 à 14:18:07
mood
Publicité
Posté le 13-12-2005 à 10:52:22  profilanswer
 

n°1265286
cvb
Posté le 13-12-2005 à 11:01:30  profilanswer
 

Angelo38 a écrit :

Bonjour à tous,  
je souhaiterais faire une petite application qui construisse un tableau avec les dates en enlevant les week end  
J'ai eu donc comme idée de demander à l'utlisateur le 1er du mois tombe quel jour (lundi, mardi...) puis en fonction de la réponse enlevé les bonne date  
Le seul problème c'est que je sais vraiment pas comment faire pour :
- demander l'information à l'utilisateur  
- récupérer cette info
 
quelqu'un pourrai m'aider ? :??:


 
Si tu veux construire un tableau avec les dates et les jours excepté les week-end, tu n'as pas besoin de l'intervention de l'utilisateur :pt1cable:   ! Tu prend une date et un jour de réference, tu construit ton tableau avec ça ! La suite ce sont des maths. Tu sais qu'une journée fait que 24 heure, qu'une semaine est composé de 7 jours, les mois de 28,30,31 selon les cas (annéer bixestile que tu devras gérer) et qu'un mois est composé de 4 semaine. A toi de jouer, petit scarabet !  :D


Message édité par cvb le 13-12-2005 à 11:02:51
n°1265297
mareek
Et de 3 \o/
Posté le 13-12-2005 à 11:03:29  profilanswer
 

Utilise la fonction InpuBox:
http://msdn.microsoft.com/library/ [...] putBox.asp


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°1265311
Angelo38
Posté le 13-12-2005 à 11:11:12  profilanswer
 

j'suis d'accord avec toi cvb mais pour le jour de référence il faut bien demander à l'utlisateur non? ou alors calculer à partir d'un jour au hasard (par ex aujourd'hui) et en déduir les autre? je pense que cette solution risque d'etre longue pour moi car l'application  doit rester en place assez longtemps donc pour faire ca sur plusieur année ca risque d'etre difficile  
de plus le cas année bixestile et des mois et assez complexes enfin je l'ai deja fais mais en langage c et vu que je débute en vba je pense que ca va etre trop compliqué pour moi

n°1265335
cvb
Posté le 13-12-2005 à 11:23:43  profilanswer
 

Angelo38 a écrit :

j'suis d'accord avec toi cvb mais pour le jour de référence il faut bien demander à l'utlisateur non? ou alors calculer à partir d'un jour au hasard (par ex aujourd'hui) et en déduir les autre? je pense que cette solution risque d'etre longue pour moi car l'application  doit rester en place assez longtemps donc pour faire ca sur plusieur année ca risque d'etre difficile  
de plus le cas année bixestile et des mois et assez complexes enfin je l'ai deja fais mais en langage c et vu que je débute en vba je pense que ca va etre trop compliqué pour moi


 
Non c'est pas compliqué et non tu n'as pas besoin de demander à l'utilisateur ! S'il te mets une date eronné, tout tes calculs sont faux aprés. Enorme risque !! Pourquoi faire ça pour plusieurs années ?? Ton calcul est automatique ! Suffit une prende une date de réfrence comme le 1er janvier de l'année courante !
 
Je prend un exemple : aujourd'hui nous somme le mercredi 13/12/05 la semaine prochaine le mercredi sera un 21 et ainsi de suite ! Je n'ai pas forcé : 13 +7 . C'est la même chose pour tous les jours. Ca c'est pour l'année 2005.
Pour 2006, le 13 tombera un jeudi, pour 2007, un vendredi.....!  
 
Je te le redis, pour simplifier les calculs, prend l'année courante et la date/jour du 1er janvier de l'année en question pour construite ton calendrier de l'année "courante" et ça se fera tout seul...
 
Pour les années bixestile, elle sont divisible par 4 ! C'est donc tout aussi simple. Quand tu dévisera ton année par 4 et que le resultat sera juste (attention à ne pas arrondir), ton année sera bixestile et puis voilà !
 
Honettement si tu as fais du C++, le VB(A) te paraître enfantin à coté ! Et le principe est le même à part que la syntaxe change un peu...
 
@+


Message édité par cvb le 13-12-2005 à 11:28:24
n°1265353
mfauxock
Posté le 13-12-2005 à 11:52:43  profilanswer
 

Angelo j'ai répondu sur montgallet
 
set toto = inputbox("cé koi ton premier jour?" )
 
msgbox toto

n°1265376
Angelo38
Posté le 13-12-2005 à 12:11:42  profilanswer
 

ok merci mfauxock je vais essayé

n°1265420
mfauxock
Posté le 13-12-2005 à 13:02:43  profilanswer
 

me suis trompé il ne faut pas mettre le set !!!!
 
toto = inputbox("cé koi ton premier jour?" )  
 
msgbox toto

n°1265427
Angelo38
Posté le 13-12-2005 à 13:12:32  profilanswer
 

oui j'avais trouvé pour l'erreur mais ton msgbox je l'utilise pas  
 
question de noob (j'avou je pourrai chercher j'ai pas encore essayé de trouver la réponse lol) pour le switch case c'est quoi la syntaxe?

n°1265440
mfauxock
Posté le 13-12-2005 à 13:28:06  profilanswer
 

Oh le fénéant !!!
 
Function Bonus(performance, salary)
    Select Case performance
        Case 1
            Bonus = salary * 0.1
        Case 2, 3
            Bonus = salary * 0.09
        Case 4 To 6
            Bonus = salary * 0.07
        Case Is > 8
            Bonus = 100
        Case Else
            Bonus = 0
    End Select
End Function
 
aide vba select case

mood
Publicité
Posté le 13-12-2005 à 13:28:06  profilanswer
 

n°1265443
Angelo38
Posté le 13-12-2005 à 13:30:30  profilanswer
 

lol c'est vrai par contre pour l'aide vba fallait il encor que je connaisse la syntaxe select case  
Et puis pas si fénéant je cherchais quand même en attendant ta réponse  

n°1265521
Angelo38
Posté le 13-12-2005 à 14:27:31  profilanswer
 

tres bien maintenant j'ai récupérer le 1er jour donc je commence au jour  
- 2 si le 1er du mois est un dimanche ,  
- 3 si le 1er du mois est un samedi  
- 1 dans tout les autres cas  
 
en effet je n'affiche pas les samedi et dimanche  
 
ce que je veux faire maintenant c'est faire tout les autres jours (pour l'instant j'ai que le 1er jour)  
par exemple si le 1er du mois est un mardi  
en a1 il y aura 1
     a2 -> 2
     a3 -> 3
     a4 -> 4
     a5 -> la c'est samedi donc j'affiche Sem44 par ex et je fais une fonction somme de la semaine passer  
     a6 -> donc dimanche y aura rien sur toute la ligne on peut la bloquer?
     a7->7  
     ...
 
la je reseche pour faire ca  
 
je vous met le code qui m'a permis d'avoir le premier jour

Code :
  1. Dim Jour, Nb_jour, Semaine, Mois, Année, Message$, Message2$, Message3$, Message4$, Titre$
  2.     Message = "Entrer le mois en chiffre (janvier= 01, décembre =12)"
  3.     Message2 = "Entrer le nombre de jour compris dans le mois"
  4.     Message3 = "Entrer l'année"
  5.     Message4 = "indiquer le numero de la premiere semaine (ex: Sem 44)"
  6.     Titre = "création du tableau"
  7.    
  8.     Mois = InputBox(Message, Titre)
  9.     Année = InputBox(Message3, Titre)
  10.     Nb_jour = InputBox(Message2, Titre)
  11.     Semaine = InputBox(Message4, Titre)
  12.     Jour = WeekDay("1/" & Mois & "/" & Année)
  13.     Range("A1" ).Select
  14.             Select Case Jour
  15.             'si le 1er est un dimanche commencer le tableau par le 2
  16.             Case "1"
  17.                 ActiveCell.FormulaR1C1 = "2"
  18.             'si le 1er est un samedi commencer le tableau par le 3
  19.             Case "7"
  20.                 ActiveCell.FormulaR1C1 = "3"
  21.             'sinon commencer par le 1
  22.             Case Else
  23.                 ActiveCell.FormulaR1C1 = "1"
  24.         End Select
  25.     Next i

n°1265711
Angelo38
Posté le 13-12-2005 à 17:18:23  profilanswer
 

bon je suis arriver à ce code y aun truc qui m'embette encore c'est que ca commence en a1 or je veux mettre un titre du genre date assez gros et donc faire commencer le traitement en a4  
voici le code  

Code :
  1. Function DaysInAMonth(d As Date) As Integer
  2.   DaysInAMonth = DateAdd("m", 1, d) - d
  3. End Function
  4. Function DaysInThisMonth(month, year As Integer) As Integer
  5.   DaysInThisMonth = DaysInAMonth("1/" & month & "/" & year)
  6. End Function
  7. Function WeekNumber(d As Date) As Integer
  8.     WeekNumber = DatePart("ww", d, vbMonday, vbFirstFourDays)
  9. End Function
  10. Sub Essai()
  11.     Dim i As Integer, nb As Integer
  12.     Dim d As Date
  13.    
  14.     Dim wd As Integer
  15.     Dim Mois, Année As Integer
  16.    
  17.    
  18.     Mois = 11
  19.     Année = 2005
  20.    
  21.     d = "1/" & Mois & "/" & Année
  22.     nb = WeekNumber(d)
  23.     For i = 0 To DaysInAMonth(d) - 1
  24.         Range("A" & i + 1).Formula = d + i
  25.         wd = WeekDay(d + i, vbMonday)
  26.         Select Case wd
  27.             Case 6:
  28.                 Range("A" & i + 1).Formula = "Sem" & nb
  29.                 nb = nb + 1
  30.             Case 7: Range("A" & i + 1).Formula = "RIEN"
  31.         End Select
  32.     Next
  33. End Sub


que dois je change perso je pensais au Rangequi est juste sous le for mais quand je modifier rien ne fonctionne plus (enfin pas comme je veux)

n°1266101
watashi
La démotivation : JAMAIS !
Posté le 14-12-2005 à 08:57:14  profilanswer
 

Salut angelo c'est bien range qui est à modifier mais tous les range (lignes 26, 30 et 32) en
 
        Range("A" & i + 4)
 
bon courage


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)

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

  comment récuperer des information donner par l'utilisateur?

 

Sujets relatifs
[XSL]Une idee pour recuperer une info precise[xml] récupérer tout le texte d'un élement ?
[Eclipse/CVS] Comment récupérer le nom de la branche avant le commit ?récupérer une variable VBSCRIPT dans une page ASP
récupérer le code source page Web https..(dhtml, javascript) avec vba?Récupérer les infos d'un fichier txt en batch
Récupérer le dernier post d'un sujetRécupérer le chemin d'un dossier cherché
Récupérer la première lettre d'une variable en batch?Récupérer le texte affiché dans un comobox
Plus de sujets relatifs à : comment récuperer des information donner par l'utilisateur?


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