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 :

Userform et Listbox [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    GESTIONNAIRE
    Inscrit en
    Novembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GESTIONNAIRE
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 30
    Par défaut Userform et Listbox
    Bonjour à tous,
    Dans un cadre associatif, piscine, je souhaite informatiser le rapprochement bancaire. En effet nous éditons pas mal de chèque à destination de nos adhérents (remboursement abonnement).
    Bref plus précisément, je m'explique, en feuille "BD" j'ai un tableau en A1:F9 pavec des nuléros de chèque en format 7 chiffres et le statut des chèques (encaissé ou non encaissé en colonne E.
    - Je me suis amusé à créer un userform1 pour consulter le statut d'un numéro de chèque selectionné dans ma combobox, j'arrive via 2 controles optionbutton à modifier le statut et c'est déjà pas mal à mon niveau.
    - Ensuite et par défi mais aussi par souci de rapidité, je me suis dit, pourquoi pas à partir d'un nouveau Userform, soit l'userform2, faire apparaître dans une listbox la liste de tous les chèques non encaissé du tableau, selectionner que les lignes qui nous intéresse (c'est à dire qu'on veut changer leur statut car en fonction de notre relevé banque on sait qu'ils ont été encaissé) , bref en validant le code vba mettra à jour le tableau initial et plus particulièrement la colonne E puis inscrira dans la colonne F : -(valeur de la colonne C).
    Pour ce faire et afin de vous expliquer mon raisonnement, je suis parvenu a afficher dans une listbox1 du userform2 la liste des chèques non encaissés, j'ai modifier les propriétés de la listbox afin de selectionner plusieurs lignes, ces mêmes lignes sont ensuites insérées dans ma feuille BD en Z3:AC... puis là je séche, je ne sais pas comment mettre à jour mon tableau initial en fonction de cette extraction, je me doute que je dois boubler sur ce qu'il y a de présent en AA.... et comparer les valeurs avec celles présentes en colonne B (c'est à dire les numéros de chèques), bref je fais appel à votre précieuse aide et vous remercie par avance.
    Je vous joins le fichier Excel
    et ci-dessous les lignes de code qui me posent plus particulièrement problème
    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
    44
    45
    46
    47
    48
    49
    Private Sub ValiderSaisie_Click()
    Dim Ligne As Long
    Dim Cel As Range
     
     
    Range("Z3:AC500").Clear
    ' je créé ici une petite extraction des lignes selectionnées de la listebox  en changeant le statut des chèques _
    en "ENCAISSE" suite par exemple à la reception du relevé banquaire où l'on voit les num chèque qui ont été débité _
     
    J = 3 'ligne 3 de ma feuille BD
    With ListBox1
    For i = 0 To .ListCount - 1
    If .Selected(i) = True Then
    Cells(J, 26) = .List(i, 0): Cells(J, 27) = Format(.List(i, 1), "0000000"): Cells(J, 28) = .List(i, 2): Cells(J, 29) = "ENCAISSE"
    .Selected(i) = False
    J = J + 1
    End If
    Next
    End With
        Range("AA3").Select
        Range(Selection, Selection.End(xlDown)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.NumberFormat = "0000000"
    ' ici je veux que le code vba regarde dans cette liste fraichement extraite, en colonne AA et si il trouve _
    le num chèque de la ligne (début à AA3)en colonne B(début ligne 2) alors il met à jour la valeur de la _
    colonne E avec celle de la colonne AC soit ENCAISSE, il faut prévoir une boucle pour boucler sur toutes _
    les valeurs de la colonne AA
     
      With Sheets("BD")
        Set Cel = .Columns("B").Find(what:=.Range("AA3"), LookIn:=xlValues, lookat:=xlWhole)
        If Not Cel Is Nothing Then
          Ligne = Cel.Row
          If MsgBox("Voulez-vous modifier le statut de chèque n° " & Me.ComboBox1 & " ?", _
                          vbQuestion + vbYesNo, "Modification") <> vbYes Then Exit Sub
     
     
                .Range("E" & Ligne) = "ENCAISSE"
                .Range("F" & Ligne) = "-" & .Range("C" & Ligne)
                Else
                '.Range("F" & Ligne) = 0
               ' .Range("E" & Ligne) = "NON ENCAISSE"
     
          End If
     
     
     
      End With
     
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour
    pourquoi ne pas modifier directement dans leur emplacement initial

    j'ai regardé ton fichier et franchement moins de 10 ligne de code dans ton userform ferait le boulot des deux userforms
    pour moi il y a déjà problème de conception
    je regarde ca et te fait un fichier sur la base de ton exemple avec un seul userform
    a toute a l'heure
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre averti
    Homme Profil pro
    GESTIONNAIRE
    Inscrit en
    Novembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GESTIONNAIRE
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 30
    Par défaut
    Merci de ton aide, oui effectivement je ne suis pas contre plus de simplification, je souhaitais à l'origine décortiquer les étapes du traitement pour être sûr des données renvoyées, merci encore

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    regarde comme c'est simple
    Fichiers attachés Fichiers attachés
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre averti
    Homme Profil pro
    GESTIONNAIRE
    Inscrit en
    Novembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GESTIONNAIRE
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 30
    Par défaut
    Ouah super, effectivement quand tu parlais de simplicité, un grand merci en tout cas, c'est exactement ce que je souhaitais.
    Comme tu l'imagines, j'ai des questions qui me viennent à l'esprit, je vais creuser ce que tu as fait et si tu le permets je reviendrai vers toi pour des éclaircissement de code.
    Excellente soirée et bon 1er mai en tout cas
    Merci encore
    A très vite

  6. #6
    Membre averti
    Homme Profil pro
    GESTIONNAIRE
    Inscrit en
    Novembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GESTIONNAIRE
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 30
    Par défaut
    Bonjour Patrick et tout d'abord bon 1er mai,
    Merci encore, super simplification de code effectivement, je m'interroge notamment sur cette ligne de boucle de code :
    "For i = 0 To ListBox1.ListCount - 1"
    je l'interprete comme ça, arrête moi si je me trompe : de i = 0 (car la première ligne de la Listbox =0 ) jusque la fin de la Listbox, c'est à dire la dernière ligne, -1 étant la dernière ligne ?

    Après pour m'amuser et je pense aussi à ceux que ça pourrait interesser, j'ai mis en forme dans la listbox les valeurs au format 7 chiffres (n° de chèque" et ajouter une fonctionnalité à savoir dès lors que l'on modifie le statut d'un chèque, il vient enregistrer en commentaire le mois et année du relevé de compte bancaire grâce auquel on a changé le statut.

    La semaine prochaine, je compte m'attaquer à un même type de module mais cette fois pour gérer les remises de chèque. Je crains fort que je ne te sollicite de nouveau.

    Excellente journée et merci
    (en PJ la dernière version du module)
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [XL-2007] Userform - alimenter ListBox, feuille de données
    Par BtjpsspgrW dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/08/2014, 20h44
  2. [XL-2007] [Userform] Alimentation ListBox et validation
    Par meumeu73.1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/09/2013, 07h41
  3. [XL-2007] UserForm Définir ListBox
    Par vivi4561 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 24/09/2009, 23h21
  4. Réponses: 0
    Dernier message: 30/08/2008, 09h59
  5. [VBA-E] Liaison entre une listbox et un userform
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 25/02/2007, 17h32

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