Ouvrir un USF à compléter au jour le jour, dès que je vais sur l'onglet... ? [résolu]

anthoYS

XLDnaute Barbatruc
Bonjour,


Le but c'est d'avoir une popup avec menu liste déroulant pour le jour en cours, puis de dérouler ou un calendrier qui pointe à aujourd'hui (le jour en cours) par défaut, puis choisir de compléter les colonne par colonne "repas principal" donc une case vide à compléter, "RDV s" pareil, etc.

Puis pouvoir valider, possibilité de ne pas utiliser cela et de fermer cette combobox au besoin. Et la rouvrir par un raccourci clavier du genre "espace + B".


Prenez votre temps.
Merci par avance
 

Pièces jointes

  • Planning quotidien.xlsx
    220.9 KB · Affichages: 26

anthoYS

XLDnaute Barbatruc
Ok j'ai regardais, j'ai pu le transposé dans mon classeur d'origine.

Par contre, je souhaite justement, que le double clic ai lieu sur le jour voulu à partir de A2.
Donc si je clique le 14 septembre 2017, ça m'ouvre ce jour là à compléter et s'il y a des champs déjà compléter, ne pas écraser les données déjà saisies. Par contre, la possibilité d'éditer ce qui a été saisi au préalable.

Donc voilà, je ne sais pas s'il faut mettre "ActiveCell" ou dans le style au lieu de A1 dans la Sub ?

Enfin je n'ose pas bidouiller, mais s'il le faut je m'y mettrais même si je redoute le résultat.
 

Pièces jointes

  • Planning quotidien.xlsm
    234.4 KB · Affichages: 18

Bebere

XLDnaute Barbatruc
bonjour
Anthoys
à l'ouverture du classeur,la cellule date du jour est active
code workbook_open et code module1 selectdate
Les textbox sont complétées par les données de la ligne
 

Pièces jointes

  • Planning quotidienV1.xlsm
    239.8 KB · Affichages: 22

Si...

XLDnaute Barbatruc
Bonjour

Tu as un Tableau, autant en profiter en faisant Attention quand même aux noms des contrôles dans le formulaire !

Si…, mes propositions comme suis restent sans réponses, j'irai voir ailleurs si j'y suis.

edit : Salut Bebere:), désolé, je n'avais pas vu ta dernière propostion (qui ne concerne que le jour présent, non ?).
 

Pièces jointes

  • Planning repas (usf).xlsm
    232.5 KB · Affichages: 39
Dernière édition:

Bebere

XLDnaute Barbatruc
bonjour
oui Si concerne le jour de l'ouverture du classeur
j'ai mal lu la demande,je regarde
edit:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 1 And Target.Row > 1 Then
    Cancel = True
    Ligne = Target.Row'ou Application.Goto [repas].Columns(1).Find(Date)

    UserForm1.Show
    End If
End Sub
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re

N'ayant pas de contexte précis, je me suis placé dans le cas général : aujourd'hui je veux programmer, corriger, supprimer une saisie. J'ai donc mis en évidence la date du jour actuel mais les items sont bien envoyés sur la ligne sélectionnée.

Si tu veux voir celle du jour traité il te suffit de modifier une ligne :

Me.Caption = Format(ActiveCell, "ddd-dd-mmm-yyyy")

On revient encore à la cellule sélectionnée !

Bebere, presque toutes les demandes le sont sur un point précis. En général il est facile de proposer une réponse mais au fil des fils la première demande varie avec de plus en plus de conditions ajoutées. Voilà pourquoi j'essaie d'anticiper certaines.

edit : Pour avoir directement accès à la ligne du jour actuel, il suffit d' insérer en première ligne de l'Initialize, la ligne suivante :
Application.Goto Feuil199.[repas].Columns(1).Find(Date)


où Feuil199 contient le Tableau nommé repas. L'appel d'ouverture du formaire peut se faire de plusieurs façons.
 
Dernière édition:

Bebere

XLDnaute Barbatruc
Bien Si j'ai ajouté ta proposition dans le code #7
ainsi notre ami pourra choisir
j'essaye aussi d'anticiper,va t'en savoir ce qui se passe de l'autre côté(raisonnements,idées,parfois têtu,etc)
comme il y a beaucoup de débutant j'essaye de mettre un code qui leur apprend quelque chose,d'où la boucle dans selectdate
 

anthoYS

XLDnaute Barbatruc
bonjour
oui Si concerne le jour de l'ouverture du classeur
j'ai mal lu la demande,je regarde
edit:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 1 And Target.Row > 1 Then
    Cancel = True
    Ligne = Target.Row'ou Application.Goto [repas].Columns(1).Find(Date)

    UserForm1.Show
    End If
End Sub

VB:
Option Explicit
Dim Ws As Worksheet, a, b, L As Long, i As Long, j As Long

Private Sub CommandButton1_Click()
    For i = 1 To 31
     Ws.Cells(L, i + 1) = Me("TextBox" & i)
    Next
End Sub

Private Sub CommandButton2_Click()
    Unload Me
End Sub

Private Sub UserForm_Initialize()
    Me.Label1.Caption = Format(Date, "ddd-dd-mmm-yyyy")
    Set Ws = Worksheets("plg")
'    a = Ws.Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row).Value2
    b = Ws.Range("B1:AF1")
    j = 1
    For i = 1 To UBound(b, 2)
        j = j + 1: Me("Label" & j) = b(1, i)
    Next
    For i = 1 To 31
         Me("Textbox" & i) = Cells(Ligne, i + 1)
    Next
'    L = Application.Match(CLng(Date), a, 0)
'    Ws.Range("A" & L).Activate
    'For i = 1 To 31
    'Me("TextBox" & i) = i
    'Next
End Sub

j'ai une erreur quand je complète et valide la saisie, erreur 1004 donc débogage la ligne 5 en fond jaune !
VB:
Ws.Cells(L, i + 1) = Me("TextBox" & i)

Code de l'USF !

---

le code de la feuille plg' est celui-ci :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    With Target
        If .Column > 2 And .Column < 32 Then
            If .Comment Is Nothing Then
                .AddComment
                .Comment.Shape.Width = 241.5
                .Comment.Shape.Height = 99.75
            SendKeys "%im"
        End If
    End If
End With
Application.SendKeys "{NUMLOCK}", True ' clavier numérique activer
    If Target.Column = 1 And Target.Row > 1 Then
    Cancel = True
    Ligne = Target.Row 'ou Application.Goto [repas].Columns(1).Find(Date)
    UserForm1.Show
    End If
End Sub
 

Statistiques des forums

Discussions
311 720
Messages
2 081 907
Membres
101 836
dernier inscrit
karmon