lien entre listBox et comBox

bobjazz

XLDnaute Impliqué
Bonjour
Et grand Bravo à vous pour vos conseils. Grace à vous j'ai constitue un fichier. Mon sousi qui je pense pour une rigolade. Dans le fichier, il y a une macro 'lignefin', le resultat que je voudrait faire avec le bonton 'N° FACTURE'.
Mais je n'arrive pas à mettre le n0 BA avec le mois choisi, c'est à dire la feuille.
Si quelqu'un a la solution je suis preneur


Merci
Bobjazz
 

bobjazz

XLDnaute Impliqué
Re:=> DEMO UserForm Modif ou Ajout Enregistrement

Bonjour Thierry, Hellboy et le Forum

Tous fonctionne à merveille,
sur l'USF BA, je n'arrive pas à trouver comment faire.
Si je choisi un numero de BA que j'ai déja rempli où je veux changer une donnée de ce que j'ai rentre precedemment,

Lorsque je rentre mon N°, faire apparaitre les données, j'arrive ,mais cela se complique lorsque je veux changer une donnée

J'envoie un USF de Thierry [file name=USF_Cahier_BA_20050804184817.zip size=38095]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/USF_Cahier_BA_20050804184817.zip[/file]
 

Pièces jointes

  • USF_Cahier_BA_20050804184817.zip
    37.2 KB · Affichages: 32

Hellboy

XLDnaute Accro
Re:=> DEMO UserForm Modif ou Ajout Enregistrement

Bonjour a tous

Remplace l'ancienne procédure du combobox 2 par cell-ci. Jesp`re avoir bien compris ta demande.

Private Sub ComboBox2_Change()
Ligne = Me.ComboBox2.ListIndex + 2
If Me.OptionButton1.Value = True Then
Me.TextBox2.Value = Sheets(Me.ComboBox1.Value).Cells(Ligne, 12)
End If
End Sub
 

bobjazz

XLDnaute Impliqué
Re:=> DEMO UserForm Modif ou Ajout Enregistrement

Toujours aussi rapide

J'ai le resultat que je voulais, je lance mon USF, si je veux relire les données, ok je change mon n° BR, ok,

mais lorsque je valide
'erreur d'execution 9
L'indice n'appartient pas à la selection'

Mais si je vais dans mon tableau, le BR a bien changé

le debogage me surligne
'Me.TextBox2.Value = Sheets(Me.ComboBox1.Value).Cells(Ligne, 12)'

Pourtant c'est bien testbox2 que je change dans ma manip en fonction de ComboBox1 et 2
MERCI

Bobjazz :eek:
 

bobjazz

XLDnaute Impliqué
Re:=> DEMO UserForm Modif ou Ajout Enregistrement

Pour Thierry, Hellboy et le Forum

Si cela peut vous aider, moi j'assai mais rien,

Meme en creation, il bug

question, est ce normal que lorsque le combobox va chercher une liste dans la colonne, et que si on inscrit un numero en direct comme un textbox, qui est pourtant dans la colonne concernnee, il ne l'accepte pas, je viens de remarquer cela en cherchant.

Merci

Bobjazz
 

Hellboy

XLDnaute Accro
Re:=> DEMO UserForm Modif ou Ajout Enregistrement

re

Excuse moi, je ne l'avais pas essayer jusqu'au bout ! :eek:

a cause de la procédure initialisation, il change la valeur du combobox 2 (avec vide) et ceci enclanche de nouveau la procédure de combobox2_change et créer cette erreur.

alors change pour celle-ci:


Private Sub ComboBox2_Change()
Ligne = Me.ComboBox2.ListIndex + 2
If Me.OptionButton1.Value = True Then
On Error Resume Next
Me.TextBox2.Value = Sheets(Me.ComboBox1.Value).Cells(Ligne, 12)
End If
On Error GoTo 0
End Sub

a+
 

Hellboy

XLDnaute Accro
Re:=> DEMO UserForm Modif ou Ajout Enregistrement

re

Pour ta dernière question, ton mode cration, il sert a ajouter un nouvel élément ?.

En fait c'est quoi la différence entre ton mode création et ton mode modification. ?

merci !
 

bobjazz

XLDnaute Impliqué
Re:=> DEMO UserForm Modif ou Ajout Enregistrement

Hellboy

oups les modes creations set pour un autre USF
Le bon est ici

Merci
bobjazz [file name=USF_Cahier_BA_20050804194655.zip size=38354]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/USF_Cahier_BA_20050804194655.zip[/file]
 

