XL 2010 [Résolu] Afficher résultats par dates dans Listview

grisan29

XLDnaute Accro
bonsoir a vous
il y a quelques bug, notamment quand on veux créer une nouvelle commande ou l'erreur automation s'affiche et part sur l'usf_commande et le bug s'arrete a l'init_feuilles
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Pascal, le Forum :)

Je vais regarder cela, c'est bizarre??? o_O

Edit: comment tu fait pour prendre la commande?? Moi je n'ai pas ce souci. Il y a juste une correction à faire au bouton Quitter.

With WsC
k = .Range("b65536").End(xlUp).Row
If ComboBox1 = "" Or ComboBox3 = "" Then .Range("z1").Value = .Cells(k, 2).Value
End With


Moi j'ai un problème avec cette macro, pour copier les lignes filtrées.

VB:
Sub test()
Dim i As Long
Application.ScreenUpdating = False
With Sheets("Sorties")
derlig = .Range("b65536").End(xlUp).Row
date1 = DateSerial(2016, 9, 1)
article = .Range("c75").Value  'Peignoire adulte divers coloris
For i = derlig To 2 Step -1
  If Month(.Cells(i, 2).Value) <> Month(date1) And .Cells(i, 3).Value <> article Then
    Select Case .Cells(i, 3).Value
        Case "C", "D"
        Exit For
        Case Else
        .Rows(i).Hidden = True
    End Select
End If
Next i
End With
End Sub

Pour l'ensemble des aricles du même mois, c'est ok; mais pas avec l'exemple.
 
Dernière édition:

Bebere

XLDnaute Barbatruc
bonjour Dodo,Grisan
un exemple filtre élaboré,code module1
pour Grisan
je pense que c'est la variable wbBase le problème
Sub Init_Feuilles()
Dim Sh As Worksheet, lig%, k&
Set WbBase = Workbooks("Base.xlsm")'ligne à ajouter
 

Fichiers joints

Lone-wolf

XLDnaute Barbatruc
Bonsoir René,

Encore une fois c'est peut-être un malentendu. Le fitre doit être appliqué d'après la combo des mois de l'usf Etats. J'ait fait une modification pour cette combo. D'abord j'ai inscrit sur la feuille comme ceci

VB:
With WsSort
For i = 1 To 12
.Range("u" & i + 1) = Format(CDate("01/" & i & "/" & UsfEtats.ComboBox1), "dd.mm.yyyy")
Next i
End With
Ensuite

VB:
With WsSort
derlig = .Range("u" & Rows.Count).End(xlUp).Row
For k = 2 To derlig
UsfEtats.ComboBox3.AddItem Format(.Range("u" & k), "mmmm")  'ComboBox Mois
Next k
End With
En Pj, le fichier à utiliser.

Attention! Ce n'est plus "Base" mais "Data" le classeur à ouvrir. Voir le module Initialisation_Classeur_Base et pour les variables "Variables_Public".
 

Fichiers joints

Dernière édition:

grisan29

XLDnaute Accro
bonsoir bebere et Lone-wolf
il n'y a pas de classeur "base" donc ca bug sur ta ligne de code
non c'est juste qand je clique sur le bouton il me demande si je veux inscrire une nouvelle commande , je clic sur oui et je passe a l'erreur 13 incompatibilité de type et l'appui sur f8 fait défilé jusque l'erreur qui est a l'une ou l'autre des lignes montview
Code:
DateCom = Format(Date, "dd.mm.yyyy")
Me.MonthView1 = DateCom
Me.MonthView1.Visible = False
DifMontant = Format(DifMontant, "0.00")
NumCom = WsC.Range("k1").Value
j'ai supprimer les montview et remis d'autres et le bug est le même
 

grisan29

XLDnaute Accro
bonjour Lone-wolf
j'ai toujours les mêmes bug et pourtant toutes les références sont inscrites
mais peut etre est ce parce que l'ouvre avec office 2013
 

Fichiers joints

ChTi160

XLDnaute Barbatruc
Bonjour Low-Wolf
Bonjour le fil,Le Forum

le problème des "MonthWiev" vient peut être du format de la date que tu veux y affecter
j'ai mis "Date" à la place de la date formatée du Control "DateCom"

