Bonjour à toutes et à tous,
Cela fait fort longtemps que je n'étais pas passé par ici. Je me lance sur un projet vba, mais ça fait un moment que j'ai pas mis la main à la pate..
J'ai besoin d'insérer des formules dans plusieurs feuilles en fonction d'un critère.
J'utilise un filtre auto mais il arrive que le critère cherché ne soit pas present dans la colonne.
J'ai passé la journée à farfouiller mon code au point que j'y vois plus très clair.
J'aurais besoin de votre aide.
Je procède comme suit :
- Je filtre chaque feuille avec le critère en différente langues.
- J'active les feuille une à une et j'y colle mon code pour insérer ma formule
J'ai essayé plusieurs choses, cela fonctionne si le critère existe. En revanche, lorsque il n'est pas present cela m'efface le titre de mon tableau.
Comment faire pour qu'il ne me colle pas cette "formule" si le critère n'existe pas? Et d'autre part, il me semble que ce n'est pas conseiller d'utiliser trop de .activate
Je vous mets le code dessous avec un fichier.
Merci de votre aide.
Cela fait fort longtemps que je n'étais pas passé par ici. Je me lance sur un projet vba, mais ça fait un moment que j'ai pas mis la main à la pate..
J'ai besoin d'insérer des formules dans plusieurs feuilles en fonction d'un critère.
J'utilise un filtre auto mais il arrive que le critère cherché ne soit pas present dans la colonne.
J'ai passé la journée à farfouiller mon code au point que j'y vois plus très clair.
J'aurais besoin de votre aide.
Je procède comme suit :
- Je filtre chaque feuille avec le critère en différente langues.
- J'active les feuille une à une et j'y colle mon code pour insérer ma formule
J'ai essayé plusieurs choses, cela fonctionne si le critère existe. En revanche, lorsque il n'est pas present cela m'efface le titre de mon tableau.
Comment faire pour qu'il ne me colle pas cette "formule" si le critère n'existe pas? Et d'autre part, il me semble que ce n'est pas conseiller d'utiliser trop de .activate
Je vous mets le code dessous avec un fichier.
Merci de votre aide.
Code:
Sub test()
Dim DerLigDE As Long
Dim DerLigFR As Long
Dim DerLigIT As Long
Dim DerLigES As Long
Dim k As Integer, i As Integer
Dim Cell As Range
DerLigDE = Sheets("DE").Range("A65536").End(xlUp).Row
DerLigFR = Sheets("FR").Range("A65536").End(xlUp).Row
DerLigIT = Sheets("IT").Range("A65536").End(xlUp).Row
DerLigES = Sheets("ES").Range("A65536").End(xlUp).Row
Sheets("DE").Range("$A$1:$AB" & DerLigDE).AutoFilter Field:=3, Criteria1:="Einstellung"
Sheets("FR").Range("$A$1:$AB" & DerLigFR).AutoFilter Field:=3, Criteria1:="Ajustement"
Sheets("IT").Range("$A$1:$AB" & DerLigIT).AutoFilter Field:=3, Criteria1:="Modifica"
Sheets("ES").Range("$A$1:$AB" & DerLigES).AutoFilter Field:=3, Criteria1:="Ajuste"
k = Sheets.Count
For i = 1 To k
Sheets(i).Activate
For Each Cell In Range("X2:X" & Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
Cell.FormulaR1C1 = "=RC[-1]-RC[-15]"
Next Cell
For Each Cell In Range("AA2:AA" & Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
Cell.FormulaR1C1 = "=RC[-3]-RC[-1]"
Next Cell
Next i
End Sub