XL 2010 Erreur de depassement (Résolu)

RoyalP

XLDnaute Occasionnel
Bonjours a tous, j'ai besoin de vos lumieres car les mienes commencent a s'eteindre progressivement :D (Comme dirait l'autre il a pas la lumiere a tous les étages )

Dans le cadre de mon stage, je suis en train de realisé un gestionnaire de contact pour la société.
J'ai un userform ou je permet a l'utilisateur d'avoir plusieur criteres de recherche mais dés que j'entre une lettre dans le textbox1 (CTNom , j'obtient une erreur de depassement 6 ) alors que si je fait la meme chose avec Fiche_le , ca fontionne !!!! j'ai beau changer les variables en long, integer, ou meme variant , rien n'y fait , j'ai toujours cette fameuse erreur.

je vous joint le fichier qui sera plus parlant pour les pros.

Merci d'avance
 

Pièces jointes

  • testegestioncontact.xlsm
    37.6 KB · Affichages: 79

natorp

XLDnaute Accro
Bjr RoyalP

remplace l'existant par :

Private Sub CTNom_Change()
Dim Plage As Range, cell As Range
Dim Recherche As String, Adresse As String
Dim Ligne As Long, n As Integer
Dim C As Range
Objet1.Clear
n = 0
Recherche = CTNom.Value
Range("B4").Select
Ligne = Sheets("Contact").Range("B65536").End(xlUp).Row
Set Plage = Sheets("Contact").Range("B" & "1:" & "B" & Ligne)
With Plage
Set C = .Find(Recherche, , xlValues)
If Not C Is Nothing Then
Adresse = C.Address
Do
If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then
Objet1.AddItem C.Offset(0, 0), n
Objet1.List(n, 0) = C.Offset(0, 0)
Objet1.List(n, 1) = C.Offset(0, 1)
Objet1.List(n, 2) = C.Offset(0, 2)
Objet1.List(n, 3) = C.Offset(0, 3)
Objet1.List(n, 4) = C.Offset(0, 4)
Objet1.List(n, 5) = C.Offset(0, 5)
Objet1.List(n, 6) = C.Offset(0, 6)
Objet1.List(n, 7) = C.Offset(0, 7)
Objet1.List(n, 8) = C.Offset(0, 8)

n = n + 1
End If
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> Adresse
End If
End With
End Sub

Cordialement, Gérard
 

jecherche

XLDnaute Occasionnel
Bonjour,

Quelques corrections mineures.
Dans ta feuille "Contact", il restait des enregistrements épars dont aux lignes 4433 et 44334.
Pour les trouver, sélectionne disons B20 (selon exemple fournie), frappe la touche Fin (End), puis frappe la touche "bas" (flèche de directivité pointant vers le bas). Répète l'opération pour trouver les autres lignes.
Code:
Private Sub CTNom_Change()
Dim Plage As Range, cell As Range
Dim Recherche As String, Adresse As String
Dim Ligne As Long, n As Long
Dim C As Range

Objet1.Clear
n = 0
Recherche = CTNom  ' ici, il y avait .value, or, ce n'est pas une valeur mais une chaine
Range("B4").Select
Ligne = Sheets("Contact").Range("B" & "65536").End(xlUp).Row
Set Plage = Sheets("Contact").Range("B4:B" & Ligne)  ' ici c'était B1 au leur de B4
With Plage
Set C = .Find(Recherche, , xlValues)
If Not C Is Nothing Then
Adresse = C.Address
Do
   If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then
      Objet1.AddItem C.Offset(0, 0), n
      Objet1.List(n, 0) = C.Offset(0, 0)
      Objet1.List(n, 1) = C.Offset(0, 1)
      Objet1.List(n, 2) = C.Offset(0, 2)
      Objet1.List(n, 3) = C.Offset(0, 3)
      Objet1.List(n, 4) = C.Offset(0, 4)
      Objet1.List(n, 5) = C.Offset(0, 5)
      Objet1.List(n, 6) = C.Offset(0, 6)
      Objet1.List(n, 7) = C.Offset(0, 7)
      Objet1.List(n, 8) = C.Offset(0, 8)
      n = n + 1
   End If
   Set C = .FindNext(C)
   Loop While Not C Is Nothing And C.Address <> Adresse
   End If
End With
End Sub



jecherche
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa