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

  • Votes
  • Date
  • Date décroissante
  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....

    ?????
    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+
      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....
        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
          1. 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?
            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....)
              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