VB:
DateCom = Format(Date, "dd.mm.yyyy")
Me.MonthView1 = Date
En espérant avoir fait avancer le Schimilimblick Lol
J ai constate d autres bugs toujours en rapport avec le format de tes dates"dd.mm.yyyy"
Je pense que tu devrais utiliser la propriete "Tag" des differents control TextBox ou tu sotckes tes dates
Ex: DateCom=Format(Date,"dd.mm.yyyy")
Et mettre DateCom.Tag=format(Date,"00000")
Et ainsi pour les differents control qui contiennent une Date
Bonne journée
Amicalement
Jean marie
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonjour Jean Marie :)

Comme je l'ai dit dans un précédent message, je suis en Suisse, et les paramètres par défaut des dates sont dd.mm.yyyy. Personellement, je n'ai pas ce problème avec

TextBox2 = Format(CDate(MonthView1), "dd.mm.yyyy")
TextBox3 = Format(CDate(MonthView1), "dd.mm.yyyy")

Il est clair que comme vous, vous êtes en France, il faut remplacer le point par le slash.
 

Lone-wolf

XLDnaute Barbatruc
Re à tous,

@ René: j'ai modifier certaines macros de l'UsfEtats. J'ai un souci de lenteur quand je clique sur Produits de la ListView1, pour alimenter la combobox4, pourtant j'ai bien un tableau; et aussi au clic, la sélection de la ligne se fait après quelques secondes. Ensuite pour voir l'aperçu, le classeur Data devient noir??? :eek:
 

Fichiers joints

grisan29

XLDnaute Accro
bonsoir Lone-wolf, chti60 et le forum
chti60:) heureusement que ta locomotive n'est pas en panne car la mienne a oublier que notre ami est en suisse et rien que le fait de remplacer les . par / et cela a éteints les bugs d'où le classeur fonctionne bien, du moins l'essai fait sur la partie qui (bugglait) buggait trop vite
 

Lone-wolf

XLDnaute Barbatruc
Bonsoir Pascal,

c'est bien ce que je disait au post #110 :)

Si je met les slash's, la date est considérée comme du texte et non une date valide.
 

ChTi160

XLDnaute Barbatruc
Re
En utilisant la propriete "Tag" des divers controles , on y stocke la date sous forme long "00000" si c est possible pour Lone-Wolf, et ainsi quelque soit ton pays lol ca fonctionne.
Je suis dans le train donc pas excel ,mais je regarde cela demain
Bonne fin de soiree
Amicalement
Jean marie
 

Bebere

XLDnaute Barbatruc
bonjour Dodo,Grisan,Jean Marie
côté date déjà eut un échange avec Dodo,si la date est du texte,employé Cdate ou dateserial
pour ma part j'essaye d'utiliser le fichier comme Dodo,j'ai un problème avec monthview
qui vient de mscomtc2.ocx.Apparemment Microsoft met des versions anciennes
essais de plusieurs et aussi essai de réparation d'office
pour ma part office est en 32bits et le répertoire est c:>windows\systeme32 pour mscomtc2
fait aussi via la fenêtre exécuter la ligne de commande pour le régistre ,chaqu fois une erreur
où se niche la bonne version.J'utilise un datepicker fabrication artisanale et jamais de problème
Dodo je regarde ta demande
Un petit coup de sifflet pour démarrer la loco de Jean Marie.Petit est mieux qu'impératif

edit Dodo:mon dernier post était une réponse au code test que tu as mis
 

Lone-wolf

XLDnaute Barbatruc
Bonjour René, le Forum :)

Voilà, j'ai apporter certaines modifications des macros de l'UsfEtats et déplacer la macro de suppression des doublons dans le classeur Data. En PJ.
 

Fichiers joints

Bebere

XLDnaute Barbatruc
bonjourDodo,Grisan,Jean Marie
c'est la boucle qui rend du temps ,ce qui suit est plus rapide
ne pas oublier Dim a()
Code:
With WsStock
  tablo1 = .Range("c2:c" & .Range("c" & Rows.Count).End(xlUp).Row).Value
