Formulaire de recherches plusieurs onglets et plusieurs colonnes

Bonsoir,

l'erreur 13 compatibilité de type arrive lorsque l'on essaie d'entrer du texte par exemple dans une variable qui attend du chiffre.
Sans votre fichier difficile de voir ce qui ne va pas car le code fourni "à l'époque" fonctionne bien chez moi dans le cas d'une recherche infructueuse.
De plus vous n'indiquez pas sur quelle ligne l'erreur se produit... pour ce faire lors de l'indication de l'erreur il faut cliquer sur "Débogage" et la ligne en erreur s'affiche en surligné jaune sur la feuille de code VBA.

Ce que vous pouvez faire c'est de mettre toutes les dimensions de variable "à rien" :
Dim Cel As Range, Feuil As Worksheet, Str_critère As String, X As Byte
passe à :
Dim Cel, Feuil, Str_critère, X

Comme cela vous laissez VBA effectuer le typage des variables en fonction de ce que le code ou l'utilisateur leur donnent.

@ bientôt

LouReeD

Bonjour

Merci pour votre réponse. J'ai essayé votre suggestion mais cela ne change rien. En fait en tentant de saisir un mot que je sais être inexistant dans le classeur, le débogeur s'affiche avec en jaune la ligne que j'ai mis en rouge ci-dessous, au lieu de passer à l'avant dernière ligne indiquant que la référence n'existe pas dans le classeur.

Merci.

Option Compare Text

Public Valeurseche As Boolean

Sub Seche()

Valeurseche = True

Macro_Recherche

End Sub

Sub Comp()

Valeurseche = False

Macro_Recherche

End Sub

Sub Macro_Recherche()

If Sheets("Recherche").TextBox1.Value = "" Then Exit Sub

Dim Cel, Feuil, Str_critère, X

If Valeurseche = True Then

Str_critère = Sheets("Recherche").TextBox1.Value

Else

Str_critère = "*" & Sheets("Recherche").TextBox1.Value & "*"

End If

For Each Feuil In Sheets

If Feuil.Name <> "Recherche" Then

For Each Cel In Feuil.UsedRange

If Cel Like Str_critère Then

Feuil.Activate

Cel.Activate

X = MsgBox("Référence """ & Str_critère & """ trouvée :" & Chr(13) & _

"Sur la documentation : " & Feuil.Name & Chr(13) & _

"à l'adresse : " & Cel.Address(0, 0) & Chr(13) & Chr(13) & _

"Est-ce celle là ?" & Chr(13) & Chr(13) & _

"Oui : on quite" & Chr(13) & _

"Non : on continue la recherche " & Chr(13) & _

"Annuler : on arrête la recherche" & Chr(13), vbDefaultButton1 + _

vbQuestion + vbYesNoCancel, "Référence trouvée")

Select Case X

Case 6 'oui

Exit Sub

Case 2 'annuler on sort

Exit Sub

Case Else 'Non=7

'on fait rien, mais on pourrait

End Select

End If

Next Cel

End If

Next Feuil

MsgBox ("Désolé. La référence ' " + Str_critère + " ' que vous cherchez n'existe pas dans ce classeur.")

End Sub

Bonjour,

Essayez de mettre Cel.Value sur la ligne de test, afin que la comparaison se fasse sur la valeur de la cellule et non pas sur la cellule (range) elle-même.

@ bientôt

LouReeD

Désolée de vous embêter, c'est sur quelle ligne ?

Bonjour,

If Cel.Value Like Str_critère Then

A voir.

@ bientôt

LouReeD

re,

je ne vois pas cette erreur si la macro n'a pas trouvé quelque chose, mais ici un autre essai dans la feuille "Recherche_LO". Feuille et cellule dans les colonnes D:E et un lien dans la colonne E

J'ai modifié la ligne en If Cel.Value Like Str_critère Then

mais cela ne change rien.

Bonsoir,

je ne sais quoi vous répondre... en effet je n'arrive pas à créer votre erreur. Peut-être votre classeur est-il corrompu... Ouvrez un nouveau classeur puis faites des copier/coller de vos données dans ce nouveau classeur ainsi que des copier/coller des codes VBA et voir si cela fonctionne.

@ bientôt

LouReeD

Bonjour

J'ai déjà essayé. Tant pis. Ca fonctionne quand même, tant pis pour la perfection sur mon pc ;-)

Merci pour votre aide et votre patience en tout cas.

Bonne journée.

Bonjour,

Merci pour ce retour

Mais c'est bien dommage de ne pas avoir trouvé d'où venait le problème...

@ bientôt

LouReeD

Je referais des essais à tête reposée, .... je finirai par trouver ! ;-)

@ bientôt

Stephanie

Rechercher des sujets similaires à "formulaire recherches onglets colonnes"