Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Echéancier avec userform

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

FRED83cel

XLDnaute Nouveau
Bonjour,
Voici en pj un fichier Excel.
Je souhaite créer un échéancier en indiquant dans la boîte de dialogue le jours et les mois concernés.
Après validation, la ou les dates doivent apparaître dans la colonne D et en autant de ligne que de mois concernés.
1er onglet la feuille original, 2ème onglet le résulat attendu.
En espèrant avoir été suffisamment assez clair et qu'une personne puisse répondre à mes attentes.
Merci d'avance
 

Pièces jointes

Re : Echéancier avec userform

Bonjour.

En dehors de son nom, comme CheckBox12, un contrôle peut être désigné par Me("CheckBox" & N) si N est une variable entière utilisée dans une boucle valant 12 à ce moment là.
Cela vous ouvre-t-il des perspectives sur la façon d'écrire tout ça ?

Edit: Surtout si j'ajoute que par ailleurs DateSerial(year, month, day) renvoie une date tel qu'il la faut pour une Value de cellule ?

J'ajouterais aussi qu'il est absurde de comparer une propriété Boolean à True car :
True = True vaut True,
False = True vaut False, par conséquent
x = True vaut simplement x tout seul et
x = False vaut Not x
 
Dernière édition:
Re : Echéancier avec userform

Bonjour Dranreb,
Je vous remercie pour toutes ces explications.
J'ai compris la façon de régler mon problème.
Effectivement il vaut mieux passer par des boucles for each... que par des conditions if then.
Comme vous avez pu le constater je maîtrise mieux les conditions, ce qui alourdis considérablement mes macros.
Merci encore, je vais essayer votre solution, et garde précieusement vos conseils.
Bien cordialement.
 
Re : Echéancier avec userform

Bonjour à tous,
Ca y est j'avance dans mon projet, mais encore beaucoup de bug avant d'arriver à la perfection.
J'ai réussi à créer des boucles (voir nouveau fichier joint).
Par contre problèmes :
- quand je coche seulement février, j'ai une ligne vierge qui vient s'insérer entre la dernière non vide et février,
- la date apparaît au format 2015janvier12 et non 15/01/2015.
Enfin comment empêcher de mettre 30 pour les mois à 31 jours et 30 pour février (28 ou 29 jours).
Je cherche encore mais si quelqu'un peut m'aider, je ne suis pas contre.
Merci bien
 

Pièces jointes

Re : Echéancier avec userform

Bonjour.

Corrigé :
VB:
Private Sub CommandButton1_Click()
Dim I As Long
For I = 1 To 2
   If Me("CheckBox" & I).Value Then
      On Error Resume Next
      Sheets("Feuil1").Range("a65536").End(xlUp).Offset(1).Value _
         = DateSerial(2015, I, TextBox1.Text)
      Exit For: End If: Next I
Unload UserForm1
End Sub
Vous devriez mettre des OptionButton plutôt que des CheckBox, si un seul doit pouvoir être coché.
…À supposer, bien sûr, que tout ça soit plus simple que de saisir simplement la date, ce dont je doute.

Rappel: Un boolean représente possiblement déjà à lui seul un résultat comparaison. Il est donc inutile d'en établir un à l'aide d'opérateurs de comparaisons arithmétiques. Les Boolean ont leurs propres opérateurs Eqv, Xor, And, Or, Not. Mais il n'est jamais pertinent non plus de les utiliser avec les constantes Boolean False et True.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

K
Réponses
38
Affichages
10 K
kinders59
K
B
Réponses
5
Affichages
780
L
Réponses
4
Affichages
2 K
Luke91
L
A
Réponses
0
Affichages
7 K
Arpopa
A
E
Réponses
6
Affichages
961
elisa71
E
N
  • Question Question
Réponses
4
Affichages
12 K
Nicolas06
N
M
Réponses
6
Affichages
17 K
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…