Microsoft 365 Calendrier

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 !

Niks

XLDnaute Nouveau
Bonjour,

pour commencer je débute dans les vba et macro et je n'ai pas de notion de code.
J'ai fait ce calendrier avec l'aide d'un tuto sur Youtube, il me permet d'inscrire une date automatiquement dans une cellule quand je la choisi dans le calendrier.
Regarde la pièce jointe 1105916

J'aimerais l'améliorer en ayant la possibilité de choisir une deuxième cellule sans modifier la première.
la logique voudrait que la commande soit (si la cellule "b6" est déjà rempli alors tu utilise la cellule b7) mais le soucis c'est que partout ou je passe sur le net je ne trouve rien qui s'adapte à ma situation.

voici ma commande en VBA sur laquelle je voudrait rajouter cette option :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  
    If Not Intersect(Target, Range("K4:Q9")) Is Nothing Then
        Range("D2").Value = Target.Value
      
    End If

End Sub

j'espère avoir été assez clair dans ma demande est que j'ai bien expliquer, je vous remercie d'avance 😉
 
Solution
et moi j'aurai vu que j'avais une parenthèse de trop... lol

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("K4:Q9")) Is Nothing Then
    If Len(Range("D2").Value) = 0 Then
        Range("D2").Value = Target.Value
    Else
        Range("D3").Value = Target.Value
    End If
  End If
End Sub

A+ François
Bonjour
Un fichier est TOUJOURS le bienvenu
If Not Intersect(Target, Range("K4:Q9")) Is Nothing Then
if len(range("D2").value))=0 then
Range("D2").Value = Target.Value
else
Range("D3").Value = Target.Value
endif
End If
J'espère que cela répond à ton problème
A+ François
 
et moi j'aurai vu que j'avais une parenthèse de trop... lol

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("K4:Q9")) Is Nothing Then
    If Len(Range("D2").Value) = 0 Then
        Range("D2").Value = Target.Value
    Else
        Range("D3").Value = Target.Value
    End If
  End If
End Sub

A+ François
 
re
Bonjour
ouais sauf que si tu veux changer en cas d'erreur ou autres ben tu est obligé d'aller vider la cellule voulue en "D"
donc si tu sélectionnais une des deux cells en "D"(vide ou pas vide) avant d'utiliser le calendrier
afin de pouvoir jouir du calendrier tout le temps sur tes deux cells

ça serait pas mieux ?
VB:
Dim oldcell As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 4 Then Set oldcell = Target: Exit Sub
    If Not Intersect(Target, Range("K4:Q9")) Is Nothing And Not oldcell Is Nothing Then oldcell = Target.Value
End Sub
😉
 
je dirais même plus précis
vide ou pas vide tu sélectionne celle que tu veux en D2😀3 et tu choisi dans ton calendrier
si par erreur tu choisissais les deux cells en même temps c'est la D2 qui prime
VB:
Dim oldcell As Range 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("D2:D3")) Is Nothing Then Set oldcell = Target(1): Exit Sub
    If Not Intersect(Target, Range("K4:Q9")) Is Nothing And Not oldcell Is Nothing Then oldcell = Target.Value
End Sub
demo7.gif
 
- 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

Réponses
4
Affichages
146
Réponses
12
Affichages
1 K
Retour