[VBA] peut on récupérer des information donné par un utilisateur?
Dernière réponse : dans Programmation
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 ?
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 ?
Autres pages sur : vba recuperer information donne utilisateur
Lassé par la pub ? Créez un compte
J'ai lu dans ma boule de cristal qu'il s'agissait de VBA pour Excel. J'y ai vu aussi que c'est la fonction
Pour demander une information à l'utilisateur sous Excel/VBA, il y a plusieurs moyens :
1°) Lire une valeur dans une cellule.
2°) Utiliser la fonction [/fixed]InputBox[/fixed].
3°) Créer un formulaire.
WeekDay
qui t'intéresse.Pour demander une information à l'utilisateur sous Excel/VBA, il y a plusieurs moyens :
1°) Lire une valeur dans une cellule.
2°) Utiliser la fonction [/fixed]InputBox[/fixed].
3°) Créer un formulaire.
j'ai fait ca mais ma fonction weekday ne compile pa
l'erreur est une erreur d'execution 13:
type incompatible
Dim Jour, Nb_jour, Mois, Année, Message$, Message2$, Message3$, Titre$
Message = "Entrer le mois en chiffre (janvier= 01, décembre =12"
Message3 = "Entrer l'année"
Titre = "création du tableau"
Message2 = "Entrer le nombre de jour compris dans le mois"
Mois = InputBox(Message, Titre)
Année = InputBox(Message3$, Titre)
Nb_jour = InputBox(Message2, Titre)
Jour = WeekDay("1/Mois/Année")
l'erreur est une erreur d'execution 13:
type incompatible
Ou la la !! Il faut que tu revois l'utilisation des guillemets. Même problème que ton post précédent avec tes semaine1, semaine2.
"Mois" est une suite de 4 lettres formant une chaîne de caractères.
Mois est une variable contenant une valeur.
Ecris
Comprends-tu pourquoi ?
"Mois" est une suite de 4 lettres formant une chaîne de caractères.
Mois est une variable contenant une valeur.
Ecris
au lieu de
"1/" & Mois & "/" & Année
"1/Mois/Année".
Comprends-tu pourquoi ?
j'ai un peu du mal avec ca (je fais du vba que depuis peu)
J'ai fais du C et ya pas tout ces guillemets pour appeler une variable
Par contre pourquoi "1/" & Mois & "/" & Année et non
"1/" & Mois "/" & Année ou "1/" & Mois & "/" & Année &
la je comprend pas
d'ailleur si tu connais un site qui explique cela simplement ca m'interesse ainsi ca m'evitera de faire toujours les meme erreurs
J'ai fais du C et ya pas tout ces guillemets pour appeler une variable
Par contre pourquoi "1/" & Mois & "/" & Année et non
"1/" & Mois "/" & Année ou "1/" & Mois & "/" & Année &
la je comprend pas
d'ailleur si tu connais un site qui explique cela simplement ca m'interesse ainsi ca m'evitera de faire toujours les meme erreurs
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
- 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
Dim Jour, Nb_jour, Semaine, Mois, Année, Message$, Message2$, Message3$, Message4$, Titre$
Message = "Entrer le mois en chiffre (janvier= 01, décembre =12)"
Message2 = "Entrer le nombre de jour compris dans le mois"
Message3 = "Entrer l'année"
Message4 = "indiquer le numero de la premiere semaine (ex: Sem 44)"
Titre = "création du tableau"
Mois = InputBox(Message, Titre)
Année = InputBox(Message3, Titre)
Nb_jour = InputBox(Message2, Titre)
Semaine = InputBox(Message4, Titre)
Jour = WeekDay("1/" & Mois & "/" & Année)
Range("A1").Select
Select Case Jour
'si le 1er est un dimanche commencer le tableau par le 2
Case "1"
ActiveCell.FormulaR1C1 = "2"
'si le 1er est un samedi commencer le tableau par le 3
Case "7"
ActiveCell.FormulaR1C1 = "3"
'sinon commencer par le 1
Case Else
ActiveCell.FormulaR1C1 = "1"
End Select
Next i
Arrête avec les questions bêtes à l'utilisateur. A partir d'une seule date ( Veuillez saisir une date ? ), tu peux tout calculer : Mois, année, nombre de jours dans l'année, numéro de la semaine, etc. Je ne te force pas la main, et je continuerai à te répondre quand même si tu ne le fais pas mais par principe fais-le. C'est trop horrible de voir ça. Fin de la parenthèse.
A propos de WeekDay, vas voir dans l'aide pour commencer ta semaine par Lundi.
Que signifie bloquer la ligne ?
A propos de WeekDay, vas voir dans l'aide pour commencer ta semaine par Lundi.
Que signifie bloquer la ligne ?
Pour le week day j'ai pas besoin de mettre lundi ou mardi juste le jour 1,2 par contre j'avais besoin de cette fonction pour enlever les weekend
Bloquer = empecher toute insertions
le coup du calcul je vois pas trop comment faire:
je suis obliger au demander le mois et l'année car mon tableau est un tableau d'un mois par exemple décembre avec tout les jours et l'année car pour connaitre 1er jour du mois
apres pour le nombre de jours dans le mois c'est vrai je peut le calculer, par contre le numéro de la semaine la je vois pas
Bloquer = empecher toute insertions
le coup du calcul je vois pas trop comment faire:
je suis obliger au demander le mois et l'année car mon tableau est un tableau d'un mois par exemple décembre avec tout les jours et l'année car pour connaitre 1er jour du mois
apres pour le nombre de jours dans le mois c'est vrai je peut le calculer, par contre le numéro de la semaine la je vois pas
Cadeau ( c'est noël )
La norme ISO 8601 c'est celle qui définit Lundi comme premier jour de la semaine. Alors tu vas quand même me mettre Lundi comme premier jour de WeekDay S'IL TE PLAIT !.
Tu peux demander le mois et l'année dans le même InputBox ou à titre d'exercice dans un formulaire adhoc.
Pour "bloquer une cellule", regarde l'aide sur la protection des feuilles et des classeurs ainsi que sur le verrouillage des cellules
( Outils/Protection/Protéger la feuille, Format de cellule/Protection/Verrouillée )
Sinon, j'ai fait ça, c'est joli non :
Quoi faire à la place de RIEN et de TA FONCTION ?
Là, faudrait voir à bosser un peu, mon gars.
Function DaysInAYear(d As Date) As Integer
DaysInAYear = DateAdd("yyyy", 1, d) - d
End Function
Function DaysInAMonth(d As Date) As Integer
DaysInAMonth = DateAdd("m", 1, d) - d
End Function
Function DaysInThisYear(year As Integer) As Integer
DaysInThisYear = DaysInAYear("1/1/" & year)
End Function
Function DaysInThisMonth(month, year As Integer) As Integer
DaysInThisMonth = DaysInAMonth("1/" & month & "/" & year)
End Function
Function WeekNumber(d As Date) As Integer
'ISO 8601
WeekNumber = DatePart("ww", d, vbMonday, vbFirstFourDays)
End Function
La norme ISO 8601 c'est celle qui définit Lundi comme premier jour de la semaine. Alors tu vas quand même me mettre Lundi comme premier jour de WeekDay S'IL TE PLAIT !.
Tu peux demander le mois et l'année dans le même InputBox ou à titre d'exercice dans un formulaire adhoc.
Pour "bloquer une cellule", regarde l'aide sur la protection des feuilles et des classeurs ainsi que sur le verrouillage des cellules
( Outils/Protection/Protéger la feuille, Format de cellule/Protection/Verrouillée )
Sinon, j'ai fait ça, c'est joli non :
Sub Essai()
Dim i As Integer
Dim d As Date
Dim wd As Integer
Dim Mois, Année As Integer
Mois = 1
Année = 2005
d = "1/" & Mois & "/" & Année
For i = 0 To DaysInAMonth(d) - 1
Range("A" & i + 1).Formula = d + i
wd = WeekDay(d + i, vbMonday)
Select Case wd
Case 6:
If i = 0 Then
Range("B" & i + 1).Formula = "RIEN"
Else
Range("B" & i + 1).Formula = "TA FONCTION"
End If
Case 7: Range("B" & i + 1).Formula = "RIEN"
Case Else
Range("B" & i + 1).Formula = wd
End Select
Next
End Sub
Quoi faire à la place de RIEN et de TA FONCTION ?
Là, faudrait voir à bosser un peu, mon gars.
deja pour le nombre de jour j'ai fais cette fonction
Function Nombre_jour(Le_mois As Integer, Lannee As Integer) As Integer
If Le_mois = 1 Or Le_mois = 3 Or Le_mois = 5 Or Le_mois = 7 Or Le_mois = 8 Or Le_mois = 10 Or Le_mois = 12 Then
Nombre_jour = 31
ElseIf Le_mois = 4 Or Le_mois = 6 Or Le_mois = 9 Or Le_mois = 11 Then
Nombre_jour = 30
Else
If Lannee Mod (4) = 0 Then
Le_mois = 29
Else: Le_mois = 28
End If
End If
End Function
T'inquiete pas je fais pas que posé des question je cherche aussi
le preuve ma fonction Nombre_jour bon apparamment elle va pas servir mais bon
et sur google il y a pas beaucoup d'info c'est pour ca j'te demandais si il y a un site qui explique bien
Moi jsuis aller sur exel labo mais c'est pas génial
le preuve ma fonction Nombre_jour bon apparamment elle va pas servir mais bon
et sur google il y a pas beaucoup d'info c'est pour ca j'te demandais si il y a un site qui explique bien
Moi jsuis aller sur exel labo mais c'est pas génial
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumVba demander utilisateur
- ForumVba récupérer valeur combobox
- ForumVba récupérer les noms des feuilles excel
- ForumRécupérer valeur liste vba
- ForumExcel vba récupérer valeur liste déroulante
- ForumComment récupérer des données sous vista
- ForumComment donner acces utilisateur
- ForumDonner des droits à un utilisateur
- ForumHtml récupérer données formulaire
- ForumCombien de pc peut on utiliser wifi
- Voir plus
Allez au boulot. Il faut tout comprendre et faire des tas de choses par toi même maintenant.
Et surtout, n'oublie pas, google est ton meilleur ami.