Pièces jointes

  • USF_Cahier_BA_20050804194655.zip
    37.5 KB · Affichages: 44

bobjazz

XLDnaute Impliqué
Re:=> DEMO UserForm Modif ou Ajout Enregistrement

HellBoy

Cela marche sans les OptionButton


Private Sub ComboBox2_Change()
Ligne = Me.ComboBox2.ListIndex + 2
On Error Resume Next
Me.TextBox2.Value = Sheets(Me.ComboBox1.Value).Cells(Ligne, 12)
On Error GoTo 0
End Sub

Merci

juste une question, je choisi mon mois, apres le BA, mais si je veut taper mon numero, il veut pas, il faut toujours le choisir dans la liste, est ce normal avec un conbobox

Merci

Bobjazz
 

bobjazz

XLDnaute Impliqué
Re:=> DEMO UserForm Modif ou Ajout Enregistrement

Re Hellboy

OK
Mais excuse moi, en commentaire, pourquoi puisque ce n'est pas une commande et cette commande est deja dans l'USB, à moins qu'elle ne soit pas placé au bonne endroit



Option Explicit

Const T As String = 'FORMULAIRE'

Private Feuille As Worksheet
Private Ligne As Integer
Private Ini As Boolean

Private Sub UserForm_Initialize()
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
If WS.Name <> 'Interface' Then
ComboBox1.AddItem WS.Name
End If
Next
With Me
.TextBox1 = Date
.ComboBox1.MatchRequired = True
.ComboBox2.MatchRequired = True

.Caption = T
End With
End Sub

Private Sub ComboBox1_Change()
Dim TabBa As Variant
Dim LastBA As Long

If Ini = True Then Exit Sub

On Error GoTo Out
Set Feuille = ThisWorkbook.Worksheets(CStr(Me.ComboBox1))

With Feuille
TabBa = .Range(.Range('A2'), .Range('A65536').End(xlUp))
End With
Me.ComboBox2.List = TabBa


Exit Sub
Out:
MsgBox 'La Feuille ' & Me.ComboBox1 & ' n'existe pas'
End Sub


Private Sub ComboBox2_Change()


Ligne = Me.ComboBox2.ListIndex + 2
On Error Resume Next
Me.TextBox2.Value = Sheets(Me.ComboBox1.Value).Cells(Ligne, 12)
On Error GoTo 0
End Sub

Private Sub CmdOK_Click()
If Not IsDate(Me.TextBox1) Then
MsgBox 'Indiquez une date Correct', vbCritical
Exit Sub
End If

If Me.ComboBox1.ListIndex = -1 Then
MsgBox 'Sélectionnez un Mois', vbCritical
Exit Sub
End If
If Me.ComboBox2.ListIndex = -1 Then
MsgBox 'Sélectionnez un BA', vbCritical
Exit Sub
End If
If Me.TextBox2 = '' Then
MsgBox 'Indiquez un Numéro de Facture', vbCritical
Exit Sub
End If


With Feuille
' Pose de X dans les colonnes 'G, H, I'
.Range('G' & Ligne).Value = 'X'
.Range('H' & Ligne).Value = 'X'
.Range('I' & Ligne).Value = 'X'

' On colorie la ligne enregistrée
With .Range('A' & Ligne & ':M' & Ligne)
With .Interior
.ColorIndex = 19
.Pattern = xlSolid
End With
End With
.Range('M' & Ligne) = TextBox1
.Range('L' & Ligne) = TextBox2



End With

ReInitialisation
Ini = False
End Sub

Private Sub ReInitialisation()
Ini = True
With Me
.ComboBox1 = ''
.ComboBox2.Clear
.TextBox2 = ''
End With
End Sub



Private Sub CmdSortir_Click()
Unload UserForm2
End Sub


Merci
 

Hellboy

XLDnaute Accro
Re:=> DEMO UserForm Modif ou Ajout Enregistrement

bobjazz écrit:
Re Hellboy

OK
Mais excuse moi, en commentaire, pourquoi puisque ce n'est pas une commande et cette commande est deja dans l'USB, à moins qu'elle ne soit pas placé au bonne endroit



Option Explicit

Const T As String = 'FORMULAIRE'

Private Feuille As Worksheet
Private Ligne As Integer
Private Ini As Boolean

Private Sub UserForm_Initialize()
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
If WS.Name <> 'Interface' Then
ComboBox1.AddItem WS.Name
End If
Next
With Me
.TextBox1 = Date
.ComboBox1.MatchRequired = True
.ComboBox2.MatchRequired = True

