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

Macros et VBA Excel Discussion :

Affichage date du mois en cours sur une colonne et une ligne sur trois [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Points : 53
    Points
    53
    Par défaut Affichage date du mois en cours sur une colonne et une ligne sur trois
    Bonjour à toutes et à tous

    Dans un fichier excel, j'aimerais avoir sur toute une colonne les dates de tous le mois en cours.
    Par exemple pour le mois d'aout avoir 01-aout-09 sur la ligne 6 puis 02-aout-09 sur la ligne 9 puis 03-aout-09 sur la ligne 12 et ainsi de suite jusque la fin du mois. Puis en cliquant sur un bouto la colonne se mettrait à jour du mois en cours.

    Pour l'instant avec un code tout simple j'arrive a afficher la même date sur une colonne, mais seulement à partir du jour ou je clique dessus, et je n'arrive pas à l'inscrire une ligne sur 3. En gros j'arrive pas a faire grand chose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub mise_date()
            For i = 6 To 96
                Worksheets("test").Cells(i, 1) = Date
            Next i
    End Sub
    De l'aide serait appreciée

    Merci beaucoup,

    bonne journée

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Un bout de code qui devrait t'avancer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub mise_date()
    Dim i As Integer
    Dim dteDate As Date
     
    dteDate = Now
     
     
            For i = 6 To 96
                dteDate = DateAdd("D", 1, dteDate)
                Me.Cells(i, 1).Value = dteDate
            Next i
    End Sub
    Jérôme

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    pour commencer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim i As Integer
            For i = 0 To 30
                Sheets("test").Cells(3 * i+6, 1) = Date + i
            Next i
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  4. #4
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Pour ecrire toutes les 3 lignes ajoute le code ci dessous avant le next

    Jérôme

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Points : 53
    Points
    53
    Par défaut
    Malin ta solution mercatog.

    D'accord j'avais deja ajouté i=i+2 mais sur la même ligne que le next, donc ça ne marchait pas.

    Avez vous une idée pour que la date commence au premier jour du mois et non pas à la date actuelle (ou date actuelle +1 pour la solution de jfontaine)

    Sinon, il suffit d'appuyer sur le bouton du premier jour du mois.

    Merci pour votre aide en tous cas.

  6. #6
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Pour commencer sur le premier jour du mois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub mise_date()
    Dim i As Integer
    Dim dteDate As Date
    
    dteDate = "01/" & Month(Date) & "/" & Year(Date)
    
    
            For i = 6 To 96
                Me.Cells(i, 1).Value = dteDate
                dteDate = DateAdd("D", 1, dteDate)
                i = i + 2
            Next i
    End Sub
    Jérôme

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Points : 53
    Points
    53
    Par défaut
    Merci, mais chez moi ca commence a partir du 2eme jour.
    Je pense que ca vient de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dteDate = DateAdd("D", 1, dteDate)
    mais je ne sais pas comment corriger cette erreur car si on met 0 ça commence bien à 1 mais ne s'incremente pas.

  8. #8
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Regarde dans mon dernier exemple j'ai inversé 2 lignes qui évite ce probleme
    Jérôme

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Points : 53
    Points
    53
    Par défaut
    Merci beaucoup pour votre aide.

    Tout marche comme voulu.

    Bonne journée

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. Comment filtrer des lignes sur la valeur d'une colonne
    Par BerBiX dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/06/2010, 13h46
  3. Réponses: 3
    Dernier message: 11/03/2010, 11h44
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Réponses: 2
    Dernier message: 17/04/2007, 17h14

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