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 :

Synthèse en fonction de critères user form


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant en gestion de la relation client (GRC)
    Inscrit en
    Août 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en gestion de la relation client (GRC)
    Secteur : Alimentation

    Informations forums :
    Inscription : Août 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Synthèse en fonction de critères user form
    Bonjour à tous.
    Je suis nouveau sur le forum et un peu débutant en vba, mais j'ai déjà trouvé plein d'aide sur ce forum.
    Mais maintenant, je me retrouve confronté à un problème, qui ne paraît pas être insurmontable, mais je tourne en rond et je n'y arrive pas. J'aurais besoin de votre aide s'il vous plait.
    Voici mon souci.
    J'ai créé un fichier avec lequel je peux créer des commandes, que je mets à chaque fois sur des nouvelles feuilles. ça, pas de soucis ça marche.
    Sur ces feuilles, pour plus de facilité (mais il doit y avoir un autre moyen) j'ai créé 3 listes déroulantes pour le jour (F1), le mois (F2) et l'année (F3).
    Je peux synthétiser toutes ces commandes les unes après les autres sur une feuille que j'ai nommée IMPRIMER COMMANDES JOUR; ça aussi ça marche, mais je voudrais que la synthèse se fasse en fonction des critères de jour mois année que je sélectionne en activant un userform, qui me renvoi les valeurs das les cellules i1 j1 et k1 de ma feuille de synthèse.
    C'est là que mon programme bloque, et surtout que je n'arrive pas à le programmer correctement.Je vous joins le code de ma macro pour voir si quelqu'un peut m'aider.
    Merci d'(avance

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Sub imprimercommandes()
    Dim i As Integer
    Application.ScreenUpdating = False
    Worksheets("IMPRIMER COMMANDES JOUR").Select
    Rows("1:1000000").Select
    Selection.Clear
    UserForm1.Show
        lg_recap = 1
    For i = 10 To Sheets.Count
     Sheets(i).Select
        If Sheets(i).Name <> "IMPRIMER COMMANDES JOUR" Then
                For lg_facture = 1 To 100
                    ' on cherche une quantité positive
                    If IsNumeric(Sheets(i).Cells(lg_facture, 19)) Then  ' > 0 Then
    C EST ICI QUE CA NE MARCHE PAS
                        If Worksheets(i).Cells(6, 1).Value = Worksheets("IMPRIMER COMMANDES JOUR").Cells(9, 1).Value And Worksheets(i).Cells(6, 2).Value = Worksheets("IMPRIMER COMMANDES JOUR").Cells(10, 1).Value And Worksheets(i).Cells(6, 3).Value = Worksheets("IMPRIMER COMMANDES JOUR").Cells(11, 1).Value Then
     
    JUSQU ICI                   
     
     
                        lg_recap = lg_recap + 1
                        Sheets(i).Range("A" & lg_facture & ":T" & lg_facture).Copy
                        Sheets("IMPRIMER COMMANDES JOUR").Cells(lg_recap, 1).PasteSpecial xlPasteValues
                        Sheets("IMPRIMER COMMANDES JOUR").Cells(lg_recap, 1).PasteSpecial xlPasteFormats
                        End If
                    End If
                Next lg_facture
            End If
     
        Next i
        Worksheets("IMPRIMER COMMANDES JOUR").Select
       Range("A:C,E:E,L:T").Select
       Range("L1").Activate
        Selection.EntireColumn.Hidden = True
        ActiveWindow.ScrollColumn = 6
        ActiveWindow.ScrollColumn = 4
        Columns("D:D").EntireColumn.AutoFit
        Columns("H:H").EntireColumn.AutoFit
        Columns("G:G").ColumnWidth = 3.14
        'ActiveWindow.SelectedSheets.PrintPreview
        'ActiveWindow.SmallScroll Down:=-21
    Application.ScreenUpdating = True
    End Sub

  2. #2
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    s'il te plait, sers toi des balises codes pour marquer le VBA --> #
    bon effectivement ,
    ça ne peut pas fonctionner
    tu vires le contenu des cellules de ta feuille
    et après une fois vide tu chopes les valeurs dans les cellule nettoyées
    tes valeur doivent etre celles de l'USF ( si je suis correctement) là tu vas rencontrer
    le problème de concordance des formats les textebox de l'usf sont au format texte il va te falloir changer en format nombre
    et leur valeur format sera fonction de leur valeur byte ou integer (jour/mois byte annee integer)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if sheets(i).cells(x,1)=cbyte( textbox1.value) and sheets(i).cells(x,2)= etc...

  3. #3
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    plutôt que de sélectionner les 10000 ligne de ta feuille emploies plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets("nom_feuille").clearcontents

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant en gestion de la relation client (GRC)
    Inscrit en
    Août 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en gestion de la relation client (GRC)
    Secteur : Alimentation

    Informations forums :
    Inscription : Août 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour cette réponse aussi rapide.

    En fonction de tes conseils, voici ce que j'ai modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Sheets(i).Cells(6, 1) = CByte(ComboBox1.Value) And Sheets(i).Cells(6, 2) = CByte(ComboBox2.Value) And Sheets(i).Cells(6, 3) = CByte(ComboBox3.Value) Then
    Mais il me dit que ce n'est pas bon. est ce que j'aurais fais une erreur de saisie?
    Je précise que dans mon userform, j'ai trois combobox: 1,2,3... pour les jours
    janvier, février, ... pour les mois et 2017, 2018,... pour les années.
    Merci d'avance

  5. #5
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    l'année est renseigneé en 2017 , ça c'est un integer donc si le textbox 3 est celui de l'année

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant en gestion de la relation client (GRC)
    Inscrit en
    Août 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en gestion de la relation client (GRC)
    Secteur : Alimentation

    Informations forums :
    Inscription : Août 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci, mais j'aurais besoin d'une petite explication à ce sujet.
    En effet, quand je lance le userform et les choix des mes combobox, il me les affecte bien dans les cellules que j'ai choisies.
    Alors, pourquoi en utilisant la valeur de ces cellules et en les comparant avec les valeurs de chaque feuille sur les cellules respectives, cela ne marche pas?

  7. #7
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    plus clairement à quelle niveau à ne marche pas

  8. #8
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fsazy2003 Voir le message
    Merci, mais j'aurais besoin d'une petite explication à ce sujet.
    En effet, quand je lance le userform et les choix des mes combobox, il me les affecte bien dans les cellules que j'ai choisies.
    Alors, pourquoi en utilisant la valeur de ces cellules et en les comparant avec les valeurs de chaque feuille sur les cellules respectives, cela ne marche pas?
    il y a une chose que j'aimerais savoir , les données de tes feuilles sont des saisie ou des imports, en cas d'import il peut s'agir de format texte auquel cas les CVyte et Cint sont de trop

Discussions similaires

  1. [Débutant] Fonction pour cacher un champ d'un user form fonctionne bizarrement
    Par alucia dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 14/03/2013, 15h29
  2. Afficher un état en fonction de critères
    Par TNC dans le forum Access
    Réponses: 2
    Dernier message: 04/08/2006, 16h40
  3. Requete en fonction de critère "date"
    Par b747fred dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/08/2006, 15h32
  4. [VBA-W]User Form à l'ouverture d'un document
    Par Oly1973 dans le forum VBA Word
    Réponses: 3
    Dernier message: 22/03/2006, 11h10
  5. Som dans form continu en fonction date selectionée dans form
    Par samlepiratepaddy dans le forum Access
    Réponses: 3
    Dernier message: 26/09/2005, 13h05

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