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

Mode arborescent

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

+ 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