Moteur de rechecrhe - VBA | Erreur - dépassement de capacité
Bonjour,
Je rencontre un soucis avec excel (VBA) et malgré quelques recherches, je n'ai pas trouvé de solutions. Ma problématique c'est que je cherche à créer un moteur de recherche sur Excel en utilisant du VBA, le but étant de fournir un résultat en provenance d'une base de données selon certains mots-clés enregistrés par un utilisateur. Mon problème c'est que l'outil fonctionne à demi-mot, càd que le résultat est fourni mais il y a une fenêtre m'indiquant "dépassement de capacité" qui pop up. J'ai lu sur le net que parfois, cette erreur provient des variables déclarées en As integer qu'il fallait changer en As long et j'ai tenté cette solution mais rien n'y fait. C'est pourquoi je me tourne vers vous humblement (je suis un parfait débutant en VBA).
NB : Je vous donne mon code pour mon fichier de base mais le fichier que je vous propose ici a été remanié (par soucis de confidentialité) et donc les données présentes sont un peu "bullshit".
Je vous remercie d'avance !
Sub rechercher()
Dim tab_mots() As String
Dim compteur As Byte
Dim ligne As Long: Dim ligne_ext As Long
Dim valider As Boolean
Dim name As String: Dim firstname As String
Dim title As String: Dim education As String
Dim school As String: Dim pitch As String
Dim sector As String: Dim tools As String
Dim language As String: Dim phone As String
Dim mail As String: Dim lastupdate As String
Dim chaine As String
purger
tab_mots = Split(Range("B17").Value, "")
ligne = 21: ligne_ext = 21
While Sheets("DATABASE - DIGITAL").Cells(ligne, 2).Value <> ""
valider = True
name = Sheets("DATABASE - DIGITAL").Cells(ligne, 2).Value
firstname = Sheets("DATABASE - DIGITAL").Cells(ligne, 3).Value
title = Sheets("DATABASE - DIGITAL").Cells(ligne, 4).Value
education = Sheets("DATABASE - DIGITAL").Cells(ligne, 5).Value
school = Sheets("DATABASE - DIGITAL").Cells(ligne, 6).Value
pitch = Sheets("DATABASE - DIGITAL").Cells(ligne, 7).Value
sector = Sheets("DATABASE - DIGITAL").Cells(ligne, 8).Value
tools = Sheets("DATABASE - DIGITAL").Cells(ligne, 9).Value
language = Sheets("DATABASE - DIGITAL").Cells(ligne, 10).Value
phone = Sheets("DATABASE - DIGITAL").Cells(ligne, 11).Value
mail = Sheets("DATABASE - DIGITAL").Cells(ligne, 12).Value
lastupdate = Sheets("DATABASE - DIGITAL").Cells(ligne, 13).Value
chaine = name & "-" & firstname & "-" & title & "-" & education & "-" & school & "-" & pitch & "-" & sector & "-" & tools & "-" & language & "-" & phone & "-" & mail & "-" & lastupdate
For compteur = 0 To UBound(tab_mots())
If (Len(tab_mots(compteur)) > 3) Then
If (InStr(1, sansAccent(chaine), sansAccent(tab_mots(compteur)), vbTextCompare) = 0) Then
valider = False
Exit For
End If
End If
Next compteur
If (valider = True) Then
Cells(ligne_ext, 2).Value = name
Cells(ligne_ext, 3).Value = firstname
Cells(ligne_ext, 4).Value = title
Cells(ligne_ext, 5).Value = education
Cells(ligne_ext, 6).Value = school
Cells(ligne_ext, 7).Value = pitch
Cells(ligne_ext, 8).Value = sector
Cells(ligne_ext, 9).Value = tools
Cells(ligne_ext, 10).Value = language
Cells(ligne_ext, 11).Value = phone
Cells(ligne_ext, 12).Value = mail
Cells(ligne_ext, 13).Value = lastupdate
ligne_ext = ligne_ext + 1
End If
ligne = ligne + 1
Wend
Cells(1, 1).Select
End Sub
Bonjour,
Déplacez toutes les macros du module de la feuille "Export" vers un module standard et ré-essayez.
Cdlt
Hello Arthuro,
Tout d'abord, merci pour la réactivité, c'est top !
Par contre, j'ai tenté de remettre les macro de la sheet dans un module, et ça m'affiche ça (le résultat m'est toujours fourni par contre même si la fenêtre de bug pop up toujours). Aussi j'ai testé le fichier que tu m'as renvoyer, le problème n'y est pas mais quand je tente de "performer" une recherche, ça me donne mon output tout en gardant les recherches précédentes, c'est normal ? L'idée c'est vraiment de ne faire sortir que les lignes concernées.
Bonjour,
Tu dois déclarer i et position en Long.
Cdlt.
Hello Jean-Eric,
Nickel ! Je n'ai plus de problème, j'ai déclaré les variables comme tu me l'as indiqué.
Un grand merci à vous !