IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Comment saisir une date à l'ouverture d'un fichier


Sujet :

Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut Comment saisir une date à l'ouverture d'un fichier
    Bonjour,

    Je travaille actuellement sur un fichier servant à établir des devis à partir de données se trouvant sur plusieurs feuilles et toutes les feuilles se basent sur la même période.

    Le choix du 1er mois de la période est donc primordial : il ne faut donc pas oublier de le mettre.

    QUESTION : existe t-il une formule ou autre qui permette à l'utilisateur de saisir, dès l'ouverture du fichier et à l'aide d'une boîte de dialogue, l'année d'une part et le mois d'autre part de la période de façon à ce que ces données apparaissent dans des cellules spécifiques (ex : feuill1 en D2 et C2).

    Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2007
    Messages : 268
    Points : 351
    Points
    351
    Par défaut
    Un premier conseil : le mois et l'année doivent être des cellules uniques et nommées dans une feuille du classeur.

    Je propose une petite routine VBA qui va demander le renseignement des 2 zones, je pense que l'on peut faire mieux avec un module de classe ou seulement à l'ouverture du fichier, mais cela marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Option Explicit
    Public Statut As Integer
    Dim AA As Integer, MM As Integer
     
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    If Statut = False Then
        AA = InputBox("Année du devis")
        MM = InputBox("Mois du devis")
        Range("Année").Value = AA
    Range("Mois").Value = MM
    End If
     
    Statut = True
    End Sub
    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Salut blepy,

    Où est-ce que je dois taper ton code ?

    Pour infos je ne connais rien en code, mais si tu me dis où le mettre, ça je saurais.

    Merci

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations forums :
    Inscription : Octobre 2007
    Messages : 223
    Points : 229
    Points
    229
    Par défaut
    Bonjour

    1 - Clic droit sur l'onglet de la feuille qui doit contenir le mois et l'année de la période.
    2 - Cliquer sur visualiser le code
    3 - Coller le code de Blepy
    4 - Cliquer sur "Fichier" et sur "Fermer et retourner à Excel"

    Avant cette manipulation nommer les cellules qui doivent recevoir les valeurs année et mois de la période en respectivement : "Année" et "Mois"

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Points : 61
    Points
    61
    Par défaut
    Bonsoir


    Pour être sur que les cellules nommées existent.
    (Ici dans la feuille nommée: Feuil1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ThisWorkbook.Names
        .Add "Année", "=Feuil1!R2C3"
        .Add "Mois", "=Feuil1!R2C4"
    End With
    En reprenant le code de blepy

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
    Dim AA As Integer, MM As Integer
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With ThisWorkbook.Names
        .Add "Année", "=Feuil1!R2C3"
        .Add "Mois", "=Feuil1!R2C4"
    End With
    If IsEmpty([Année]) Then AA = InputBox("Année du devis")
    If IsEmpty([Mois]) Then MM = InputBox("Mois du devis")
    [Année] = AA
    [Mois] = MM
    End Sub
    A+


    J.L

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Salut,

    J'ai trouvé quelque chose de plus complet.

    Regardez, et ça marche très bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Dim nomfeuille1 As String
    Dim i As Integer
    Option Explicit
     
    Private Sub CommandButton1_Click()
    If ListBox1.ListIndex = -1 Then Exit Sub
    If ListBox2.ListIndex = -1 Then Exit Sub
     
    Sheets(nomfeuille1).Range("e2") = ListBox2.List(ListBox2.ListIndex)
    Sheets(nomfeuille1).Range("d2") = Format(ListBox1.List(ListBox1.ListIndex), "mm/dd/yyyy")
     
     
    CommandButton2_Click
    End Sub
     
    Private Sub CommandButton2_Click()
    Unload Me
    End Sub
     
     
     
    Private Sub ListBox2_Click()
    Dim date1 As Date
     
        date1 = "01 / 01 /" & ListBox2.List(ListBox2.ListIndex)
        With ListBox1 ' ComboBox1
            .Clear
            .ColumnCount = 1
            For i = 0 To 11
                .AddItem Format((DateAdd("m", i, date1)), "mmmm yyyy")
            Next i
        End With
    ListBox1.Visible = True
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim trouve As Byte
    Dim date1 As Date
     
     
    trouve = 0
    nomfeuille1 = "Data"
    'feuill1 en D2 et C2
     
     
    If trouve = 0 Then
     
     
        date1 = Format(Now, "dd,mm,yyyy")
        With ListBox2 ' ComboBox1
            .Clear
            .ColumnCount = 1
            For i = 0 To 10
                .AddItem Format((DateAdd("yyyy", i, date1)), "yyyy")
            Next i
        End With
     
     
    End If
    ListBox1.Visible = False
    If trouve = 1 Then
    ListBox1.Visible = False
    ListBox2.Visible = False
    Label1.Visible = False
    Label2.Visible = False
    CommandButton2.Visible = True
    CommandButton1.Visible = False
    Label3.Visible = True
    End If
    End Sub
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
        If CloseMode = vbFormControlMenu Then Cancel = True
    End Sub
    Le résultat de ce code apparaît dans le doc ci-joint.

    Merci encore pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Comment insérer un calendrier pour saisir une date dans un TextBox
    Par jam92400 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/10/2010, 13h50
  2. Comment fixer une date dans un champ !
    Par LATHIOS dans le forum Access
    Réponses: 8
    Dernier message: 17/06/2005, 20h44
  3. []Comment convertir une date GMT en date vb ?
    Par Invité dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 11/08/2004, 17h01
  4. Comment récuperer une date depuis une chaine?
    Par shopoto dans le forum ASP
    Réponses: 4
    Dernier message: 12/05/2004, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo