Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 Autpen()

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…