user box

hatem9294

XLDnaute Nouveau
salut tout le forum,

tout d'abord je tiens à remercier CBernardT pour son aide précieuse la dernière fois ce qui m'a encouragé à venir une deuxième et je suis sure que vous serez au RDV.

j'ai petit problème qui fait intervenir des userforme. je voudrais créer une interface qui me permet en cliquant sur le bouton rechercher d'afficher une petite fenêtre où on pourrait saisir une reférence (en gros une zone de saisie et un bonton ok pour chercher) . en cliquant sur ok la macro cherche la reférence dans la feuille brute: si elle trouve la référence elle active la cellule correspondante sinon elle affiche une msgbox (" cette référence n'existe pas "). je essayerai après d'affiner le truc en faisant clignotez la cellule un certain temps histoire de rendre le truc plus joli (j'ai vu une macro comme çà quelque part sur le net)

merci d'avance.
 

Pièces jointes

  • rechercher.xls
    14.5 KB · Affichages: 65
  • rechercher.xls
    14.5 KB · Affichages: 71
  • rechercher.xls
    14.5 KB · Affichages: 65

jeanpierre

Nous a quitté
Repose en paix
Re : user box

Bonsoir hatem9294,

Je sais que cela existe ici, mais infichu de mettre la main dessus.

As-tu fait une recherche sur "clignote"

Sinon ici :


VeriTi V 3, le site des amis d'Excel et OOo - Programmes VeriTi

Bonne soirée et ne nous fabriques une boîte de nuit avec ces clignotements :D

Jean-Pierre

Edit : Désolé, je vois maintenant qu'il y avait deux questions, j'ai répondu à la seconde.
 
Dernière édition:

informatixo

XLDnaute Occasionnel
Re : user box

Bonjour hatem9294, jeanpierre, le forum,

Voici une solution en VBA en considérant qu'il n'y ait pas de doublons dans ta liste sinon mon exemple te donneras la première occurence.

Pour l'animation de la cellule je ne sais pas faire, mais je t'es marqué en commentaire l'endroit où placer le code pour le faire.

A plus
 

Pièces jointes

  • Rechercher v1.xls
    32 KB · Affichages: 72

myDearFriend!

XLDnaute Barbatruc
Re : user box

Bonsoir hatem9294, jeanpierre, informatixo,

Ci-joint ton classeur modifié pour tenter de répondre à ta question.

J'ai utilisé le code ci-dessous :
Code:
[SIZE=2]Option [COLOR=navy]Explicit
Dim [/COLOR]Temps[COLOR=navy] As Date
Dim [/COLOR]Cel[COLOR=navy] As [/COLOR]Range

[COLOR=navy]Sub[/COLOR] TrouveRef()
[COLOR=navy]Dim [/COLOR]R[COLOR=navy] As String[/COLOR]
      R = Application.[COLOR=navy]Input[/COLOR]Box("Référence ?", "Rechercher", [COLOR=navy]Type[/COLOR]:=2)
      [COLOR=navy]If [/COLOR]R = ""[COLOR=navy] Or [/COLOR]R = "Faux" [COLOR=navy]Then Exit Sub[/COLOR]
      [COLOR=navy]With[/COLOR] Worksheets("brute")
            [COLOR=navy]Set[/COLOR] Cel = .Columns(1).Find(R, LookIn:=xlValues, LookAt:=xlWhole)
            [COLOR=navy]If Not [/COLOR]Cel[COLOR=navy] Is Nothing Then[/COLOR]
                  .Activate
                  Cel.[COLOR=navy]Select[/COLOR]
                  Clign
            [COLOR=navy]Else[/COLOR]
                  MsgBox "Référence non trouvée"
            [COLOR=navy]End If[/COLOR]
      [COLOR=navy]End With
End Sub[/COLOR]

[COLOR=navy]Sub[/COLOR] Clign()
[COLOR=navy]Static[/COLOR] N[COLOR=navy] As Byte[/COLOR]
      [COLOR=navy]If [/COLOR]N > 9 [COLOR=navy]Then[/COLOR]
            [COLOR=green]'Arrêter le clignotement au bout de 5 fois[/COLOR]
            N = 0
            StopClign
      [COLOR=navy]Else[/COLOR]
            N = N + 1
            [COLOR=green]'Programmation de l'évènement toutes les secondes[/COLOR]
            Temps = Now + TimeValue("00:00:01")
            Application.OnTime Temps, "Clign"
            [COLOR=green]'Traitement[/COLOR]
            Cel.Interior.ColorIndex = IIf(Cel.Interior.ColorIndex = 3, xlNone, 3)
      [COLOR=navy]End If
End Sub[/COLOR]

[COLOR=navy]Sub[/COLOR] StopClign()
      [COLOR=navy]On Error Resume Next[/COLOR]
      [COLOR=green]'Stoppe la gestion de l'évènement OnTime[/COLOR]
      Application.OnTime Temps, "Clign", , [COLOR=navy]False[/COLOR]
      Cel.Interior.ColorIndex = xlNone
      [COLOR=navy]On Error GoTo[/COLOR] 0
[COLOR=navy]End[/COLOR] Sub[/SIZE]
Voir également les différentes façons de lancer StopClign() dans le module de code de l'objet ThisWorkbook (utile pour éviter les plantages).

Cordialement,
 

Pièces jointes

  • mDF_rechercher.zip
    11.7 KB · Affichages: 48

hatem9294

XLDnaute Nouveau
Re : user box

bonjour à tous

merci à tous pour votre aide.
je voudrais utiliser la procédure application.ontime avec une procédure qui reçoit un argument mais j'y arrive pas en mettant :
application.ontime Now + TimeValue("00:00:01") "flash i"

où flash est une procédure qui prend comme argument i (integer)

si vous pouvez m'aider çà serait très gentil

A+
 

myDearFriend!

XLDnaute Barbatruc
Re : user box

Bonsoir hatem9294, le Forum,

Désolé, je découvre ta question seulement aujourd'hui...
hatem9294 à dit:
bonjour à tous

merci à tous pour votre aide.
je voudrais utiliser la procédure application.ontime avec une procédure qui reçoit un argument mais j'y arrive pas en mettant :
application.ontime Now + TimeValue("00:00:01") "flash i"

où flash est une procédure qui prend comme argument i (integer)

si vous pouvez m'aider çà serait très gentil

A+
Cette méthode me semble un peu hasardeuse (notamment s'il te faut prévoir une procédure d'annulation de la méthode OnTime comme dans ma procédure StopClign plus haut), mais tu peux régler le problème en faisant comme ça :
Code:
[SIZE=2]Application.OnTime Now + TimeValue("00:00:01"), "[B][COLOR=Red]'[/COLOR][/B][/SIZE]flash [SIZE=2]" & I & "[B][COLOR=Red]'[/COLOR][/B]"[/SIZE]
Ta variable I ne doit pas être comprise dans les guillemets et l'expression totale doit être entourée par 2 apostrophes simples (ici en rouge à l'intérieur des guillemets).

Cordialement,
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 329
Membres
103 517
dernier inscrit
hbenaoun63