Aide avec mon code VBA

Sub filtre_et_effectuer_DIMAX()

Dim ws As Worksheet

Dim lastRow As Long

Dim lastColumn As Long

Dim i As Long

Dim headerCell As Range

Dim targetColumn As Integer

' Définir la feuille de calcul à utiliser

Set ws = ThisWorkbook.Sheets("DATA_916")

' Trouver la dernière ligne de données dans la colonne A

lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).row

' Déterminer la dernière colonne de données

lastColumn = ws.Cells(7, ws.Columns.Count).End(xlToLeft).Column

' Appliquer le filtre sur la colonne A

ws.Range("$A$7:" & ws.Cells(lastRow, lastColumn).Address).AutoFilter Field:=1, Criteria1:="46868508"

' Parcourir les lignes de A8 à la dernière ligne de données

For i = 8 To lastRow

' Vérifier si la valeur de la colonne A est égale à 46868508

If ws.Cells(i, "A").Value = 46868508 Then

' Recherche de l'entête spécifié dans la ligne 6

Set headerCell = ws.Rows(6).Find("1170")

' Applique la formule si l'entête est trouvé

If Not headerCell Is Nothing Then

targetColumn = headerCell.Column - ws.Range("Q6").Column

ws.Cells(i, "Q").FormulaR1C1 = "=RC[" & targetColumn & "]"

Else

MsgBox "Entête non trouvé dans la ligne 6.", vbExclamation

End If

' Recherche de l'entête spécifié dans la ligne 6

Set headerCell = ws.Rows(6).Find("1070")

' Applique la formule si l'entête est trouvé

If Not headerCell Is Nothing Then

targetColumn = headerCell.Column - ws.Range("R6").Column

ws.Cells(i, "R").FormulaR1C1 = "=VLOOKUP(RC[" & targetColumn & "],PARAMETRES!R7C12:R16C15,2,FALSE)"

Else

MsgBox "Entête non trouvé dans la ligne 6.", vbExclamation

End If

' Recherche de l'entête spécifié dans la ligne 6

Set headerCell = ws.Rows(6).Find("1070")

' Applique la formule si l'entête est trouvé

If Not headerCell Is Nothing Then

targetColumn = headerCell.Column - ws.Range("S6").Column

ws.Cells(i, "S").FormulaR1C1 = "=VLOOKUP(RC[" & targetColumn & "],PARAMETRES!R7C12:R16C15,4,FALSE)"

Else

MsgBox "Entête non trouvé dans la ligne 6.", vbExclamation

End If

' Macro nb_palettes

ws.Cells(i, "T").FormulaR1C1 = "=IF(RC[-1]<>R4C19,0,1)"

' Macro nb_BR_DIMAX

ws.Cells(i, "U").FormulaR1C1 = "=IF(RC[-2]<>R4C19,0,1/COUNTIF(R8C2:R1048576C2,RC[-19]))"

End If

Next i

' Supprimer le filtre

'ws.AutoFilterMode = False

End Sub

j'ai besoin d'aide pour débuger ce code VBA:

dans ma base de données, je dois chercher certaines valeurs qui ont un entête pour les inclure dans mes calculs: Or, je n'arrive pas à faire la m^me chose que j'ai fais pour cette partie du code :

' Macro nb_BR_DIMAX

ws.Cells(i, "U").FormulaR1C1 = "=IF(RC[-2]<>R4C19,0,1/COUNTIF(R8C2:R1048576C2,RC[-19]))"

la ormule excel est la suivante, et j'ai besoin de calquer le même prinip en VBA et de retrouver la bonne colonne pour effectuer le calcul car mes données peuvet être amenés à bouger entre les colonnes

Bonsoir,

nous avons besoin d'aide pour débuguer votre demande !
première chose à faire est d'éditer votre message afin de mettre sous "balise" votre code. La balise à utiliser est celle-ci :

image

Ensuite, relisez à minima votre demande et corrigez les quelques erreurs de frappe afin que l'on comprenne la demande !

@ bientôt

LouReeD

Rechercher des sujets similaires à "aide mon code vba"