Set dico = CreateObject("Scripting.Dictionary")
For k = 1 To UBound(tablo1)
dico(tablo1(k, 1)) = tablo1(k, 1)
Next k
UsfEtats.ComboBox4.List = dico.Items
derlig = .Range("c" & Rows.Count).End(xlUp).Row
'For k = 2 To derlig
a = .Range("c2:c" & k): WsVentes.Range("b4").Resize(UBound(a, 1), UBound(a, 2)) = a
a = .Range("i2:i" & k): WsVentes.Range("c4").Resize(UBound(a, 1), UBound(a, 2)) = a
'Next k
'.Range("b2") = "Vente Mensuelle  " & Format(ComboBox3, "mmmm") & " " & ComboBox1.Value
End With
 

Lone-wolf

XLDnaute Barbatruc
Bonjour René :)

Merci, je vais l'inscrire. ;)

J'ai aussi un sérieux problème avec ceci, dans l'usfModCommandes bouton Modifier. Je n'est pas chercher dans les messages, si tu as apporté les modifications, sorry. :oops:

VB:
With WsDC
plg = .Range("c" & Rows.Count).End(xlDown).Row
Set plage = plg.Find(CmbCommandes, xlValues, xlWhole)
          If Not cel Is Nothing Then
              For Each cel In plage
           Set c = cel.Offset(0, 1).Find(CmbArticles, xlValues, xlWhole)
            If c.Offset(0, 1).Value = CmbArticles.Value Then Exit For
                Ligne = c.Offset(0, 1).Row
           Next cel
           Ligne = Ligne + 1
          End If
    If MsgBox("Voulez-vous modifier cet enregistrement ?", vbYesNo, _
              "LES MILLES MERVEILLES") <> vbYes Then Exit Sub
      .Cells(Ligne, 5) = Format(TxtQte, "0")
      .Cells(Ligne, 6) = Format(TxtPrix, "0.00")
      .Cells(Ligne, 7) = Format(Pourcent, "0%")
      .Cells(Ligne, 8) = Format(TxtDif, "0.00")
      .Cells(Ligne, 9) = Format(TxtMontant, "0.00")
  End With
 

Lone-wolf

XLDnaute Barbatruc
Re René

Je viens de faire un test avec ceci, et toujours pas de modifications.

VB:
With WsDC
For Each cel In .Range("c2:d" & .Range("d65536").End(xlUp).Row)
If cel.Offset(0, 0) = NCom And cel.Offset(0, 1) = Rart Then
      cel.Offset(0, 2) = Format(TxtQte, "0")
      cel.Offset(0, 3) = Format(TxtPrix, "0.00")
      cel.Offset(0, 4) = Format(Pourcent, "0%")
      cel.Offset(0, 5) = Format(TxtDif, "0.00")
      cel.Offset(0, 6) = Format(TxtMontant, "0.00")
    End If
    Next cel
  End With
 

Bebere

XLDnaute Barbatruc
Dodo
dans le classeur Les Mille Merveilles(21),il y a des changements
en rapport avec ton problème,autre solution avec une boucle for each plus rapide
Code:
    If MsgBox("Voulez-vous modifier cet enregistrement ?", vbYesNo, _
              "LES MILLES MERVEILLES") <> vbYes Then Exit Sub

    Total = CDbl(TxtPrix) * CDbl(TxtQte)
    'Montant = Total - Dif
    'Pourcent = Val(CmbRabais) / 100
    Dif = Total * (Val(CmbRabais) / 100)    'Pourcent
    Montant = Total - Dif

    With WsDC
        Set cel = .Columns("C").Find(CmbCommandes, , , xlWhole)
        If Not cel Is Nothing Then
            cel.Offset(0, 1) = CmbArticles
            Set cel = .Columns("D").Find(cel.Offset(0, 1), , , xlWhole)

            '    If MsgBox("Voulez-vous modifier cet enregistrement ?", vbYesNo, _
                 '              "LES MILLES MERVEILLES") <> vbYes Then Exit Sub
            Ligne = cel.Row
        Else
            Exit Sub
        End If
        .Range("d" & Ligne) = CmbArticles
        .Range("e" & Ligne) = Format(TxtQte, "0")
        .Range("f" & Ligne) = Format(TxtPrix, "0.00")
        .Range("g" & Ligne) = Format(Val(CmbRabais) / 100, "0%")
        .Range("h" & Ligne) = Format(TxtDif, "0.00")
        .Range("i" & Ligne) = Format(TxtMontant, "0.00")
    End With
edit:y a t'il quelqu'un qui pourrait m'envoyer mscomct2.ocx compatible office2010
 

Haut Bas