erreur 70 !!!! accès refusé

  • Initiateur de la discussion Initiateur de la discussion tonio
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

tonio

Guest
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............
 
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
 
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
 
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
 
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
 
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 !!!!!!!
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
539
Réponses
5
Affichages
493
Réponses
4
Affichages
587
Réponses
5
Affichages
719
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour