zebanx
XLDnaute Accro
Bonjour à tous,
Le code ci-après traite une recherche de type "FIND" avec copie en offset et calcul d'une différence.
Il vient rechercher une valeur "perf.KE" et fait son travail à partir de cette valeur retrouvée.
Le code fonctionne en boucle "1" mais je n'arrive pas à boucler pour les autres occurrences retrouvées en .findnext sachant que les tableaux ne sont pas standards (mais tous finissent au maximum sur la colonne 7) et qu'on ne peut pas utiliser un STEP.
Je vous remercie pour votre aide.
Bonne journée
zebanx.
Finalité : Pour une comparaison après mise à jour de TCD. Les valeurs sont extraites avant une autre macro qui vient faire un reset du tableau de base (Le nombre de lignes restant inchangé).
-----------------------
Code :
Sub faire()
Dim cel As Range
Dim derligne As Integer, firstcol, celcol, celrow
Dim FirstAdress As String
On Error Resume Next
With Worksheets(1).Range("a1:e500")
Set cel = Cells.Find(What:="perf.KE", LookAt:=xlWhole)
celcol = cel.Column
celrow = cel.Row
derligne = Cells(celrow, celcol).End(xlDown).Row
firstcol = Cells(celrow, celcol).End(xlToLeft).Column
If Not cel Is Nothing Then
FirstAddress = cel.Address
Do
Range(Cells(celrow, celcol), Cells(derligne, celcol)).Copy
Range(Cells(celrow, celcol), Cells(derligne, celcol)).Offset(0, 6).PasteSpecial Paste:=xlValues
Range(Cells(celrow + 1, celcol), Cells(derligne, celcol)).Offset(0, 7).FormulaR1C1 = "=+RC[-1]-RC[-7]"
Set cel = .FindNext(cel)
Loop While Not cel Is Nothing And cel.Address <> FirstAddress
End If
End With
End Sub
Le code ci-après traite une recherche de type "FIND" avec copie en offset et calcul d'une différence.
Il vient rechercher une valeur "perf.KE" et fait son travail à partir de cette valeur retrouvée.
Le code fonctionne en boucle "1" mais je n'arrive pas à boucler pour les autres occurrences retrouvées en .findnext sachant que les tableaux ne sont pas standards (mais tous finissent au maximum sur la colonne 7) et qu'on ne peut pas utiliser un STEP.
Je vous remercie pour votre aide.
Bonne journée
zebanx.
Finalité : Pour une comparaison après mise à jour de TCD. Les valeurs sont extraites avant une autre macro qui vient faire un reset du tableau de base (Le nombre de lignes restant inchangé).
-----------------------
Code :
Sub faire()
Dim cel As Range
Dim derligne As Integer, firstcol, celcol, celrow
Dim FirstAdress As String
On Error Resume Next
With Worksheets(1).Range("a1:e500")
Set cel = Cells.Find(What:="perf.KE", LookAt:=xlWhole)
celcol = cel.Column
celrow = cel.Row
derligne = Cells(celrow, celcol).End(xlDown).Row
firstcol = Cells(celrow, celcol).End(xlToLeft).Column
If Not cel Is Nothing Then
FirstAddress = cel.Address
Do
Range(Cells(celrow, celcol), Cells(derligne, celcol)).Copy
Range(Cells(celrow, celcol), Cells(derligne, celcol)).Offset(0, 6).PasteSpecial Paste:=xlValues
Range(Cells(celrow + 1, celcol), Cells(derligne, celcol)).Offset(0, 7).FormulaR1C1 = "=+RC[-1]-RC[-7]"
Set cel = .FindNext(cel)
Loop While Not cel Is Nothing And cel.Address <> FirstAddress
End If
End With
End Sub
Pièces jointes
Dernière édition: