Casse tête calendrier

kllmoon

XLDnaute Occasionnel
Bonjour à vous, il y a longtemps que je n'ai pas travailler avec Excel, je suis donc un peu rouillé!

Je tente d'expliquer du mieux que je peux mon questionnement. Voilà, je veux faire un bouton qui fait l'une des 3 options suivantes.

1- Inscrire un élément récurent sur tout le mois. C'est à dire que dans tout le mois, je veux qu'en D,E,F,G,H-10, D,E,F,G,H-16.... etc pour le mois s'inscrive la valeur entrée.

2- Choisir d'entrer la valeur sur une période donnée. Par exemple, je choisis d'inscrire sur 4 jours à partir du 14 du mois.

3- Choisir d'entrer cette valeur à tous les mardis (par exemple).

Les message box c'est pas un problème, où je stagne c'est les entrées de données. Par exemple, sur certains mois, D4 est vide mais sur d'autres non... Alors je solicite votre aide car programmer le tout case par case avec une infinie série de IF THEN me semble illogique!

Ah oui, et si quelqu'un pouvait m'indiquer comment désactiver ce foutu message pour l'actualisation automatique, je lui serais très reconnaissant!!!!

désolé d'utiliser le service cijoint mais c'est trop gros pour le forum.

Le fichier Cijoint.fr - Service gratuit de dépôt de fichiers
 

Gael

XLDnaute Barbatruc
Re : Casse tête calendrier

Bonsoir Kllmoon, bonsoir à tous,

Essaye le code suivant:

Code:
Private Sub CommandButton1_Click()
Dim col As Integer, lig As Integer, mini As Integer, maxi As Integer
MyNote = "Voulez-vous inscrire récurence sur le mois au complet?"
    mavariable3 = InputBox("Quelle est l'élément a ajouter? :")
    Answer = MsgBox(MyNote, vbQuestion + vbYesNo, "Avant de procéder")
    If Answer = vbYes Then
    mini = 1
    maxi = 31
    Else
 
        mavariable = InputBox("A partir de quelle date? :")
        mini = CSng(mavariable)
        mavariable2 = InputBox("Sur combien de jours? :")
        maxi = CSng(mavariable2) + mini
        End If
    With ThisWorkbook.ActiveSheet
        For col = 3 To 11 Step 2
            For lig = 3 To 27 Step 6
                If IsDate(.Cells(lig, col)) Then
                dd = .Cells(lig, col).Value
                    If Day(dd) >= mini And Day(dd) <= maxi Then
                        .Cells(lig + 1, col + 1) = mavariable3
                    End If
                End If
            Next lig
        Next col
    End With
End Sub

Pour supprimer le message d'actualisation, il faut supprimer le nom que tu as défini dans l'onglet "Apr": Ce lien n'existe plus.

@+

Gael
 
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Casse tête calendrier

Bonjour à tous,
Salut Gaël,

Tu as une requête sur ton fichier (pas trouvé sur le fichier déposé mais pas trop cherché non plus...):



Elle fait appel à des données externes, il est normal qu'XL t'avertisse du danger potentiel.

Il ne me semble pas que l'on puisse s'en départir mais les ressources des XLDiens sont incommensurables et je suis intéressé aussi...

Je dépose ton fichier d'origine sur XLD

A+ à tous
 

Pièces jointes

  • 2009-calendar.zip
    92.6 KB · Affichages: 49
  • 2009-calendar.zip
    92.6 KB · Affichages: 38
  • 2009-calendar.zip
    92.6 KB · Affichages: 38

kllmoon

XLDnaute Occasionnel
Re : Casse tête calendrier

Wow Gael, merci beaucoup pour le code il fonctionne très bien et il saute même les weekends! Je vais tenter de faire moi-même pour les récurences a tous les lundi du mois ou autre jour. Sinon, je repasse et j'espère de nouveau avoir la chance de tomber sur toi!

Encore un gros merci!!

Je ne comprends pas ta deuxième réponse Gael, je veux que Excel fasse cette requête car je trouve amusant d'avoir la pensée du jour à l'ouverture du classeur. Si je suprime cette info dans l'onglet apr alors je supprime ma pensée du jour... La requête est dans l'onglet apr an A196, elle va chercher des données sur un site web à l'ouverture du classeur. Merci JC pour avoir mis mon classeur ici.
 
Dernière édition:

jp14

XLDnaute Barbatruc
Re : Casse tête calendrier

Bonsoir

Ci joint le fichier avec une autre approche :
un userform pour remplacer les boites de dialogue
Un textbox permet d'indiquer la valeur à inscrire
Un combobox pour sélectionner la date
Un combobox pour indiquer le nombre de valeurs ( le combobox est rempli en fonction de la date de départ et le nombre de jours)

Le combobox1 contient la date, le jour, le numéro de ligne et le numéro de la colonne on peut facilement ajouter des tests pour inscrire les valeurs.

A tester
 

Pièces jointes

  • 2009-calendar.zip
    35.9 KB · Affichages: 43
  • 2009-calendar.zip
    35.9 KB · Affichages: 42
  • 2009-calendar.zip
    35.9 KB · Affichages: 47
Dernière édition:

Discussions similaires

Réponses
9
Affichages
483
Réponses
1
Affichages
196

Statistiques des forums

Discussions
312 502
Messages
2 089 026
Membres
104 008
dernier inscrit
jojo1966