[Catégorie modifiée VB6 -> VBA] adapter un code

rocket4 Messages postés 47 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 31 janvier 2012 - 11 sept. 2011 à 16:30
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 11 sept. 2011 à 23:20
bonjour ,je travail sur excel et je n'arrive pas à adapter le code suivant à une page que je nommerai "recherche" et dont les resultats seraient données
à partir de la cellule N29 sur cette meme page , il s'agit en fait d'un moteur de recherche sur excel

dont voici le code en deux partie

partie feuille (recherche) :

Private Sub CommandButton1_Click()
reponse = InputBox("mot a chercher")
Range("A9:A" & Range("A65536").End(xlUp).Row).ClearContents
Call recherche(reponse)
End Sub


et la partie module :

Sub recherche(mot)
On Error GoTo fin
ligne = 9
For Each ws In Sheets
If ws.Name <> "recherche" Then
With ws.Cells
Set c = .Find(mot, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Sheets("recherche").Cells(ligne, 1).Select
Selection.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
ws.Name & "!" & c.Address, TextToDisplay:=c.Value
ligne = ligne + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
trouve = True
End If
End With
End If
Next ws
If Not trouve Then MsgBox ("Pas de " & mot & " trouvé dans ce fichier")
fin:
End Sub


Si vous pouviez m'indiquez les modifications à effectuer , j'ai associé un bouton à ce module mais je n'obtient aucun resultat dans la cellule souhaitée

Merci pour vos interventions

Cordialement


a++

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 sept. 2011 à 23:20
Salut

Re-rappel : On fait du VBA sous Excel, pas du VB6. Catégorie modifiée

Quand tu colles du code, utilise la coloration syntaxique (3eme icone à droite) plus facile à relire car conserve les espaces de début de ligne (indentation) primordial dès qu'il y a des boucles.

Pas assez d'information pour se lancer dans une aide (pas le temps d'analyser ton code)
Apprends à déboguer pour suivre ce que fait ton programme :
- F9 sur une ligne de code; elle change de couleur
Le programme s'y arrêtera au prochain passage
Survole avec la souris tes variables pour visualiser leur contenu, ou va dans la fenêtre de debogage (Ctrl-G) et tape
? maVariable
pour qu'elle s'inscrive dans la fenêtre.
- F8 (VB6) ou F10 (.Net) pour avancer d'une ligne de code
- F5 pour continuer normalement

Je te conseille aussi de dimensionner toutes tes variables, ça évite les erreurs de type ou les erreurs d'écriture du nom des variables + rendre obligatoire ces déclarations --> voir Options, onglet général.
Une fois coché, cela ajoutera "Option Explicit" en tête (toute première ligne) de toutes les futures pages de code (à ajouter à la main pour celles existantes).
Ca parait chiant à faire au début, mais on s'y habitue vite dès qu'on aura perdu une demie-journée à trouver une erreur de syntaxe sur le nom des variables, garanti.

Vala
Jack, =fr MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous