Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel

Excel Forum d'entraide sur Excel

Réponse
 
Outils de la discussion
Vieux 26/08/2008, 11h36   #1 (permalink)
Membre du Club
 
Date d'inscription: mai 2008
Messages: 103
Par défaut calendrier inséré dans excel

bonjour
je voudrais insérer un calendrier dans un fichier excel lorsque l'on clique dans une cellule qui se situe entre L9 et L364.

j'ai fait un code mais ca ne marche pas, je ne comprends pas ce qui va pas.
Code :
Private Sub Calendar1_Click()
    range("l9:l364").Select
    For Each range In Selection
    If range.Select Then
    range.Value = Calendar1.Value
    End If
    Next
End Sub
 
Private Sub worksheet_selectionchange(ByVal target As range)
    Dim intersection As range, plage As range
        Set plage = range("l9:l364")
        Set intersection = Application.Intersect(target, plage)
        If Not (intersection Is Nothing) Then
        Calendar1.Visible = True
        End If
End Sub
 
Private Sub calendar1_lostfocus()
    Calendar1.Visible = False
End Sub
à la 3e ligne, il me met argument non facultatif sur le mot range...
quelqu'un a une idée ?
edonist est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 26/08/2008, 11h47   #2 (permalink)
Rédacteur/Modérateur
 
Avatar de fring
 
Date d'inscription: février 2008
Localisation: Bxl
Âge: 45
Messages: 2 667
Par défaut

Bonjour,

Pourquoi pas simplement...
Code :
Private Sub Calendar1_Click()
    ActiveCell = Calendar1.Value
 End Sub
 


Et pour la procédure événementielle
Code :
Private Sub worksheet_selectionchange(ByVal target As range)
    Dim plage As range
        Set plage = range("l9:l364")
        If Not Application.Intersect(target, plage) Is Nothing Then
                Calendar1.Visible = True
        End If
End Sub
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Prenez quelques secondes pour lire ceci : Aide sur l'utilisation des boutons du forum

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 26/08/2008, 12h49   #3 (permalink)
Membre du Club
 
Date d'inscription: mai 2008
Messages: 103
Par défaut

yes!
ca fonctionne tres bien!

voici mon code:
Code :
Private Sub Calendar1_Click()
    ActiveCell.Value = Calendar1.Value
    Calendar1.Visible = False
End Sub
 
Private Sub worksheet_selectionchange(ByVal target As range)
    Dim plage As range
        Set plage = range("l9:n364")
        If Not Application.Intersect(target, plage) Is Nothing Then
        Calendar1.Visible = True
        Else
        Calendar1.Visible = False
        End If
End Sub
 
j'ai rajouté les colonnes M et N

Maintenant comment faire si je veux rajouter en + la colonne H qui n'est pas accollée aux autres colonnes ?
j'ai essayé en séparant par une virgule mais ça me valide égalemant les colonnes qui se situent entre H et L...

ooops!
ben ca y est, j'ai deja trouvé!

Code :
Private Sub Calendar1_Click()
    ActiveCell.Value = Calendar1.Value
    Calendar1.Visible = False
End Sub
 
Private Sub worksheet_selectionchange(ByVal target As range)
    Dim plage As range
        Set plage = range("l9:n364, h9:h364")
        If Not Application.Intersect(target, plage) Is Nothing Then
        Calendar1.Visible = True
        Else
        Calendar1.Visible = False
        End If
End Sub
encore merci pour tout

Dernière modification par fring ; 26/08/2008 à 12h57 Motif: fusion de 2 messages
edonist est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 26/08/2008, 13h06   #4 (permalink)
Membre du Club
 
Date d'inscription: mai 2008
Messages: 103
Par défaut

heu... encore une petite question:

mon tableau traine en longueur, et je voudrais en fait que le calendrier s'affiche à côté de la cellule sur laquelle on clique. c'est possible de faire ça ?
(parce que quand je clique sur la colonne Y, si il s'affiche dans la colonne H, ca le fait pas...)
edonist est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 26/08/2008, 13h13   #5 (permalink)
Rédacteur/Modérateur
 
Avatar de fring
 
Date d'inscription: février 2008
Localisation: Bxl
Âge: 45
Messages: 2 667
Par défaut

Tu peux essayer ceci :
Code :
Private Sub worksheet_selectionchange(ByVal target As range)
    Dim plage As range
        Set plage = range("l9:n364, h9:h364")
        If Not Application.Intersect(target, plage) Is Nothing Then
        Calendar1.Top = ActiveCell.Top
        Calendar1.Left = ActiveCell.Left
        Calendar1.Visible = True
        Else
        Calendar1.Visible = False
        End If
End Sub
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Prenez quelques secondes pour lire ceci : Aide sur l'utilisation des boutons du forum

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 26/08/2008, 13h27   #6 (permalink)
Membre du Club
 
Date d'inscription: mai 2008
Messages: 103
Par défaut

merci c'est genial!
edonist est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide