Selection.Find

Bonjour,

dans une macro, j'utilise Selection.find(...) précédé de On Error GoTo Line 999, au deuxième passage, je plante à la fin de la recherche

7 réponses

  1. Bonsoir,

    Je pense que tes explications "succinctes" ne pourront en rien nous éclairer....

    Pour ma part, la partie de code que tu fournis ne déclenche pas de "Bug"

    Avec si peu d'éléments, ce sera difficile de t'aider...

    @ te relire avec plus de précisions (notamment, le code entier....)
    0
    1. On Error GoTo Line998
      Selection.Find(What:=R_txt, After:=ActiveCell, LookIn:= _
      xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
      xlNext, MatchCase:=False, SearchFormat:=False).Activate

      R_txt = du texte à rechercher
      0
  2. Re-,

    Je sais que le forum offre la possibilité d'ajouter des commentaires, mais lorsque l'on parle directement du sujet, je préfère utiliser le bouton "Répondre...."

    C'est bien, tu as donné 4 lignes de ton code.....(dont 3 lignes d'une même commande)

    Pour ma part, cela ne m'avance toujours pas.....

    Désolé....

    PS, c'est si dur, un copier coller de toute ta procédure?
    0
    1. i = 1
      Ope = "1"
      Car = " "
      Police = "Arial"
      Fin = 5
      F1 = 0
      R_txt = " "
      ' ------------------------------------------------

      Line1:
      Set R_txt = Nothing

      Cells.Select
      Police = "Arial"
      Select Case Ope

      Case "1"
      R_txt = "Administration"
      Car = "!"
      Police = "Wingdings 2"

      Case "2"
      R_txt = "Intervention"
      Car = "G"
      Police = "Wingdings 3"

      Case "3"
      R_txt = "Ecriture"
      Car = "&"
      Police = "Wingdings"

      Case "4"
      R_txt = "Mobilité Contrôle itinérant"
      Car = "R"
      Police = "Wingdings 3"

      Case "5"
      R_txt = "Mobilité Contrôle statique"
      Car = "Q"
      Police = "Wingdings 3"

      End Select

      Ope = Ope + 1

      '---------------------------------------
      Line2:

      F1 = 1

      On Error GoTo Line998
      Selection.Find(What:=R_txt, After:=ActiveCell, LookIn:= _
      xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
      xlNext, MatchCase:=False, SearchFormat:=False).Activate

      ActiveCell.FormulaR1C1 = Car
      F1 = 0
      With ActiveCell.Characters(Start:=1, Length:=1).Font
      .Name = Police
      .FontStyle = "Bold"
      .Size = 10
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ColorIndex = 5
      End With

      Line998:

      If F1 = 0 Then
      GoTo Line2
      End If

      If i < Fin Then
      GoTo Line1
      End If

      End Sub
      0
      1. Re-,

        On parle bien d'Excel?

        Perso, je n'ai jamais vu de tels codes....

        Police = "Arial"


        Mais le pb ne vient pas de là....

        Tu as bien le End Sub, mais je ne vois pas le Sub .....()

        Donc, il n'y a pas tout le code...

        Et ensuite, tu donnes à ta variable (je ne sais pas comment tu l'as déclarée) :

        Ope = "1" 


        Et plus loin dans le code, tu lui rajoutes une unité

        Ope = Ope + 1 


        Lorsque je te demande tout le code, ce n'est pas pour juger ton code, c'est pour essayer de t'aider....

        Mais bon....
        0
        1. Merci, c'est bien sympa..

          J'ai oublié de copier le nom
          Sub Plano()....
          .. End Sub

          Je n'ai pas fait de déclaration de variable, j'ai directement attaquer telquel...

          le premier passage (case 1) fonction bien, le deuxième passage (case 2) bloque à la fin de la recherche, je crois que c'est l'erreur 91.

          Merci
          A+
          0
          1. PS ile faut lire.... j'ai directement attaqué...
            0
            1. OK,

              Tu veux faire quoi, exactement?

              Parce que là, en déroulant le code, tu remplaces "Administration" par un espace " "...

              Mais je ne vois pas de boucle, ni de raison de dérouler le code une seconde fois....

              Surtout que tu donnes des valeurs à tes variables, en tout début de code, donc dans aucun cas, ton Select Case ne peut servir, sachant que ta variable "Ope" aura toujours la même valeur....

              ?????
              0