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 :

changement date en semaine [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 29
    Points
    29
    Par défaut changement date en semaine
    Bonjour à tous,

    j'ai 2 questionS:

    1) J'enregistre dans la useform des dates au format jj/mm/aaaa et j'aimerais au moment de les inserer qu'il devienne sous un format semaine/aa.

    2) j'ai tout un tas de produit qui vont de la ligne F4 à HV4. Dans ma useform je peux choisir le type de produit et sa quantitéet et je souhaiterais pourvoir insérer la qté dans la colonne correspondant au produit demandé.

    Je vous mets le fichier en copie

    Merci

    Nicolas
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Points : 1 656
    Points
    1 656
    Par défaut
    Salut

    Pour ta première question, tu peux utiliser la fonction format. Un petit exemple a adapter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim str_date As Date
    str_date = "21/12/2012"
     
    MsgBox Format(str_date, "ww/yy")

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    salut,

    je te remercie pour ta réponse mais en faite j'ai besoin que la date sous format "jj/mm/aa" soit changé en "ww/aa" au moment de l'insérer dans la cellule.

    Je remets mon fichier excel ca je me suis aperçu que celui que j'avais mis n'avais pas de macro.

    Cordialement

  4. #4
    Membre régulier Avatar de gnusti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 55
    Points : 77
    Points
    77
    Par défaut
    Bonjour,

    Pour te répondre sur le second point, voici une piste à adapter :

    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
     
     
    Public Sub Main()
        {...}
        Feuil1.cells(laLigneOuEcrire, getColonneProduit(leNomDeMonProduit)).value = maQuantité
        {...}
    End Sub
     
    Public Function getColonneProduit(vProduit As String) As Integer
        'Cette fonction renvoie 0 si la colonne du produit n'est pas trouvée sinon, le numéro de la colonne
        Dim colonne as Integer
     
        colonne = 6
        getColonneProduit = 0
     
        While Feuil2.cells(4, colonne).value <> ""
            If Feuil2.cells(4, colonne).value = vProduit Then getColonneProduit = colonne
            colonne = colonne + 1
        Wend
     
    End Function
    Dans le Main(), il faut penser à vérifier si tu ne récupères pas 0 etc. mais l'idée est là...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    Re all

    bon j'essaye mais je n'y arrive pas, je dois être trop C... aujourd'hui. (2 ans sans pratiquer et c'est le bordel).

    J'ai vu pein de truc pour la date mais je narrive pas a l'adapter correctement.

    Merci tout le monde

  6. #6
    Membre expérimenté Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Points : 1 656
    Points
    1 656
    Par défaut
    Salut,

    Je ne comprend pas pourquoi ma solution ne te satisfait pas. si tu as ta variable en type date "jj/mm/aaaa" et que tu veux la mettre dans une cellule en mode "ww/yy", il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub datete()
     
    Dim maDate As Date
     
    maDate = Cells(1, 1).Value
     
    Cells(1, 2).Value = Format(maDate, "ww/yy")
     
    End Sub

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Citation Envoyé par nchal Voir le message
    Salut,
    Je ne comprend pas pourquoi ma solution ne te satisfait pas. si tu as ta variable en type date "jj/mm/aaaa" et que tu veux la mettre dans une cellule en mode "ww/yy", il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub datete()
    Dim maDate As Date
    maDate = Cells(1, 1).Value
    Cells(1, 2).Value = Format(maDate, "ww/yy")
    End Sub
    Le problème c'est que si le n° de la semaine est inférieure à 13, le résultat escompté ne sera pas visible.
    En faisant précéder le code ASCII 39 soit l'apostrophe, cela fonctionnera à coup sûr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1, 2).Value = Chr(39) & Format(maDate, "ww/yy")

  8. #8
    Membre expérimenté Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Points : 1 656
    Points
    1 656
    Par défaut
    salut,

    Philippe, une explication du pourquoi du comment ? J'avais jamais fais gaffe que si ww<13 sa ne marchais pas

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    Merci pour ces réponses mais le souci est toujours le même.
    Je prends l'exemple de cette année avec le 31/12/2012, il me traduit par 53/12 hors c'est la semaine 01/13.

  10. #10
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    C'est un bug
    Les fonctions Format et DatePart peuvent renvoyer un numéro de semaine erroné pour le dernier lundi de l'année
    Tu as les explications là --> http://blog.developpez.com/philben/p...-des-semaines/

  11. #11
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    voilà le bout de code que j'ai fait, je pense qu'il peut etre mieux ecrit mais bon c'est déjà pas mal pour un pays comme le mien.

    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
    Private Sub CommandButton1_Click()
     
    Dim ligfin As Long
    Dim ws As Worksheet
    Dim Madate As Date
    Dim val1 As String, val2 As String
     
    Madate = Format(Date, "dd/mm/yy")
     
    Set ws = Sheets("feuil2")
     
        ligfin = ws.Range("a65000").End(xlUp).Row + 1
        ws.Rows(ligfin).Insert Shift:=xlDown
     
        ws.Range("c" & ligfin) = UserForm1.ComboBox1
        ws.Range("a" & ligfin) = UserForm1.TextBox1
        ws.Range("b" & ligfin) = UserForm1.TextBox2
        ws.Range("d" & ligfin) = UserForm1.TextBox4
        ws.Range("e" & ligfin) = UserForm1.TextBox5
     
    val1 = Madate
    val2 = Chr(39) & Format(Madate, "ww/yy")
    Cells.Replace What:=val1, Replacement:=val2, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
     
    Unload UserForm1
     
    End Sub
    Le souci est avec la fonction "replace", elle ne veut pas fonctionner. Elle ne me remplace pas ma dtae sous format "dd/mm/yyyy" par "ww/yy".

    Je peux peut-être changer directement le format de mon textbox4 et 5 quand je les copie dans mes cellules?

    Et en plus je mets le fichier :-)

    Merci
    Fichiers attachés Fichiers attachés

  12. #12
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    Re,

    personne pour un petit coup de main?

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

Discussions similaires

  1. Convertion date en semaine
    Par pafi76 dans le forum Access
    Réponses: 2
    Dernier message: 28/06/2006, 15h39
  2. Excel : Date et semaine
    Par Ryadus dans le forum Excel
    Réponses: 2
    Dernier message: 26/06/2006, 16h21
  3. [Dates] date -> mois / semaines
    Par highman dans le forum Langage
    Réponses: 5
    Dernier message: 03/05/2006, 10h47
  4. [excel] changement date de creation fichier
    Par djibril dans le forum Excel
    Réponses: 5
    Dernier message: 14/03/2006, 19h47
  5. [CR]grouper des dates par semaines, mais semaines FR !
    Par neo.51 dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 18/05/2004, 20h43

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