Bonjour à tous,
Merci pour vos aides.
Je me suis peut-être mal exprimé mais je dois automatiser des feuilles de calculs diverses, avec des formats différents.
Je viens de me renseigner sur le terme MFC mais cela n'est pas adapté à ma demande.
Je souhaite vraiment passer par une macro VBA pour automatiser la suite de mes calculs.
L'idée est vraiment de rechercher à l'aide d'un mot clé dans la ligne 1 contenu dans des intitulés plus complexe (en-tête de colonne). Et dès que je rencontre ce mot clé, j'effectue des calculs dans cette colonne. Puis je poursuis la recherche dans les colonne suivante et ainsi de suite jusqu'à avoir parcouru ma feuille, puis l'ensemble du fichier.
N'hésitez pas si vous avez des idées :)
Voici ce que j'ai codé actuellement :
Sub Todo()
Dim xSh As Worksheet
Dim Text As String
Application.ScreenUpdating = False
Text = InputBox("Please enter text to search....")
For Each xSh In Worksheets
xSh.Select
Call CalculateProd(Text)
Next
Application.ScreenUpdating = True
End Sub
Sub Calculate(Text As String)
Dim LastLine As Integer
Dim Sum_1 As Double
Dim Sum_2 As Double
Dim Prod As Double
Dim iRange As Range
Dim iRange2 As Range
Dim Col_1 As String
Dim Col_Txt As String
Call LettreColonne("Var_1", Col_1)
'If IsNumeric(Text) = "VRAI" Or "TRUE" Then
'If Application.WorksheetFunction.IsNumber(Text, "1:1") = "VRAI" Or "True" Then
If Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search(Text).Range("1:1")) = True Then
Call LettreColonne(Text, Col_Txt)
LastLine = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Set iRange = Range(Col_1 & ":" & Col_1)
Set iRange2 = Range(Col_Txt & ":" & Col_Txt)
Sum_1 = WorksheetFunction.Sum_1uct(iRange, iRange2)
Sum_2 = WorksheetFunction.Sum(iRange)
Prod = Sum_1 / Sum_2
Range(Col_Txt & LastLine + 1) = Format(Prod, "0.00")
End If
End Sub
Sub LettreColonne(MaVarCol As String, COL As String)
Dim AdrCol As Range
Set AdrCol = ActiveSheet.Range("A1:WWW1").Find(What:=MaVarCol, LookIn:=xlValues, LookAt:=xlWhole)
If Not AdrCol Is Nothing Then COL = Split(AdrCol.Address, "$")(1) _
Else MsgBox "Valeur de la variable MaVarCol (Nom : " & MaVarCol & ") non valide": Exit Sub
Set AdrCol = Nothing
End Sub
Merci d'avance