Soucis avec la fonction .Cell.Find
R
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 SubMon 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