![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonjour le forum
Je viens vous demander un petit coup de main pour une erreur que je ne comprends pas. Je débute en VBA et tout n’est pas simple. J’ai un USF avec une Listbox1 et un Textbox7 ou j’ai placée code suivant : Private Sub TextBox7_Change() Dim WS As Worksheet Dim PLAGE As Range, CELL As Range Dim RECHERCHE As String, ADRESSE As String Dim LIGNE As Variant Dim C As Object RECHERCHE = TextBox7 If RECHERCHE = "" Then Exit Sub For Each WS In Worksheets LIGNE = Worksheets(WS.Name).Range("" & "B" & "65536").End(xlUp).Row Set PLAGE = Worksheets(WS.Name).Range("" & "B" & "2:" & "B" & LIGNE) With PLAGE Set C = .Find(RECHERCHE) If Not C Is Nothing Then ADRESSE = C.Address Do ListBox1.AddItem C Set C = .FindNext(C) Loop While Not C Is Nothing And C.Address End If End With Next WS End Sub Mais lorsque je le sélectionne et tape une lettre il me met une ERREUR 70, accès refuse. Et il possible que du fait que j’ai le code suivant sur ma Listbox1, ça me bloque la recherche. Private Sub ListBox1_Click() Dim PLAGE As Range Dim CELL As Range Set PLAGE = Worksheets("ListingClient").Range("B5:B" & DerLigne) For Each CELL In PLAGE If CELL.Value = ListBox1.Value Then TextBox1 = CELL.Offset(0, 1).Value TextBox2 = CELL.Offset(0, 2).Value TextBox3 = CELL.Offset(0, 3).Value TextBox4 = CELL.Offset(0, -1).Value TextBox5 = CELL.Offset(0, 4).Value TextBox6 = CELL.Offset(0, 8).Value TextBox8 = CELL.Offset(0, 9).Value End If Next CELL CommandButton1.Visible = True End Sub Quelqu'un peut-il m’aider Merci d’avance AA ++ Tonio............ |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Tonio, Le Forum Oui c'est fort possible, essaie de placer une Variable Boolean Publique niveau Module du UserForm. Genre: En top de Module, extérieur à toute Sub : Private ListBlocker As Boolean A l'intérieur de la première Sub : Private Sub TextBox7_Change() Dim WS As Worksheet Dim PLAGE As Range, CELL As Range Dim RECHERCHE As String, ADRESSE As String Dim LIGNE As Variant Dim C As Object TheBlocker = True ETc Etc... La boucle etc Avant la fin de la Sub : TheBlocker = False End Sub A l'intérieur de la seconde Sub Private Sub ListBox1_Click() Dim PLAGE As Range Dim CELL As Range If TheBlocker = True Then Exit Sub Etc etc... End Sub Bonne Journée @+Thierry |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir le forum …..
Bonsoir Thierry .... Mauvaise nouvelle, la correction de code que tu as faite ne fonctionne toujours pas. J’ai toujours le même message d’erreur qui revient « erreur 70, Accès refuse » Si tu a une autre idée, elle est la bien venue. Par avance MERCI AA..++..Tonio |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Tonio, le Forum Aie, je n'ai absolument pas le temps aujourd'hui de reproduire un Userform contenant les mêmes contrôles afin de simuler ce problème. Logiquement une Boolean "verrou" peut te sortir d'affaire... Mais tout dépend de comment tu as appliqué mes conseils... Essaie de poster un exemple. Bonne journée @+Thierry |
|
|
#6 (permalink) |
|
Guest
Messages: n/a
|
Bonjour tonio, @+Thierry
tonio j'ai repris ton code en ajoutant et en retirant un ou deux truc et je n'ai rencontré aucune erreur, jespère visé juste concernant tes attentes, sinon j'aurai mérité une fois de plus mon titre de membre du ZopXLD club ;-). Option Explicit Private Sub ListBox1_Click() Dim PLAGE As Range Dim CELL As Range Set PLAGE = Worksheets(1).Range("B5", Range("B65536").End(xlUp)) 'Ici j'ai enlevé Derligne qui n'été pas déclarée. For Each CELL In PLAGE If CELL.Value = ListBox1.Value Then TextBox1 = CELL.Offset(0, 1).Value TextBox2 = CELL.Offset(0, 2).Value TextBox3 = CELL.Offset(0, 3).Value TextBox4 = CELL.Offset(0, -1).Value TextBox5 = CELL.Offset(0, 4).Value TextBox6 = CELL.Offset(0, 8).Value TextBox8 = CELL.Offset(0, 9).Value End If Next CELL CommandButton1.Visible = True End Sub Private Sub TextBox7_Change() Dim WS As Worksheet Dim PLAGE As Range, CELL As Range Dim RECHERCHE As String, ADRESSE As String Dim LIGNE As Variant Dim C As Object RECHERCHE = TextBox7 If RECHERCHE = "" Then Exit Sub For Each WS In Worksheets LIGNE = Worksheets(WS.Name).Range("" & "B" & "65536").End(xlUp).Row Set PLAGE = Worksheets(WS.Name).Range("" & "B" & "2:" & "B" & LIGNE) With PLAGE Set C = .Find(RECHERCHE) If Not C Is Nothing Then ADRESSE = C.Address Do ListBox1.AddItem C Set C = .FindNext(C) Loop While Not C Is Nothing And C.Address <> ADRESSE 'Ici j'ai rajouté <> ADRESSE End If End With Next WS End Sub salim membre du ZopXLD club |
|
|
#7 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Thierry, bonjour Salim ,bonjour le Forum!!!
Non, non, je ne vous ait pas oublier, simplement j’ai du faire un déplacement professionnel plus long que prévus. Ce pourquoi je ne vous ai pas répondu plus top. Je relance mon problème en disant a Salim, que même en recopient son code mon USF ne fonctionne toujours pas. (Pourquoi chez toi et pas chez moi, je dois vraiment être a l’ouest) Si joint mon exemple.. Merci pour votre aide ……….. PS. Quel ne fut ma surprise de voir un beau forum tout neuf en rentrant. Un grand bravo au MAITRE d’œuvre !!!!!!! |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|