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

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 !

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

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

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

Dernière édition:
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:
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:
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
 
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
 
- 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
Retour