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 :

vba combobox format date


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut vba combobox format date
    un petit fichier excel recettes avec un menu + 12 pages j'ai fait un userform avec un listebox avec
    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
     
    For i = 2 To 3 ' je modifierai mon i après car je travaille pour le moment sur deux feuilles janvier,fevrier pour alleger le fichier) 
     
        Me.ListBox1.AddItem ThisWorkbook.Worksheets(i).Name 
    'mon probleme se situe sur la combobox jours si je rentre 1.2.3 etc cela 'marche nickel avec le code 
     
    X = .Range("A65536").End(xlUp).Row
     
            For i = 5 To X
                If IsNumeric(.Cells(i, 1)) Then
                If Val(Me.ComboBox1) = Val(.Cells(i, 1)) Then L = i
                End If
            Next
     
            If L = 0 Then
    mais je souhaite utiliser le format " jjjj jj " ma combobox là commence à faire des siennes puisque cela se sort " 01/01/09 " mon vrai problème se situe ce que je souhaite passer la colonne date en B pour pouvoir utiliser nosemaine.

    j'imagine que le range est faux j'ai tenté b65536 mais je pense qu'il faut que j'utilise columm or je connais pas cette commande .et après de multiples essais je n'y arrive pas je cale

    concernant les textobox ce code s'applique sur la feuille janvier je ferais la modif lorsque mon soucis sera resolu

    je joins mon fichier allégé pour plus d'explications
    Fichiers attachés Fichiers attachés

  2. #2
    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
    Bonjour,
    je me suis permis de changer ton code comme ceci
    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
    Private Sub CommandButton1_Click()
    Dim L As Byte, X As Byte, i As Byte
        If Me.ListBox1.ListIndex = -1 Then
                MsgBox "Veuiller indiquer un mois", vbCritical
        Exit Sub
        End If
         With WS
            L = Me.ComboBox1.ListIndex + 5      
            If Me.ComboBox1.ListIndex = -1 Then
                    MsgBox "Veuiller indiquer un jour", vbCritical
                Exit Sub
            End If       
            On Error Resume Next
            .Range("B" & L).Value = CDbl(.Range("B" & L).Value) + CDbl(Me.TextBox1)
            .Range("C" & L).Value = CDbl(.Range("C" & L).Value) + CDbl(Me.TextBox2)
            .Range("D" & L).Value = CDbl(.Range("D" & L).Value) + CDbl(Me.TextBox3)        
        End With
    For X = 1 To 3
        Me.Controls("TextBox" & X) = ""
    Next
    End Sub
    Edit: les dates de février sont toujours dans la colonne A
    Edit2: si tu veux récupperer dans ta combo les dates de la colonne B il fallait modifier ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ListBox1_Click()
    Dim L As Integer
    Dim i As Byte
    Set WS = ThisWorkbook.Sheets(CStr(Me.ListBox1))
    L = WS.Range("B65536").End(xlUp).Row   '<<<<<<---ICI
    For i = 5 To L
        Me.ComboBox1.AddItem WS.Cells(i, 2)  '<<<<<<---ICI
    Next
    WS.Activate
    End Sub
    ou sans boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub ListBox1_Click()
    Dim L As Integer
    Dim i As Byte
    Set WS = ThisWorkbook.Sheets(CStr(Me.ListBox1))
    L = WS.Range("B65536").End(xlUp).Row                    '<< ICI colonne B
    Me.ComboBox1.RowSource = WS.Name & "!B5:B" & L   '<< ICI colonne B
    WS.Activate
    End Sub

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    pourquoi aller dans le compliqué lorsque qu'il fallait juste changer la lettre j'avais essayer cette option mais pas penser au decalage 2

    merci

    maintenant il faut que je m'attaque aux doubles calculs car je me suis aperçu que si reprenait une date déja saisie, il rajoutais, je pense que IsNumeric me cause ce problème, il va falloir modifier ce code encore de longues nuits en perpectives avec mon autre " problème mineur"" et surtout de confort de vouloir le format jjjj jj mais bon comme cela je redécouvre le vba longtemps délaisser et en partie oublier

  4. #4
    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
    Ici tu veux qu'il rajoute les nouveau montant issus de ton userform à ceux existant dans ta feuille (pour le date choisie)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            .Range("B" & L).Value = CDbl(.Range("B" & L).Value) + CDbl(Me.TextBox1)
            .Range("C" & L).Value = CDbl(.Range("C" & L).Value) + CDbl(Me.TextBox2)
            .Range("D" & L).Value = CDbl(.Range("D" & L).Value) + CDbl(Me.TextBox3)

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    bizarrement, j'ai déjà ce code dès le départ, pensant comme toi mais je me suis aperçu qu' il continu à rajouter les sommes

  6. #6
    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
    Re bonjour,
    si tu ne veux pas que les nouvelles valeurs des 3TextBox s'ajoutent aux valeurs existantes dans ta feuille, tu n'as qu'à faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .Range("B" & L).Value = CDbl(Me.TextBox1)
            .Range("C" & L).Value = CDbl(Me.TextBox2)
            .Range("D" & L).Value = CDbl(Me.TextBox3)

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci je suis vraiment irrécupérable même pas vu le + et je l'ai mis en plus car avant je voulais voir l'historique des modif, j'ai effacé le code d'un coté mais pas dans l'autre à vouloir trop compliquer

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

Discussions similaires

  1. Combobox : format date
    Par xuorel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/07/2014, 12h42
  2. [XL-2010] Combobox Format Date
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/11/2012, 10h32
  3. [AC-2007] Erreur VBA sur format date
    Par Mopagano dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/01/2011, 11h15
  4. [VBA-E] Format date SAP vers Excel
    Par Eva_75 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/07/2007, 14h38
  5. [VBA-E] format date/mois en entier : résultat bizarre
    Par illight dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/07/2006, 15h05

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