Soucis avec la fonction .Cell.Find

Bonjour à tous,

Je viens ici pour demander si quelqu'un a déjà eu le même soucis que moi avec la fonction find().

Je m'explique.

voila deja ma macro:

Sub Replace_Formule()

Dim Chemin As String
Dim Fichier As String
Dim Result As String

Dim DerCol As Integer
Dim i As Integer

Dim Cel As Range

Chemin = ThisWorkbook.Path & "\"
Result = Dir(Chemin & "*.xlsx")
Fichier = Chemin & Result

  Do While Fichier <> ""

  With Workbooks.Open(Fichier)

        'Oracle
      If .Sheets(3).Name = "Oracle" Then

        With .Sheets(3)
          DerCol = .Cells(2, Columns.Count).End(xlToLeft).Column

           Set Cel = .Cells.Find(what:="x", LookIn:=xlValues, lookat:=xlWhole)
            If Not Cel Is Nothing Then
            Do
                Cel = Range("C" & Cel.Row)
                Set Cel = .Cells.FindNext(Cel)
            Loop While Not Cel Is Nothing
            End If

        End With

      End If

      .Save  'Sauvegarde fichier
      .Close 'Ferme fichier
    End With
    Result = Dir()
    If Len(Result) <> 0 Then 'Test si Dir different de 0
        Fichier = Chemin & Result 'affecte Chemin + Dir
    Else
        Fichier = "" 'Sinon affecte ""
    End If
  Loop

End Sub

Mon problème c'est que quand je l'execute en mode pas à pas(F8). cela fonctionne niquel. Par contre quand je l’exécute en mode "lecture" (F5) il réussi à remplacer mes "x" par la valeur que je veux que sur deux worksheets et après sur les 30 autres worksheets il efface le x mais ne remet pas la valeur que je veux.

Je sais pas si j'ai été clair...

Je vous donne un exemple de fichier sur le quel realiser la macro.

merci d'avance pour ceux qui prendont le temps.


Bon j'ai résolue mon problème tout seul avec un simple Goto ..

Sub Replace_Formule()

Dim Chemin As String
Dim Fichier As String
Dim Result As String

Dim DerCol As Integer
Dim i As Integer

Dim Cel As Range

Chemin = ThisWorkbook.Path & "\"
Result = Dir(Chemin & "*.xlsx")
Fichier = Chemin & Result

  Do While Fichier <> ""

  With Workbooks.Open(Fichier)

        'Oracle
      If .Sheets(3).Name = "Oracle" Then
      Application.Goto Sheets("ORACLE").Range("A1")

        With .Sheets(3)

          DerCol = .Cells(2, Columns.Count).End(xlToLeft).Column

           Set Cel = .Cells.Find(what:="x", LookIn:=xlValues, lookat:=xlWhole)
            If Not Cel Is Nothing Then
            Do
                Cel = Range("C" & Cel.Row)
                Set Cel = .Cells.FindNext(Cel)
            Loop While Not Cel Is Nothing
            End If

        End With

      End If

      .Save  'Sauvegarde fichier
      .Close 'Ferme fichier
    End With
    Result = Dir()
    If Len(Result) <> 0 Then 'Test si Dir different de 0
        Fichier = Chemin & Result 'affecte Chemin + Dir
    Else
        Fichier = "" 'Sinon affecte ""
    End If
  Loop

End Sub
27rapt.xlsx (142.41 Ko)
Rechercher des sujets similaires à "soucis fonction find"