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 :

Recuperer la valeur du Mois dans une date


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Par défaut Recuperer la valeur du Mois dans une date
    Bonjour,

    Mon probleme est relativement simple : j'ai une colone dans laquelle j'ai une serie de date.
    je souhaite ecrire dans une colonne le numero du mois correspondant a la date.

    J'ai code ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Mois()
     
    Dim C As Range
     
    For Each C In Range(Cells(1, 1) & Cells(Rows.Count, 1).End(xlUp))
     
    NummerMonat = Format(Month(C.Value))
     
    C.Offset(0, 3) = NummerMonat
     
    Next
     
    End Sub
    Mais cela ne m'affiche qu'une erreur : erreur 1004, l'outil Range n'est pas adapte pour une utilisation globale (traduction depuis l'allemand).

    Je suis regulierement confronte a cette erreur, mais je ne sais jamais comment la corriger.

    Merci d'avance.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    Tu peux aussi essayer avec le traitement de chaînes de caractères. Tu as un très bon tuto sur ce site (j'ai donné le lien dans un des sujets d'aujourd'hui).

    Ca sera peut-être plus simple.

    Bonne chance.

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Par défaut
    Mon probleme est que je suis oblige (je pense) d'utiliser la boucle For Each C in range... puisqu'il faut que je fasse cette operation pour toutes les cellules de la colonne.

    Et c'est de cette instruction que mon probleme provient (pour le moment).

    Neanmoins la lecture de ce tuto a ete instructif et je t'en remercie.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Pour la boucle, je vois que tu veux boucler sur les cellules de la colonne A :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim i as long
     
    For i = 1 to Range("A65536").End(xlup).row
     
    Next
    Du coup, au lieu d'écrire C.value, tu peux écrire :

    Cela fonctionnera comme ça.

  5. #5
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour Potzo;DeaD78. essai comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub es()
    Dim i As Long
      For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
      Cells(i, 3) = Month(Cells(i, 1))
        Next
     End Sub
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(i, 3) = MonthName(Month(Cells(i, 1)))

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Mois2()
     
    Dim i As Long
     
      For i = 1 To Range("A65536").End(xlUp).Row
      Cells(i, 3).Value = Format(Month(Range("A" & i).Value))
    Next
     
     
     
    End Sub
    Ce code marche, j'ai mixe vos deux solutions. Je vous remercie de vos reponses.

    Mais si quelqu'un a la reponse concernant ce que j'avais ecris au debut, il est le bienvenue.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    bonjour

    le probleme vient de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each C In Range(Cells(1, 1) & Cells(Rows.Count, 1).End(xlUp))
    regarde bien la syntaxe

    soit il faut utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each C In Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1))
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each C In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)

  8. #8
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Récupération de date
    Bonjour,

    Si tes dates sont dans une même colonne, et sont contigües

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub MacroMois()
        Dim c As Range
        Set c = Range(Range("B1").End(xlDown), Range("B65536").End(xlUp)).Offset(0, 1)
        c.Formula = "=MONTH(RC[-1])"
    End Sub
    Cordialement

    Marcel.

  9. #9
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Récupération Mois
    Re,

    La précédente réponse était arrivée pendant que je rédigeais.

    Que pensez-vous de ma solution?

    Cordialement.

    Marcel

  10. #10
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Par défaut
    Ta methode ne m'affiche que des 1 Marcel.

    Finalement j'ai pu corriger mon code grace a la correction de zyhack.

    Merci a tous en tout cas !

  11. #11
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Par défaut
    C'est assez etrange.

    Ma macro s'execute tres bien dans un fichier test, mais quand je la met dans mon fichier cible, cela m'affiche une erreur comme quoi NummerMonat est une type incompatible...

  12. #12
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re, tu as declare comment NummerMonat qui sert a rien d'ailleurs???

  13. #13
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Par défaut
    Dans mon fichier de test, je ne le declare pas et ca fonctionne.

    Mais vu que tu dis que ca ne sert a rien, je viens de l'enlever et ca marche maintenant

    Effectivement il etait inutile, par contre, je me demande bien comment mon programme s'est mis a ne plus marcher alors que j'ai fait un simple copier/coller et que les colonnes sont les mêmes...

    Mais bon, le principal est que ca fonctionne !

    Re-merci !

    EDIT : Orthographe

  14. #14
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Récupération mois date
    Re,

    Je me permets de m'imiscer.

    J'en reviens au code que je t'ai proposé.
    Tes données sont-elles au format date ?
    Ici, j'ai pris l'exemple de la colonne B contenant tes dates, mais il faut bien entendu adapter.

    J'ai effectué un nouvel essai. Sans problème.

    A plus.

    Marcel

  15. #15
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re, salut marcel je viens de tester chez moi ca marche trés bien

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

Discussions similaires

  1. Récupérer le jour, le mois dans une date mysql
    Par sandddy dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/03/2008, 11h54
  2. Extraction du mois dans une date
    Par Kallamou dans le forum Access
    Réponses: 4
    Dernier message: 02/02/2007, 22h13
  3. [Dates] ajouter des mois dans une date
    Par illegalsene dans le forum Langage
    Réponses: 7
    Dernier message: 16/01/2007, 14h41
  4. [Dates] récupérer le mois dans une date
    Par griese dans le forum Langage
    Réponses: 3
    Dernier message: 06/06/2006, 15h25
  5. [LG] Extraire le mois dans une date en PASCAL
    Par JPCOCU dans le forum Langage
    Réponses: 1
    Dernier message: 03/10/2005, 15h40

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