Bonjour naubin, le forum,
J'ai réécrit ainsi ton code VBA :
Option Explicit
Sub bande()
'affiche les bandes de production
Dim reference$, poste$, ope%, chn$, k%: Worksheets("Synthèse").Select
With [B2]
reference = .Value: poste = .Offset(1): ope = .Offset(2)
End With
For k = 7 To 31 Step 6
With Worksheets("BdD").Cells(2, k)
If .Value = reference Then
chn = "référence : " & .Value & vbLf & "poste : " & .Offset(1) _
& vbLf & "ope : " & .Offset(2)
MsgBox chn: Exit For
End If
End With
Next k
End Sub
mais note que les 2 variables poste et ope ne sont pas utilisées ! je les ai laissées seulement si ton code est incomplet et que tu veux ajouter du code VBA qui les utilise ; sinon, utilise plutôt cet autre code VBA :
Option Explicit
Sub bande()
'affiche les bandes de production
Dim reference$, chn$, k%: Worksheets("Synthèse").Select: reference = [B2]
For k = 7 To 31 Step 6
With Worksheets("BdD").Cells(2, k)
If .Value = reference Then
chn = "référence : " & .Value & vbLf & "poste : " & .Offset(1) _
& vbLf & "ope : " & .Offset(2)
MsgBox chn: Exit For
End If
End With
Next k
End Sub
Dans les 2 cas : la feuille "BdD" n'a pas été sélectionnée ➯ on est resté sur la feuille "Synthèse" sélectionnée au début ; la suite dépend des données qui sont sur tes 2 feuilles, et aussi du travail que tu veux faire.
Si ton problème est réglé, merci de passer ce sujet en résolu ; sinon : tu devrais joindre ton fichier (sans données confidentielles), et avec plus d'infos sur le travail à faire.
dhany