Charger une listbox en fonction du choix d'un option button
Bonjour à tous,
Je suis nouvelle en vba, donc j'ai un peu de mal à obtenir le rendu souhaité : mes codes ressemblent beaucoup à du patchwork des tutos que je consulte, et, malgré mes recherches je n'ai pas trouvé de solution à mon problème... Voilà, j'ai créé un formulaire pour effectuer rapidement des saisies de trésorerie. J'y ai mis deux option button "Entrée" et "Sortie" afin de sélectionner le type de saisie. J'ai une listbox qui doit se charger de la liste des comptes d'entrées et sorties énumérés dans un tableau . Je voudrais que ma listbox se charge des comptes d'entrée si le bouton entrée est activé, et des comptes sortie si mon bouton sortie est activé, mais je n'arrive pas à adapter mon code sur cette méthode. (J'ai réussi à obtenir ce que je voulais sur mon classeur original, sans les numéros de compte, mais en créant une feuille avec un tableau spécifique pour les listes et en utilisant une combobox pour choisir "entrée ou sortie". Ergonomiquement, je trouve que c'est moins pratique quand il y a beaucoup de saisie). Là je voudrais utiliser mon tableau TCompta situé sur la même feuille. J'ai mis en commentaire le code que je suis en train d'essayer de faire pour ne pas faire "buguer".
Quelqu'un pourrait m'aider svp ? D'avance, merci
Salut,
Voici deux codes qui devraient répondre à ta demande :
Private Sub ObtnEntrée_Click()
Dim i As Integer
For i = 6 To Range("O6").End(xlDown).Row
lstNature.AddItem Cells(i, 15)
Next i
End Sub
Private Sub ObtnSortie_Click()
Dim i As Integer
For i = 6 To Range("R6").End(xlDown).Row
lstNature.AddItem Cells(i, 18)
Next i
End SubCordialement.
Et si tu veux le numéro de compte en plus :
Private Sub ObtnEntrée_Click()
Dim i As Integer
For i = 6 To Range("O6").End(xlDown).Row
lstNature.AddItem Cells(i, 14) & " " & Cells(i, 15)
Next i
End Sub
Private Sub ObtnSortie_Click()
Dim i As Integer
For i = 6 To Range("R6").End(xlDown).Row
lstNature.AddItem Cells(i, 17) & " " & Cells(i, 18)
Next i
End Sub
J'ai oublié de vider la liste à chaque fois !
Voici le code qui inclus cela :
Private Sub ObtnEntrée_Click()
Dim i As Integer
lstNature.Clear
For i = 6 To Range("O6").End(xlDown).Row
lstNature.AddItem Cells(i, 14) & " " & Cells(i, 15)
Next i
End Sub
Private Sub ObtnSortie_Click()
Dim i As Integer
lstNature.Clear
For i = 6 To Range("R6").End(xlDown).Row
lstNature.AddItem Cells(i, 17) & " " & Cells(i, 18)
Next i
End Sub
Bonjour AnaCha, Yvouille,
On peut aussi utiliser cette méthode si les listes Entrée et Sortie sont définitives. Voire on peut adapter si celle de gauche est amenée à évoluer.
Private Sub ObtnEntrée_Click()
lstNature.Clear
lstNature.RowSource = "$O$6:$O$9"
End SubEt pour Sortie faire avec "$R$6:$R$34"
Ne pas oublier de corriger dans Private Sub btnEnregistrer_Click()
ActiveCell.Offset(0, 4).Value = lstNature.ValueEt non listNature comme inscrit.
Bonjour tout le monde,
Il y a encore d'autres choses à corriger, mais je pensais laisser AnaCha faire ses propres expériences.
Dans le code ci-dessous, dans sa première partie, les deux passage avec les conditions If / Else / End If ne sont pas claires. Il manque en tout cas un End If, mais s'agit-il des deux conditions imbriquées l'une dans l'autre - auquel cas le End If manquant viendrait se placer tout à la fin - ou sont-ce deux conditions successives, auquel cas le End If manquant viendrait se placer plus haut ?
Private Sub btnEnregistrer_Click()
If MsgBox("Confirmez-vous l'ajout de votre saisie ?", vbYesNo + vbQuestion, "ENREGISTRER LA SAISIE ?") = vbNo Then
Else
Feuil9.Activate
Range("A3:I3").Select
Selection.Insert Shift:=xlDown
If ObtnEntrée = True Then
ActiveCell = ObtnEntrée.Caption
Else: ActiveCell = ObtnSortie.Caption
End If
......................................................Le premier Else semble également inutile.
Et lorsque ces problèmes seront réglés, il en apparaitra surement d'autres. Mais courage AnaCha, à chaque nouvelle étape, à chaque nouveau problème réglé, tu en sauras un peu plus :-)
Bonjour le forum, Yvouille et XCellus ! Un grand merci pour votre aide précieuse ! J'ai corrigé ma coquille listNature, effectivement j'avais renommé l'objet sans mettre à jour le code ! Et j'ai finalement intégré le numéro de compte dans la même colonne, car mon somme.si ne fonctionnait plus avec les numéros de compte ! Là je suis en train de me battre avec mes MEFC qui se déplacent toutes seules vers le haut, sans qu'on leur ait rien demandé ! Si je fige tout, ça va pas, la colonne seule, ça va pas et la ligne seule, ça va pas ! Il décide tout seul de refiger mes plages... Effectivement, je suis pas encore sortie de l'auberge ! Mais j'ai mon formulaire qui fonctionne, et ça c'est déjà un grand pas ! Encore merci à vous pour ce code que je n'arrivais pas à trouver. À bientôt !
Pour ton problème de mise en forme conditionnelle, je te conseille d'ouvrir un nouveau fil et tu obtiendras certainement toute l'aide nécessaire.
Cordialement.