XL 2019 Encore besoin de votre aide

RoyalP

XLDnaute Occasionnel
Bonjour ,pour mon projet de calcul de salaire selon stage ou en cours (oui pas les même salaires quand on est étudiant) j'aurais besoin de votre aide.
J'ai crée un calendrier de septembre à juillet 2019 - 2020 dans lequel quand on double click sur une cellule l'usf s'ouvre et vous entrez vos données (nbre d'heures, notes , etc) , j'arrive a sauvegarder le tout mais je n'arrive pas a récupérer la date de l'emplacement du double click !!!
je vous post le fichier pour que vous voyez ce que je veux faire.

Merci pour votre aide
 

Pièces jointes

  • teste_cal.xlsm
    39.8 KB · Affichages: 17
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @RoyalP,

Peut-être ?:
Dans le module de la feuille de codename Feuil1 "calendrier":
VB:
Option Explicit

Public maCellule As Range

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
    Cancel = True
    If Not Application.Intersect(Target, Range("A6:AG37")) Is Nothing Then
        Set maCellule = Target
        Userform1.Show
    End If
End Sub

et pour le bouton enregistrer du userform:
Code:
Private Sub CommandButton_enreg_Click()
  ligne_insertion = Sheets("BDD").Range("A65000").End(xlUp).Row + 1

  Sheets("BDD").Cells(ligne_insertion, 1) = Feuil1.maCellule.Value2
  Sheets("BDD").Cells(ligne_insertion, 1).NumberFormat = "dd/mm/yyyy"

  ' la suite du code....

End Sub
 

RoyalP

XLDnaute Occasionnel
merci mapomme, c'est a peu pres ce que je veux faire sauf que la je dois clicker sur la date , moi ce que je veux c'est si je clique sur la cellule sur mon exemple en rouge du lundi 02 septembre 2019 ca me récupere la date . merci quand meme pour l'aide ca me permet d'avancer quand meme.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re @RoyalP,

je viens de voir un problème si je double click sur 15 novembre il me garde la date du 01/09/2019 !!

Essayez ce code dans le module de Feuil1 (la ligne du Msgbox est là juste pour le test).
Le code gère aussi les fins de colonne des mois inférieurs à 31 jours:
VB:
Option Explicit

Public maCellule As Range

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
   Cancel = True
   If Not Application.Intersect(Target, Range("A6:AG37")) Is Nothing Then
      Set maCellule = Cells(Target.Row, 1 + 3 * Int((Target.Column - 1) / 3))
      MsgBox maCellule  'juste pour le test
      If IsDate(maCellule) Then Userform1.Show
   End If
End Sub
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Salut @Staple1600 @ ;),

Mille + une excuses de ne pas t'avoir répondu tout de suite. J'avais vu , j'avais lu puis j'ai zappé.
Chacun a ses petites habitudes. Moi je suis un "littéraire" le "a" me parle plus que le hein! :p
Enfin jusqu'au "z". Après c'est plus difficile pour moi o_O

Concern1nt l1 question, je l'1v1is lu trop r1pidement et donc m1l répondu. C'est p1s bien!:(
 

Staple1600

XLDnaute Barbatruc
Re

Oui mais avec le Hun, on fait fuir le Trente et quatre (deux fois)
Ça ne sert pas à grand chose (ou alors juste pour se souvenir un soir de finale CAN, des Wisigoths)
;)

Maintenant une question m'étreint la glotte
Pourquoi une variable macellule puisque Target est déjà un Range?
(PS: Je sais que cette variable était là dès le message#1)
 

Staple1600

XLDnaute Barbatruc
Re

Alors pour apaiser ma glotte (voir message précédent), pour le test et pour le fun
Et pour passer des Wisigoths à Barracuda ;)
VB:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal T As Excel.Range, Cancel As Boolean)
Cancel = True
If Not Application.Intersect(T, Range("A6:AG37")) Is Nothing Then
MsgBox T.Offset(, -(T.Column + 2) Mod 3)
End If
End Sub
 

Discussions similaires

Statistiques des forums

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