Boucle SI VBA

abrare

XLDnaute Nouveau
Bonjour,

Je débute tout juste sur VBA sous excel, je voudrais créer une feuille récap d'une BBD nommée Recettelavage. Pour chaque n° de lavage et chaque paramètre de lavage, je recherche la situation la plus récente. Vous comprendrez mieux avec le fichier.


Je vous montre mon programme (soyez indulgents)


Private Sub Auto_Open()

Dim Recapn°lavage As Integer
Dim RecapParamètre As String
Dim RecapSituation As Variant
Dim n°lavage As Integer
Dim Paramètre As String
Dim Situation As Variant
Dim I As Integer
Dim J As Integer
Dim K As Integer

Recapn°lavage = Range("A4:A100")
RecapParamètre = Range("D3:AA3")
RecapSituation = Range("D4:AA100")
n°lavage = Sheets("Recettelavage").Range("C4:C100")
Paramètre = Sheets("Recettelavage").Range("F4:F100")
Situation = Sheets("Recettelavage").Range("I4:I100")


For I = 1 To 100
For J = 1 To 100
For K = 1 To 24 'J'ai 24 paramètres de lavage'
If Recapn°lavage(I, 1) = n°lavage(J, 1) Then
If Paramètre(J, 1) = RecapParamètre(1, K) Then
RecapSituation(I, K) = Situation(J, 1)
End If
Next I
Next J
Next K

End Sub


Merci d'avance pour votre aide
 

Pièces jointes

  • ENR modification NEP.xlsm
    115.1 KB · Affichages: 33

Hieu

XLDnaute Impliqué
Ce que tu as besoin, dans ta macro, ce sont des tableaux :
VB:
Private Sub Auto_Open()
 Dim Recapn°lavage(1 To 100, 1 To 100) As Integer
 Dim RecapParamètre(1 To 100, 1 To 100) As String
 Dim RecapSituation(1 To 100, 1 To 100) As Variant
 Dim n°lavage(1 To 100, 1 To 100) As Integer
 Dim Paramètre(1 To 100, 1 To 100) As String
 Dim Situation(1 To 100, 1 To 100) As Variant
 Dim I As Integer
 Dim J As Integer
 Dim K As Integer

 Recapn°lavage = Range("A4:A100")
 RecapParamètre = Range("D3:AA3")
 RecapSituation = Range("D4:AA100")
 n°lavage = Sheets("Recettelavage").Range("C4:C100")
 Paramètre = Sheets("Recettelavage").Range("F4:F100")
 Situation = Sheets("Recettelavage").Range("I4:I100")


 For I = 1 To 100
    For J = 1 To 100
         For K = 1 To 24
    If Recapn°lavage(I, 1) = n°lavage(J, 1) Then
    If Paramètre(J, 1) = RecapParamètre(1, K) Then
    RecapSituation(I, K) = Situation(J, 1)
    End If
    Next I
    Next J
    Next K


End Sub

Si j'peux me permettre, j'évite les caracteres speciaux, les accents dans les noms de variables (ex : °, é) et les espaces dans les noms de feuille
 

Discussions similaires

Réponses
4
Affichages
357

Statistiques des forums

Discussions
314 180
Messages
2 106 906
Membres
109 726
dernier inscrit
Marie.dpt