.Caption = T
End With
End Sub

Private Sub ComboBox1_Change()
Dim TabBa As Variant
Dim LastBA As Long

If Ini = True Then Exit Sub

On Error GoTo Out
Set Feuille = ThisWorkbook.Worksheets(CStr(Me.ComboBox1))

With Feuille
TabBa = .Range(.Range('A2'), .Range('A65536').End(xlUp))
End With
Me.ComboBox2.List = TabBa


Exit Sub
Out:
MsgBox 'La Feuille ' & Me.ComboBox1 & ' n'existe pas'
End Sub


Private Sub ComboBox2_Change()


Ligne = Me.ComboBox2.ListIndex + 2
On Error Resume Next
Me.TextBox2.Value = Sheets(Me.ComboBox1.Value).Cells(Ligne, 12)
On Error GoTo 0
End Sub

Private Sub CmdOK_Click()
If Not IsDate(Me.TextBox1) Then
MsgBox 'Indiquez une date Correct', vbCritical
Exit Sub
End If

If Me.ComboBox1.ListIndex = -1 Then
MsgBox 'Sélectionnez un Mois', vbCritical
Exit Sub
End If
If Me.ComboBox2.ListIndex = -1 Then
MsgBox 'Sélectionnez un BA', vbCritical
Exit Sub
End If
If Me.TextBox2 = '' Then
MsgBox 'Indiquez un Numéro de Facture', vbCritical
Exit Sub
End If


With Feuille
' Pose de X dans les colonnes 'G, H, I'
.Range('G' & Ligne).Value = 'X'
.Range('H' & Ligne).Value = 'X'
.Range('I' & Ligne).Value = 'X'

' On colorie la ligne enregistrée
With .Range('A' & Ligne & ':M' & Ligne)
With .Interior
.ColorIndex = 19
.Pattern = xlSolid
End With
End With
.Range('M' & Ligne) = TextBox1
.Range('L' & Ligne) = TextBox2



End With

ReInitialisation
Ini = False
End Sub

Private Sub ReInitialisation()
Ini = True
With Me
.ComboBox1 = ''
.ComboBox2.Clear
.TextBox2 = ''
End With
End Sub



Private Sub CmdSortir_Click()
Unload UserForm2
End Sub


Merci
 

bobjazz

XLDnaute Impliqué
Re:=> DEMO UserForm Modif ou Ajout Enregistrement

Re

Pourquoi tu l'as mis en rouge, comprend pas, la ligne est bien dans la commande et il faut imperativement choisir le combobox2 pour que cela fonctionne, sinon si je tape un numero qui existe pourtant, il m'affiche la ligne1 qui est la que pour les titres.
sinon si je valide pour voir avec les titres, j'ai ce message
'Valeur de propriete non valide'

Merci
Bobjazz
 

Hellboy

XLDnaute Accro
Re:=> DEMO UserForm Modif ou Ajout Enregistrement

Bonsoir

Je ne suis plus au boulot, mais a la maison là.

Bon, on mettre des petites choses au clair là. !

Je t'ai posé des question concernant les boutons d'options et du as frapper a revers avec le fait que ça marche sans qu'il soit présent. Ce n'étais pas la question et ce n'étais pas la même révision de ton fichier que tu m'as ensuite fourni.

Ensuite tu demande pourquoi tu ne peut valider une entrée manuel ds le combox2 et je te donne l'action que tu as a faire et tu ne l'as même pas essayé ! Parce que si tu l'avais fait tu t'aurais vite rendu compte du résultat que ça donne! Et en plus te me dis que ce n'est pas une commande et ensuite tu que c'est une commande et qu'elle n'est pas placé à la bonne place peut être 1 Faut se faire une idée là !

Si tu ne comprend pas une commande, la c'est pas pareil, mais ça devrait faire l'objet de ta question et non de supposition !

Ceci dis et déclaré et mon opinion personnel.... blablabla, je la ferme là

la commande ComboBox2.MatchRequired = True
exige de la part de l'entrée, qu'elle soit présente ds la liste.

Mais je viens de voir aussi ce bout de code qui veut aussi absolument aussi valider l'information qui est inscrite ds le combobox

If Me.ComboBox2.ListIndex = -1 Then
MsgBox 'Sélectionnez un BA', vbCritical
Exit Sub
End If

Si tu veux pouvoir inscrire de l'info ds le combobox2 tu doit mettre en commentaire ou enlever ce bout de code ainsi que la ligne que je te fais mention plus haut.

a+
 

Discussions similaires