Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Données dans TextBox si condition Ok puis Suivant si

Jess5913

XLDnaute Nouveau
Bonjour tous le monde

J'ai un suivi financier pour lequel j'ai créé un Userform. Dans ce Userform, j'aimerai qu'apparaisse chaque bon de commande passé à un sous-traitant. Les lignes de bon de commande de ce sous-traitant ne se suivent pas car un sous-traitant peut avoir un bon de commande pour différent poste.

Voici comment se présente mon tableau Excel :
Colonne A : N° de Poste
Colonne B : Nom du sous-traitant
Colonne C : Montant du bon de commande

Je n'arrive pas à trouver le code permettant de faire apparaitre avec l'aide d'une boucle, l'ensemble des bons de commande d'un seul sous-traitant.

Est-ce que quelqu'un aurai une idée ? Je vous joins un exemple avec fichier Excel.

Voici le bout de code que j'ai commençait à faire mais cela ne fonctionne pas du tout, car ça n'affiche que la dernière ligne correspondant à l'entreprise sur laquelle je suis et la répète en boucle :

Merci d'avance de votre aide
 

Pièces jointes

  • Test Suivi fi - Copie.xlsm
    35.9 KB · Affichages: 44
Dernière édition:

dionys0s

XLDnaute Impliqué
Re : VBA - Données dans TextBox si condition Ok puis Suivant si

Bonjour Jess, bonjour le forum

Essaye ceci :

VB:
Option Explicit
Option Base 1

'********************************************************************************************
'***********************AFFICHE LES ELEMENTS A L'OUVERTURE DU USERFORM***********************
'********************************************************************************************

Private Sub UserForm_Initialize()

Dim TABLO() As Variant, Curseur As Integer, n As Integer, Compteur As Integer

Curseur = ActiveCell.Row 'indique le numéro de la ligne où le curseur se situe
Compteur = 0
TextBoxNom.Value = Range("B" & Curseur)

TABLO = Range("A3:C18")
ReDim NewTABLO(1)
For n = LBound(TABLO, 1) To UBound(TABLO, 1)
       
    If TABLO(n, 2) = TextBoxNom.Value Then
        Compteur = Compteur + 1
        Facture.Controls("TextBoxMarchePoste" & Compteur).Text = TABLO(n, 1)
        Facture.Controls("TextBoxMarchePoste" & Compteur).Visible = True
        Facture.Controls("TextBoxMarcheMontantHT" & Compteur).Text = TABLO(n, 3)
        Facture.Controls("TextBoxMarcheMontantHT" & Compteur).Visible = True
    End If
    
Next n
       
End Sub

Si tu as des questions n'hésite pas

EDIT : Il y avait une erreur dans mon code. Corrigée en principe.
 
Dernière édition:

Jess5913

XLDnaute Nouveau
Re : VBA - Données dans TextBox si condition Ok puis Suivant si

Merci beaucoup dionys0s ! Ca marche super !

Est-ce que tu peux m'expliquer à quoi sert "Option Explicit" et "Option base 1" ?

Merci beaucoup en tout cas
 

dionys0s

XLDnaute Impliqué
Re : VBA - Données dans TextBox si condition Ok puis Suivant si

Je t'en prie

Option Explicit t'oblige à déclarer toutes les variables que tu utilises. Cela peut sembler contraignant, mais ça t'évitera bien des ennuis.

Concernant Option Base 1 :
Dans VBA, le premier index par défaut des variables tableau est 0. Avec cette instruction, je force le premier index à 1.

Je te recommande la lecture de cette page, ainsi que celle-ci, qui te rediront ça et plein d'autres trucs passionnants bien mieux que moi.
 

Jess5913

XLDnaute Nouveau
Re : VBA - Données dans TextBox si condition Ok puis Suivant si

Merci beaucoup pour ces explications, je vais étudier ces pages

La programmation VBA sous excel me passionne, je l'utilise pour améliorer mon travail au quotidien. Ce forum est super !

Merci encore pour ton aide, c'est génial
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…